1. rec
안전한 암호 시스템이란?
공격자가 어떠한 부가정보를 가지고 있더라도, 공격자가 암호문을 본 뒤에 부가정보를 넘어서는 어떠한 정보도 알 수 없어야 안전한 암호 시스템이라고 할 수 있다.
즉, 공격자가 얻게 되는 정보(정보량)가 암호문을 보았을 때와 암호문을 보지 않았을 때가 같은 경우 안전하다.
암호 공격자 모델
암호문 단독 공격(COA)
-공격자가 암호문만 보고 평문 또는 키에 대한 정보를 알아내려는 공격
*시저 암호(시프트 암호)는 COA에 취약
기지 평문 공격(KPA)
-공격자가 몇 개의(평문, 암호문) 쌍을 알고 또 다른 평문 또는 키에 대한 정보를 알아내려는 공격
*힐 암호는 KPA에 취약
선택 평문 공격(CPA)
-공격자가 스스로 선택한 평문 몇 개에 대해 암호문을 얻을 수 있는 상황에서 공격
*공개키 암호가 이에 해당
선택 암호문 공격(CCA)
-선택한 평문에 대한 암호문 획득에 추가로 선택한 암호문에 대한 평문까지 획득이 가능한 상태에서 공격
-공격자가 복호화 장비까지 접근할 수 있는 경우
공격자 능력 강도
COA<KPA<CPA<CCA
2. 일회용 패드 (One-Time Pad)
암호화
-평문 비트열 p와 키 비트열 k의 XOR 연산
*키 비트열 k는 평문 비트열 p와 같은 길이이며 Random한 비트열이다. 여기서 의사난수 생성기는 완전한 난수가 아니기 때문에 사용할 수 없다.
복호화
-XOR는 자기자신이 덧셈에 대한 역원이다. 즉, 암호문 c와 키 비트열 k의 XOR 연산
Perfect Secrecy
어떠한 공격으로도 평문에 대한 정보를 얻는 것이 불가능 하다.
Pros | Cons |
매우 안전하다. | 키 배송과 보관이 어렵다. |
빠른 암/복호화 연산을 지원한다. | 키 재사용이 불가능하다. |
키 생성이 어렵다. |
3. 블록 암호
블록 암호의 종류로는 비즈네르 암호와 힐 암호가 있다.
평문을 블록화 한 후 개별 블록에 대해서 암호화 하는 것이 블록 암호이다.

비트 블록 집합의 크기는 2^m이고, 암호화 키 공간의 크기는 (2^m)!이다.
*블록이 40비트일 경우 거의 4GB 정도의 공간이 필요하기 때문에 이상적인 블록 암호의 경우 크기가 너무 크다는 단점이 있다.
현실적이고 안전한 블록 암호
평문에서 1비트만 바뀌어도 암호문의 반 정도가 영향을 받고,
암호문에서 1비트만 바뀌어도 평문의 반 정도가 영향을 받는다면 안전한 블록 암호라고 할 수 있다.
'활동들.. > Incognito' 카테고리의 다른 글
스트림 암호 (0) | 2022.11.05 |
---|---|
AES (0) | 2022.10.22 |
Feistal Network 3R 그리기 (0) | 2022.10.12 |
암호학 퀴즈 (0) | 2022.09.05 |
RSA 암호화 프로그래밍 (0) | 2022.08.08 |