SEED,AES표준 곽인범
블록암호 표준 SEED 1999년 한국정보보호진흥원에서 국내표준블록암호 알고리즘으로개발 표준화 1999년 : TTA 표준 개발자 KISA 현황 ISO/IEC 국제 표준 암호 알고리즘후보 제출(2001) 전체 구조 데이터 처리단위 : 8, 16, 32비트 입출력/키의 크기 : 128비트 구조 : Feistel 구조 라운드 수 : 16라운드
SEED 전체 구조 DES와 같은 16라운드 각 라운드마다 키생성
SEED 계산기호 - : 모듈라 덧셈, - : 모듈라 뺄셈 - : XOR 연산 - & : 각 비트별 AND연산 , 0101 1100 = 0100 - << : 비트만큼 왼쪽으로 순환이동, 000111 <<2 = 01100 - >> : 비트만큼 오른쪽으로 순환이동 - || : 병렬합(concatenation), 0011 || 0101 = 00110101
SEED – 라운드 F함수 32비트 보조키 (Ki0,Ki1)과 함께 입력된 32비트 (C,D)를 다음과 같은 (C’,D’)으로 바꾼다.
SEED – G함수 들어온 값 32비트를 각 8비트씩 4개(d,c,b,a)로 나눠서 일정한 규칙으로 섞은 다음 결과 (d’,c’,b’,a’)를 출력
SEED – ‘S-Box’ S-box1 S-box2
SEED – 키 생성 다음 같은 알고리즘으로 생성(i,라운드수) 각 라운드에서 라운드 상수 값을 이용하여 생성. A,B,C,D는 암호키 K를 8비트씩 나눈 것. Ki.1,Ki.0를 생성
AES 선정과정 AES를 공모한 것은 미국의 표준화기구인 NIST(National Institute of Standard and Technology)이다. AES의 응모 조건 무료로 이용할 수 있어야 한다 암호 알고리즘의 규격이 적힌 사양서, ANSI와 Java에 의한 구현, 암호해독에 대한 강도의 평가 제안되는 암호 알고리즘은 설계 규격과 프로그램을 공개
AES 모집조건 속도가 빠를 것, 단순하고 구현하기 쉬울 것 암호화 자체의 속도뿐만 아니라 키의 셋업 속도도 중요 스마트카드나 8비트 CPU 등의 계산력이 작은 플랫폼에서부터 워크스테이션과 같은 고성능의 플랫폼에 이르기까지 효율적으로 동작 블록 길이가 128 비트인 대칭 블록 암호이어야 하고 키의 길이는 128, 192, 와 256 비트를 지원
AES 1차 15개 후보 LOKI97, CAST256, Crypton, DEAL, DFC, E2, Frog, HPC, Magenta, MARS, RC6, Rijndael, SAFER+, Serpent, Twofish
AES 후보들의 구조와 함수 구조 Feistel structure: - a symmetric structure(encryption & decryption is very similar), 동일 반복구조 - n-bits 평문->n-bits 암호문 SPN structure: - 암호화 함수와 복호화 함수의 구조가 달라 Feistel 구조에 비해 구현상의 낭비가 발생 비선형함수 Rotation - >>>,<<< 같은 것을 사용하는것 S-box(앞에 설명)
AES 최종 5개 후보 블록알고리즘 전체구조 비선형함수 (제조사 or 제조인) MARS(IBM사) Feistel structure Sbox Data dependent Rotation RC6 (RSA) Feistel structure Rotation Rijndael SPN structure Sbox (Daemon,Rijmen) Serpent SPN structure Sbox (Anderson,Biham,Knudsen) Twofish Feistel structure Sbox (Counterpane)
END - Thx