개발 보안
보안7
아엠그라운드
2022. 6. 20. 15:36
•DES 복호화 과정
–암호화 알고리즘을 다시 사용
–암호화 과정의 반대 순서로 서브키 입력, 즉, 16번째 서브키를 첫번째 과정에, 15번째 서브키를 두번째 과정에, …
•Double DES
–2개의 다른 키로 2번 암호화하여 전송
•키의 길이는 112비트
•실제 263 (2 * 256 + n.log2n) 정도의 시간 복잡도로 복호화 가능
Ek1(M) = X = Dk2(C)
•Triple DES
–2개의 키를 사용하여 3번 암호화
–현재 Triple DES에 대한 실용적인 공격방법 없음.
–DES의 64 비트 키길이는 공격에 취약
–1997년 NIST(국립표준기술원: National Institute of Standards and Technology )에서 DES를 대치하는 128 비트 대칭키 암호 시스템을 마련하기 위한 계획 발표
–요건
•3중 DES 보다 효율적, 안전성
•128 비트 이상의 키 길이
–15개의 알고리즘이 후보로 채택. 2000년 8월 Rijndael 알고리즘이 최종적으로 채택.
Cipher (byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)])
Begin
byte state[4,Nb]
state = in // 평문 블록을 2차원 배열로 변환
addRoundKey(state, w[0, Nb-1])
for round = 1 step to Nr-1
SubBytes(state) //바이트 대치 단계
ShiftRows(state) // 행 쉬프트 단계
MixColumns(state) // 열 조합 단계
AddRoundKey(state, w[round*Nb, (round+1)*Nb-1]) // 부분키 덧셈 단계
end for
SubBytes(state)
ShiftRows(state)
AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])
out = state // 암호문을 1차원 배열로 변환
end
•SubWord 함수는 4바이트를 입력으로 받아 각 바이트에 앞에 설명한 S-Box를 적용시킨 결과를 리턴
•RotWord 함수는 4바이트 [b0, b1, b2, b3]를 받아 한번 순환 시프트해서 얻어지는 [b1,b2,b3,b0]를 리턴
•Rcon[i]는 워드 [x i-1, {00},{00},{0,0}]를 의미. x는 {02}로