blowfish 요약 짤 (위키페디아 출처)

blowfish는 DES의 대안으로 1993년에 나왔습니다. 생일 공격에 취약해, 대안으로 TwoFish가 나왔습니다.
위키백과 보고 밑에 읽어보세요~
 
[P 배열, S box 초기화 (키 스케줄) ]
1) 키(32~448비트)를 임의로 만들고 K 배열[14]에 넣습니다.
 
2) P 배열[18], S box 배열[4, 256]을 만들고 파이(3.14)의 16진수로 초기화합니다.
*P 배열, S box의 원소는 모두 32비트입니다.
초기화한 P, S는 여기서 보세요
 
3) P 배열과 K 배열의 원소를 XOR하고 P 배열에 넣습니다.
*K는 P와 배열 크기가 달라서, XOR할때 K는 [14] 이후 [0]부터 다시 씁니다.
 
4) 64비트짜리 0을 밑의 페이스텔 네트워크로 암호화하여 P 배열과 S Box에 할당합니다.
*평문외에도 암호화를 하는게 신기하네요
할당법은 여기서 보세요
 
[페이스텔 네트워크 (암호화 방법) ]
1) 평문(64비트)를 반으로 나눠 L(32비트), R(32비트)를 만듭니다.
 
2) L(32비트)과 P1(32비트)를 XOR
 
3) XOR값(32비트)을 4개의 S box에 8비트씩 분할하고, 각각 S box 원소 한개(32비트)를 매핑합니다.
매핑법은 여기서 보세요 (근데 의견이 많아서 뭐가 맞는지  모르겠어요)
 
4) S0과 S1를 더하고 2^32로 나머지 연산(%) 합니다.
*S0, S1, S2, S3는 매핑한 원소입니다.
 
5) 나머지 연산값(32비트)과 S2를 XOR
 
6) 5번의 XOR값(32비트)과 S3을 더하고 2^32로 나머지 연산(%) 합니다.
 
7) 6번의 나머지 연산값과 R(32비트)를 XOR
 
8) 7번의 XOR값을 L로 하고, R을 기존의 L로 합니다.

9) 2~8 과정를 15번 더 반복합니다. 근데 마지막 반복(16번째)엔 8과정를 안합니다.
 
10) L과 P18을 XOR하고, R과 P17을 XOR 합니다. 두 XOR 값을 합쳐 암호문을 완성합니다.
 
대칭 키라서 복호화는 암호화의 역순입니다. 
-끝-

'알고리즘' 카테고리의 다른 글

[비대칭 키] bcrypt 알고리즘  (0) 2023.10.10
[대칭 키] DES 알고리즘  (0) 2023.09.26

+ Recent posts