선택적 암호문 공격
공격자가 다수의 암호문에서 평문을 얻을 수 있거나 복호화 tool을 사용가능 할 때
연관 key 공격
key는 모르지만 key'이나 key'' 등 유사한 key를 획득할 수 있을 때
DES 암호화 알고리즘
Data Encryption Standard, 64비트의 평문을 암호화 한다.
암호화 시 특정 계산 함수의 반복을 통해 암호화를 진행한다.
Triple-DES
기존 DES는 56bit의 key를 통해 block암호화를 실행한다. 과거에는 충분한 bit였지만 현재 하드웨어 기반으로는 몇 시간내에 brute-force를 통해 해독 가능하게 되었기에 DES를 3번 적용하여 연산해야하는 bit를 확장하였다.
Double-DES
왜 두번 DES를 진행하지 않을까? C=E(E'(P))의 경우 가능한 모든 P에 대해서 E'(P)를 계산한 table이 존재할 경우 D(C) = E'(P) 이므로 D(C)를 구할경우 평문을 유추할 수 있게 된다.
AES 암호화 알고리즘
DES를 대체하기 위해 만들어진 암호화 알고리즘. 기존의 DES는 동일한 계산 함수의 반복인 Feistel Cipher였으나 해당 구조가 변경되었다.
Block 암호화의 mode
블록 단위로 암호화를 하는 것 까지는 좋다, 그렇다면 여러 block이 존재하는 경우 어떻게 전체를 암호화 해야 할까?
ECB 모드 ( Electronic Code Book )
각 block을 독립적으로 암호화 해준다. 하지만, 같은 block을 암호화하면 같은 암호문이 생성되므로 한번 암호문이 해독되면 동일한 평문 block들도 해독되는 단점이 존재한다.
CBC 모드 ( Cipher Block Chaining )
이전 block의 암호문과 현재 block의 평문을 XOR후 암호화 해 준다.
만일 P1의 암호화 과정 중 오류가 발생해도, P2 블록까지만 영향을 미치므로 오류 수복에 유리하다는 장점이 있지만 무결성을 보장하기 힘들다.
CTR 모드 ( Counter )
각 block에 순서 값( counter)를 포함시켜서 암호화 시킨다. 이전 block에 대해 독립적이므로 병렬적으로 암호화가 가능하다는 장점이 존재한다.
CFB 모드 ( Cipher Feedback Mode )
CBC모드와 유사하다. CBC는 이전 블록의 암호문과 현재 블록의 평문을 XOR한 후 암호화를 진행한다. CFB는 이전 블록의 암호문을 암호화 시킨후 평문과 XOR하여 암호문을 생성한다.
OFM ( Output Feedback Mode )
이것 또한 CFM과 비슷, 이전 블록을 암호화하고 평문과 XOR하기 이전의 값을 암호화 시키고 평문 블록과 XOR을 진행한다
GCM ( 갈루아 카운터 모드 )
유한 집합 갈루아 필드 내에서 연산을 진행한다. 기본적으로 CTR 모드의 확장판이라고 생각하면 된다. 대용량 연산과 병렬 연산에 유리하다.