US Federal Research

 


미연방 표준 알고리즘들에 대한 표준 문서, 소스 코드(테스트 벡터 포함) 등을 제공합니다.

DES/3DES/AES SHA1/SHA2 DSA/ECDSA


DES/3DES/AES

DES(Data Encryption Standard)는 Lucifer를 보완하여 IBM에서 개발한 블럭암호 알고리즘으로 1977년에 미국 표준국(U.S. National Bureau of Standards : NBS, NIST 전신)에서 표준으로 채택(FIPS PUB 46)되었읍니다. 64비트 입력 블럭을 56비트 비밀키를 이용하여 암호화하는 블럭암호 알고리즘이며, 미국 연방정부의 데이터 보호용으로 출발하여 ANSI(American National Standards Institute)의 표준 암호 알고리즘, ABA(American Bankers’ Association)에서 미국내 금융 정보의 보호 표준으로 사용하기까지 사용 범위가 확대되어 현재 전세계적으로 가장 널리 사용되고 있습니다. 그러나 56비트라는 짧은 키 길이로 인해 더 이상 안전하지 않다고 보는 것이 일반적인 견해이며, IPSEC이나 PKIX 등 새로운 응용들에서는 DES를 3회 반복는 Triple DES를 사용하도록 권고하였으며, 최근 차세대 미국 표준인 AES가 확정됨에 따라 앞으로 점차적으로 그 사용범위가 줄어들 것으로 보입니다.

DES의 56비트라는 짧은 키 길이로 인한 안전성 문제를 해결하기 위한 대안으로 3개의 키로 DES를 3회 반복하여 사용하는 Triple DES를 사용하였읍니다. 3DES는 속도가 DES보다 3배 정도 느리다는 단점에도 불구하고, 기존의 DES를 이용하여 쉽게 구현되며 DES의 안전성 문제를 해결하는 장점으로 인하여 여러 표준에서 사용되었습니다. 최근 차세대 미국 표준인 AES가 확정됨에 따라 앞으로 점차적으로 그 사용범위가 줄어들 것으로 보입니다.

1998년을 기점으로 표준 기한이 만료된 DES를 대체할 블럭암호의 필요성에 따라, NIST에서는 향후 정부와 상업계에서 사용할 수 있는 강한 암호화 알고리즘 표준으로 AES(Advanced Encryption Standard)의 개발을 추진하였읍니다. NIST는 3DES보다 더 효율적이고 안전하며 로얄티가 없어야 하는 등을 만족하는 알고리즘을 공모하고, 3년여에 걸쳐 15개의 후보 알고리즘을 공개적으로 평가하여, 2000년 10월 2일 최종 AES 알고리즘을 선정/발표하였읍니다. AES에 채택된 블럭암호는 Daemem과 Rijmen에 의해 개발되고 RIJNDAEL로 명명된 알고리즘으로 DES와 Triple DES를 대신해서 새로운 업계 표준으로 자리잡게 될 것입니다.

DES : 표준문서(pdf), local copy, 관련정보(htm), 소스코드(zip).
3DES : 관련정보(htm), 소스코드(zip).
AES : 관련정보, 소스코드(zip).


SHA1/SHA2

SHA1는 미 연방정부의 디지탈 서명 표준인 DSA를 위해 개발된 해쉬함수로 MD5와 유사한 구조로 설계되었으나 보다 안전한 것으로 인정되고 있습니다. 160비트 길이의 출력을 내며, 대부분의 인터넷 응용이나 국제/업계 표준들에서 DEFAULT 해쉬함수로 사용되고 있습니다.

SHA2는 보다 높은 수준의 안전성이 요구되는 응용을 위해 만들어진 해쉬 알고리즘들로 256비트, 384비트, 512비트 길이의 출력을 내며, 현재 FIPS에서 표준화를 추진중에 있습니다.

SHA1 : 표준문서(htm), 소스코드(zip).
SHA2 : 관련정보(html), 소스코드(sha256, zip), 소스코드(sha384, zip), 소스코드(sha512, zip).


DSA/ECDSA

DSA(Digital Signature Algorithm)는 1991년 8월에 NIST(National Institution of Standard and Technology)가 DSS(Digital Signature Standard)에서 사용하기 위하여 발표한 정부용 전자서명 알고리즘으로 그 안전성은 이산대수 문제의 어려움에 기반을 두었읍니다.

ECDSA는 DSA 전자서명을 타원곡선을 이용한 전자서명 알고리즘으로 변형한 것으로, 다른 공개키 시스템의 키 길이에 비해서 훨씬 짧은 키를 사용하여도 동일한 안전도를 제공하므로 스마트 카드, 무선 통신 등과 같이 메모리와 처리능력이 제한된 분야에서 매우 효과적일 수 있읍니다.

DSA : 표준문서(pdf), local copy, 소스코드(zip).
ECDSA : 관련정보(htm).