검수요청.png검수요청.png

블로피시

위키원
leejia1222 (토론 | 기여)님의 2019년 7월 5일 (금) 10:07 판 (개요)
이동: 둘러보기, 검색

블로피시(blowfish)는 1993년 브루스 슈나이어(Bruce Schneier)가 데이터 암호화 표준(DES; Data Encryption Standard)의 대안으로 개발한 대칭키 알고리즘으로 소프트웨어에서 양호한 암호화 속도를 제공하는 알고리즘이다. 현재는 비특허로 무료 개방 상태이다.

개요

1993년 이전의 다른 암호 알고리즘은 사유 알고리즘이거나 정부, 산업체의 기밀 사항, 또는 특허를 가지고 있었기 때문에 당시 일반 목적의 알고리즘은 존재하지 않았다. 이에 브루스 슈나이어는 DES의 대안으로 다른 알고리즘에 관련된 제약 문제를 해결하기 위해 일반 목적의 알고리즘으로 블로피시를 설계했다. 그는 직접 블로피시는 비특허이기 때문에 퍼블릭 도메인에 속해 누구든지 자유롭게 사용할 수 있다고 밝혔다. 블로피시는 4비트~ 최대 448비트의 가변 키 길이를 갖고 있고 키의 스케쥴링이 복잡하며 S 박스에 의존한다. 블로피시는 소프트웨어에서 양호한 암호화 속도를 제공하지만 현재는 고급암호화 표준이 더 많은 주목을 받고 있다.[1]

장점

  • 비특허 공개 알고리즘이다.
  • Khufu, RC5, DES, IDEA, Trip-DES와 비교했을 때, 소프트웨어에서의 암호화 속도가 빠르다.
  • 사전 공격을 방어할 수 있다.

알고리즘

알고리즘의 순서는 이러하다.

1. 32비트 평문을 Parray의 첫 번째 구성 원소와 Xor 연산한다.
2. 결과 값을 BlowFish_F 함수로 연산한다.
3. 결과 값을 우측 값과 Xor 연산한다.
4. 결과값을 좌측에 저장하고 1번의 연산값을 우측에 저장한다.
5. 1~4의 과정을 16회에 걸쳐 반복한다.
6. 좌측 연산값을 P 18번째 원소과 Xor 연산하고 좌측에 저장한다.
7. 우측 연산값을 P 17번째 원소와 Xor 연산하고 우측에 저장한다.[2]

활용

각종 온라인 게임의 패킷 암호화, 패킷 복호화에 주로 사용한다.

각주

  1. 블로피시〉, 《위키백과》
  2. empty1234, 〈BlowFish에 관해서〉, 《티스토리》, 2010-04-25

참고자료

같이 보기

  검수요청.png검수요청.png 이 블로피시 문서는 알고리즘에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.