Algorithm
2013.04.23 12:49
[security] 블럭 암호에 대해서..
Views 17205 Comment 0
1. DES(Data Encryption Standard)
DES는 64비트의 평문을 46비트의 암호문으로 만드는 블록 암호 시스템으로 64비트의 키를 사용한다. 64비트의 키(외부 키) 중 56비트는 실제의 키(내부 키)가 되고 나머지 8비트는 거사용 비트로 사용합니다. 또한 DES의 안전성을 증가시키기 위하여 키의 길이를 두 배 즉, 128비트, 십진수 16개를 키로 선택한 변형된 알고리즘을 일반적으로 사용합니다.DES는 16라운드(Round)의 반복적인 암호화 과정을 갖고 있으며, 각 라운드마다 전치(Transposition) 및 대치(Substitution)의 과정을 거친 평문과 56비트의 내부 키에서 나온 48비트의 키가 섞여 암호문을 만든다. 복호화는 암호화 과정과 동일하나 사용되는 키만 역순으로 작용하는 것입니다. 현재 DES는 안전하지 않다. DES는 컴퓨터 성능의 발달에 힘입어(?) 보안성이 약화되어 2, 3 DES를 사용하고 있다. 매 5년마다 안전성을 검증하다가 97년에 NIST는 AES를 제시했고 2000년에 Rijndeal을 AES로 선택했다.
2. AES(Advanced Encryption Standard)
DES 이후의 새로운 암호화 방법으로 여러 가지가 제안되었다. AES(Advanced Encryption Standard)가 새로운 표준을 제정하려는 노력인데 현재 5개의 후보작을 뽑고는 final round를 진행하고 있다.
1998년에 캘리포니아의 벤츄라에서 열린 첫번째 라운드에서는 15개의 후보작이 발표되었다. CAST-256, CRYPTON, DEAL, DFC, E2, FROG, HPC, LOKI97, MAGENTA, MARS, RC6, RIJNDAEL, SAFER+, SERPENT, TWOFISH이 그것인데 이 중에서 CRYPTON은 우리 나라에서 발표한 것이다.
AES (Rijndeal algorithm) 라인델 알고리즘
1977년 미국 상무성의 국립표준국(NBS)에서 채택한 미국 표준 암호 알고리즘 DES(64비트 블록의 입출력)의 안전성 문제로 인해 표준알고리즘를 대신할 차세대 블록암호알고리즘의 공모가 미국 NIST를 중심으로 실시되었고, 마침내 2000년 10월 2일 벨기에 출신 교수 Joan Daemen과 Vincent Rijmen가 개발한 Rijndael이 AES로 선정되었으며, 2001년 11월에는 FIPS 197로 제정됨으로 인해 공식적으로 표준을 인정받게 되었다.
대칭키 암호 알고리즘은 비밀키 암호 알고리즘이라고 하며, 송,수신자가 동일한 키에 의하여 암호화 및 복호화 과정을 한다.
대칭 키 암호 알고리즘은 변환하는 방법에 따라 블록 암호 알고리즘과 스트림 암호 알고리즘으로 구분합니다.
대칭키 암호 시스템은 오랜 역사를 지니고 있어 이미 존재하는 많은 정보기술과 상호 운용이 쉽고 데이터 처리량도 강력합니다. 알고리즘의 내부 구조가 간단한 치환과 순열의 조합으로 되어 있어서 시스템 환경에 맞는 적절한 암호 알고리즘을 쉽게 개발 할 수 있습니다. 그런 정보교환 당사자 간에 동일한 키를 공유하여야 하므로 여러 사람과의 정보 교환시 많은 키를 유지 관리하여야 하는 어려움이 존재합니다.
블록 암호 시스템은 고정된 크기의 입력 블록을 고정된 크기의 출력으로 변형하는 암호 알고리즘에 의해 암호화 및 복호화 과정을 수행합니다.
대표적인 블록 암호 알고리즘으로는 미국의 DES(Data Encryption Standard), Triple-DES, 유럽의 IDEA(International Data Encryption Algorithm), 일본의 FEAL(Fast Data Encryption Algorithm)등이 있습니다.
3. 다른 블럭 암호 시스템
FEAL
FEAL(Fast data Encipherment Algorithm)은 1987년 일본 NTT에서 기존의 DES를 대신하기 위해 만든 블럭 암호 시스템이다. 기본적인 구성은 Feistel 알고리즘에 바탕을 두고 있지만 DES와 같은 Table Look-up 방식을 사용하지 않는데 의의가 있다. 라운드 수에 따라 FEAL-N으로 나타내는데 여기서는 FEAL-8에 대해 알아보기로 한다.
FEAL은 DES와 마찬가지로 64bit 비밀키를 사용하여 64bit 평문을 64bit 암호문으로 바꾸는 블럭 암호 시스템이다. FEAL의 처리부는 키 생성부와 데이타 암호화부의 두 부분으로 구성되는데, 키 생성부는 64bit의 키를 256bit의 키로 확장시키는 일을 하고 데이타 암호화부는 이들 확장된 키를 이용하여 64bit 암호문을 만들어내는 일을 한다.
FEAL은 DES보다 암호화 시간이 더 빠르고, 더 값싸게 구현하기 위하여 만들어졌는데 안타깝게도 발표후 얼마되지 않아서 선택평문 공격에 약하다는 것이 발표되었고 그리고 차분공격에 의해 해독되어지는 모습을 보여주었다. 이후 개량된 FEAL은 이런 공격에 대해 강해졌지만 한번 깨어진 암호화 방법에 대한 불신은 그리 쉽게 회복되지 않았다.
RC5
가변 워드 크기 방식에 기반한 암호화 방식이다. 워드 크기는 16, 32, 64비트가 가능하다. 또한 라운드의 수도 가변적이고 키의 바이트 길이도 가변으로 지정가능하다. RC5-w/r/b로 표현 가능한데 이 경우 16비트 키가 사용된 12라운드 32워드이면 RC5-32/12/16으로 표현한다. RC5-32의 경우 12라운드가, RC5-64의 경우 16라운드가 권장된다. 아래 알고리즘에서 田는 addition mod 2^w를 나타내고, 꺾어진 화살표는 rotation을 나타낸다. 왼쪽으로 향하는 화살표는 left-rotation이다.
IDEA
스위스에서 1990년 Xuejia Lai, James Messey에 의해 만들어진 PES(proposed Encryption Standard)는 이후 1992년 IDEA(International Data Encryption Algorithm)로 이름을 고쳐 제안하였고, 현재 가장 안전하고 최고라고 생각되는 알고리즘으로 블럭 초당 177Mbit의 처리가 가능한 빠른 암호화 방법이다. IDEA은 128-bit key, 8-round, 64-bit block cipher이며 주된 연산은 XOR, add mod 216, multiply mod 216+1이다. RSA와 더불어 PGP에 사용되는 방식이기도 하다.
IDEA는 안전성에서 인정을 받아 전자 우편을 위한 보안도구로 널리 이용되고 있는 PGP에 사용되고 있고, 유럽 표준으로도 등록되어 있습니다.
IDEA는 블록 암호 알고리즘으로써 64비트의 평문에 대하여 동작하며, 키의 길이는 128비트이고, 8라운드의 암호 방식을 적용합니다. 또한 암호화와 복호화에 동일한 알고리즘이 사용됩니다. IDEA 알고리즘은 상이한 대수 그룹으로부터의 세가지 연산(Additional modular 216 , Multiplication Modular 216+1)을 혼합하는 것으로 이들은 모두 하드웨어나 소프트웨어로 쉽게 구현될 수 있습니다. IDEA는 16비트 단위 연사을 사용하여 16비트 프로세스에 구현이 용이하도록 설계되었습니다.
Blowfish
아직까지 유효한 공격법이 발표되지 않은 Blowfish도 있다. Blowfish의 특징은 variable length key (up to 448 bits), 16-round, 64-bit block cipher로 요약되며 주된 연산은 XOR, add, table lookup 4 8*32 S-boxes이다.
-
[algorithm] Greedy (탐욕 기법)
-
[security] RSA 암호화 설명과 예..
-
스터디 자료, 암호화에 대해서.. 나중에 볼 ppt..
-
[security] 블럭 암호에 대해서..
-
Polynomial time 이란? ㅋㅋ
-
암호 알고리즘 및 프로토콜의 이해..
-
디피헬만(Diffie-Hellman) 초간단 개념..
-
러시아 페인트공 알고리즘에 대해..
-
OCB5 Injection 앗싸뵹! ㅋㅋ