경량암호 편집하기
최신판 | 당신의 편집 | ||
24번째 줄: | 24번째 줄: | ||
* '''[[PRESENT]]''' | * '''[[PRESENT]]''' | ||
− | :PRESENT는 AES 기반의 경량 블록 암호 알고리즘이다. 블록 | + | :PRESENT는 AES 기반의 경량 블록 암호 알고리즘이다. 블록 사이트는 64비트, 키 사이즈는 80바이트와 128비트 두 종류를 가지고 있어, 64비트의 평문과 80비트의 키를 사용한다. 전체 구조는 4비트의 S-box와 배타적 논리합 및 비트 시프트로 연산 되며 32라운드로 구성되어 있다. 암호화 강도는 AES와 비교하면 암호화 등급이 조금 낮지만, 하드웨어 설계에서는 훨씬 좋은 성능을 갖는 알고리즘이다. AES보다 2.5배 작은 하드웨어 설계가 가능하고, RFID, 스마트카드, USN 같은 시스템에 사용하기 위해서 면적과 소비전력을 개선하여 효율성을 높인 암호 알고리즘이다. |
:PRESENT는 차분 오류 공격이 제기된 바가 있다. 부 채널 공격 기법에 해당하는 차분 오류 공격은 암호의 안정성 분석에서도 자주 사용되는 방식이다. 공격 방법은 다음과 같다. 공격자 이브는 총 31라운드 중에서 28라운드의 입력 레지스터에 2바이트 오류를 입력한다고 하자. 이를 통해 80비트 키의 경우에는 3개의 오류를 이용하여 평균 <math>2^{22.3}</math>개의 후보 비밀키를 얻을 수 있다. 비밀키는 이러한 과정을 통해 복구될 수 있다. | :PRESENT는 차분 오류 공격이 제기된 바가 있다. 부 채널 공격 기법에 해당하는 차분 오류 공격은 암호의 안정성 분석에서도 자주 사용되는 방식이다. 공격 방법은 다음과 같다. 공격자 이브는 총 31라운드 중에서 28라운드의 입력 레지스터에 2바이트 오류를 입력한다고 하자. 이를 통해 80비트 키의 경우에는 3개의 오류를 이용하여 평균 <math>2^{22.3}</math>개의 후보 비밀키를 얻을 수 있다. 비밀키는 이러한 과정을 통해 복구될 수 있다. | ||
:하드웨어 구현할 때는 사용된 키의 비트수가 다른 알고리즘들에 비하여 적은 편이기 때문에 적은 수의 레지스터를 사용한다. 한 라운드동안 17개의 S-box를 병렬로 사용한 모듈과 17라운드 동안 1개의 S-box를 순차적으로 사용한 모듈을 모두 구현한다. 파이스텔 구조가 아니므로 복호화를 하기 위해서 각 함수의 역함수를 모두 구현한다. | :하드웨어 구현할 때는 사용된 키의 비트수가 다른 알고리즘들에 비하여 적은 편이기 때문에 적은 수의 레지스터를 사용한다. 한 라운드동안 17개의 S-box를 병렬로 사용한 모듈과 17라운드 동안 1개의 S-box를 순차적으로 사용한 모듈을 모두 구현한다. 파이스텔 구조가 아니므로 복호화를 하기 위해서 각 함수의 역함수를 모두 구현한다. |