데이터의 무결성, 기밀성 확보를 위해 정보를 쉽게 해독할 수 없는 형태로 변환하는 기법이다.
대칭 키 암호 방식은 암호화와 복호화에 같은 암호 키를 사용하는 알고리즘이다. 암호화를 위해 비밀 키 전달을 위한 키 교환이 필요하고, 암호화 및 복호화의 속도가 빠르지만 키 분배 및 관리의 어려움이 따르고, 기밀성만 보장된다는 단점이 있다.
대칭 키(비밀키)를 사용하고 필요한 키 개수를 구하는 공식은 n(n-1)/2 이다. 예를들어 10명이 공개키 암호를 사용할 경우 10*9/2 = 45개 가 된다.
긴 평문을 암호화 하기 위해 고정 길이의 블록을 암호화하는 블록 암호 알고리즘을 반복하는 방법 (DES, AES, SEED 등)
매우 긴 주기의 난수열을 발생시켜 평문과 더불어 암호문을 생성하는 방식 (RC4 등)
1975년 IBM에서 개발하고 미국의 연방 표준국(NIST)에서 발표한 대칭 키 기반 블록 암호화 알고리즘
1999년 한국인터넷진흥원(KISA)에서 개발한 블록 암호화 알고리즘
2001년 미국 표준 기술 연구소(NIST)에서 개발한 블록 암호화 알고리즘으로 DES의 성능 문제를 극복하기 위해 개발되었다
2004년 국가정보원과 산학연구협회가 개발한 블록 암호화 알고리즘
DES를 대체하기 위해 스위스 연방기술 기관에서 개발한 블록 암호화 알고리즘
미 안보국가국(NSA)에서 개발한 Clipper 칩에 내장된 블록 알고리즘으로 소프트웨어로 구현되는 것을 막고자 칩으로 구현되었다
시프트레지스터의 일종으로 레지스터에 입력되는 값이 이전 상태 값들의 선형 함수로 계산되는 구조로 되어 있는 스트림 암호화 알고리즘
비대칭 키 암호 방식은 사전에 개인 키를 나눠 가지지 않은 사용자들이 안전하게 통신하는 방식이다.
비대칭 키 암호 방식에서는 공개키(Public Key)와 개인 키(Private Key, 사설키)가 존재하며, 공개키는 누구나 알 수 있지만, 그에 대응하는 개인 키는 키의 소유자만이 알 수 있어야 하며 공개키로 암호화된 메시지는 반드시 개인 키로 복호화해야 한다.
10명의 사람이 사용할 경우 총 20개(2n)의 키가 필요하다.
최초의 공개키 알고리즘으로 디피와 헬만이 1976년에 고안한 알고리즘이다.
1977년에 3명의 MIT 수학 교수에 의해 고안되었으며 큰 인수의 곱을 소인수 분해하는 수학적 알고리즘을 이용한다
1985년 코블리치와 밀러가 RSA 암호 방식에 대한 대안으로 처음 제안 했으며 타원 곡선 암호(ECC)는 유한체 위에서 정의된 타원곡선 군에서의 이산대수의 문제에 기초한 알고리즘이다
ElGamal이 1984년에 제안했으며 이산대수의 계산이 어려운 문제를 기본 원리로 하고 있다.
해시 암호 방식은 임의 길이의 정보를 입력받아, 고정된 길이의 암호문(해시값)을 출력하는 암호 방식으로 이 방식으로 암호화된 정보는 복호화가 불가능하다.
키를 사용하는 메시지 인증 코드로 메시지의 정당성을 검증하기 위해 메시지와 함께 전송되는 값으로 메시지의 무결성과 송신자의 인증을 보장
키를 사용하지 않는 변경 감지 코드로 수신자는 받은 데이터로부터 새로운 MDC를 생성하여 송신자에게 받은 MDC와 비교하여 해당 메시지가 변경되지 않았음을 보장하는 값으로 메시지의 무결성을 보장한다.
MD4를 개선한 암호화 알고리즘으로 프로그램이나 파일의 무결성 검사에 사용된다. 각각의 512비트짜리 입력 메시지 블록에 대해 차례로 동작하여 128비트의 해시값을 생성한다
1993년 NSA에서 미 정부 표준으로 지정되었고 DSA에서 사용된다. 160비트의 해시값을 생성한다.
256비트의 해시값을 생성하는 SHA 알고리즘 해시함수이다. AES의 키 길이만 128, 192, 256 비트에 대응하도록 출력 길이를 늘인 알고리즘이다
국내 표준 서명 알고리즘 KCDSA를 위해 개발된 해시함수로 MD5와 SHA-1의 장점을 취하여 개발 되었다.
메시지를 1024비트 블록으로 나누고 128, 160, 192, 224, 256 비트인 메시지 다이제스트를 출력하는 해시 알고리즘