블록 암호

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

암호학에서 블록 암호(block cipher)란 기밀성있는 정보를 정해진 블록 단위로 암호화 하는 대칭키 암호 시스템이다. 만약 암호화하려는 정보가 블록 길이보다 길 경우에는 특정한 운용 모드가 사용된다.(예, ECB, CBC, OFB, CFB, CTR)

스트림 암호는 블록 암호와 달리 비트 단위로 암호화 하며 이 때, LFSR,NFSR과 같은 선형연산과 비선형 연산이 사용된다.

블록 암호에 대한 안전성 증명 방법으로는 선택평문공격인 차분공격(Differential Cryptanalysis)과 알려진평문공격인 선형공격(Linear Cryptanalysis)등이 있다.

블록 암호 구조에는 페스탈(Feistel)구조와 SPN구조가 있다.

페스탈 구조는 암복호화 과정에서 역함수가 필요 없다는 장점이 있지만 구현시 스왑(Swap)단계 때문에 연산량이 많이 소요 되며 암호에 사용되는 라운드 함수를 안전하게 설계해야 한다는 단점이 있다. 대표적인 암호로는 DES가 있으며 Single DES는 안전성 문제로 현재 사용 하고 있지 않다.

한국에서는 개발된 암호 중에서는 페스탈 구조기반으로 설계된 SEED가 있다.

SPN 구조는 암복호화 과정에서 역함수가 필요하도록 설계되어야 한다는 단점이 있지만 중간에 비트의 이동없이 한번에 암복호화가 가능하기 때문에 페스탈 구조에 비해 효율적으로 설계할 수 있다. 대표적인 암호로는 AES가 있으며 AES는 현재 널리 상용되고 있다.

같이 보기[편집]