2010. 4. 25. 12:52
BlowFish에 관해서.
2010. 4. 25. 12:52 in 관련자료
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
이글에서 사용 되는 모든 자료는 원문링크 를 참고 하여 작성되었습니다.
안녕하세요 Geeks_Company 입니다.
오늘 설명 드릴 알고리즘은 대칭키 알고리즘 중 공개 알고리즘인 BlowFish 입니다.
BlowFish는 1993년 Bruce Schneier 에 의해서 제안되었으며, 복잡한 키 스케쥴링 과 Sbox 의존성이 특징입니다.
S box는 총 4 * 256개의 변수를 갖으며, 위의 변수들은 pi에서 중복없는 값들을 토대로 이루어집니다.
비밀키를 이용 하여 초기화된 , S box와 총 18의 키로 구성된 P Array는 BlowFish 암복호화시 사용 됩니다.
BlowFish의 장점은 사전 공격의 방어와 공개 알고리즘 이며 이미 많은 네트워크 게임의 패킷 암/복호화에 사용 됩니다.
이제 알고리즘의 핵심에 관해서 설명 드리겠습니다.
http://en.wikipedia.org/wiki/File:BlowfishDiagram.png
왼쪽의 그림의 원본은 위의 링크를 참조하였습니다.
BlowFish의 핵심 암/복호화 루틴은 다른 대칭키의 암복호화 원리와 크게 다르지 않습니다. S box 와 P array를 평문과 함께 Xor 연산을 한후 나온 암호 문을 Inverse 순서로 Xor 하여 평문을 구합니다.
암호화시 간략한 흐름도 입니다.
1. 32 bit 의 평문을 P array의 1번째 구성 원소와 Xor을 시킵니다.
2. 과정 1 에서 Xor된 결과 값을 BlowFish_F 펑션을 통과 시킵니다.
3. 과정 2에서 나온 결과값을 32bit를 우측 값과 Xor 시킵니다.
4. 과정 3에서 나온 값을 좌측에 저장, 과정 1번의 값을 우측에 저장.
5. 과정 1-4를 총 16번 반복 합니다.
6. 16번 반복후 나온 좌변을 P 18번째 원소와 xor 시키값을 좌변에 저장 하고, P 17번째 원소와 우측 값과 xor 시킨 값을 우변에 저장 합니다.
7 암호화로 나온 좌변과 우변을 결과 값으로 리턴 시킵니다.
복호화 시에는 P array 의 18 번째 원소 를 암호문 과 Xor을 시킨후 암호화시에 사용된 반복 루틴(과정 2- 5) 을 사용한후 나온 좌변값에 P array 의 0번째 원소 와 Xor 시키고, 우변 값을 P array 의 번째 1원소 Xor을 시키면 복호화 작업은 끝납니다.
'관련자료' 카테고리의 다른 글
Burrows–Wheeler transform (0) | 2010.05.06 |
---|---|
Huffman Coding (0) | 2010.05.03 |
Thread의 최대 생성 수는 얼마 일까? (0) | 2010.04.19 |
RSA 기반의 공개키 시스템. (0) | 2010.04.14 |
D-H 키 교환 방식에 관해서. (0) | 2010.04.12 |