@ One-time pad
공격자가 여러가지 정보, 시간이 존재할 때(공격자의 파워가 셀 경우) 과연 안전한 방법, 암호 스캔이 존재할까?
-> 양자 암호를 사용하지 않을 경우 암호문이 깨지지 않으려면 키가 무한해야 한다.
-> 키 공간에 속한 모든 키들은 전사 공격을 수행하면 어떤 암호든 반드시 언젠가는 해독할 수 있다.
-> 단! One-time pad는 예외이다.
즉 공격자가 무한 파워를 가지고 있어도 안전하다.
Shannon의 연구에 따르면 완벽한 암호는 평문 심볼이 어떤 키 도메인으로 부터 랜덤하게 선택된 키로 암호화 되었을 경우에만 달성될 수 있다고 했다.
@ Kerckoff's principle
암호 알고리즘을 숨기는 것은 좋지 않다. 오히려 알고리즘을 공개하는 것이 더 좋다.
우리는 적이 암호화, 복호화 알고리즘을 알고 있다고 가정해야만 한다. 오로지 암호문에 대한 보안는 키의 비밀유지에 근거하여만 한다.
@ Security Model for encryption
이제 지금까지 배운 내용을 바탕으로 어떠한 스킴을 세우고 안전하다고 증명을 해보자
- 알고리즘 : 대칭키 알고리즘 (Algorithms of symmetric encryption schem)
- Key Gen : Generate a secret key
- ENC : secret key로 평문을 암호화한다.
- DEC : secret key로 암호문으로부터 평문을 알아낸다.
@ Classification of attacks : 가장 기본적인 공격
1) Ciphertext only attack
An adversary is given only the target ciphertext
(적이 암호문을 입수하고 있다)
2) known plaintext attacks
An adversary is given some known pairs of plaintext and ciphertext
(적이 평문과 그에 대응하는 암호문을 입수하고 있다.)
3) chosen plaintext attacks
An adversary can get ciphertexts of plaintexts which are chosen by the adversary
(적이 암호기기에 일시적 접근을 할 수 있다. 그러므로 적당한 평문을 선택하여 그에 대응하는 암호문을 만들 수 있다.)
4) chosen ciphertext attacks
An adversary can get plaintexts of ciphertexts which are chosen by the adversary
(적이 복호기기에 일시적 접근을 할 수 있다. 그러므로 적당한 암호문을 선택하여 대응하는 평문을 만들 수 있다.)
1 -> 4 로 갈수록 공격자의 힘은 세진다. 현재 이 네개까지 안전하면 안전하다고 말할 수 있다. |
@ Security against Ciphertext only attack
키젠이라는 알고리즘을 통해 security key를 생성한다. 암호문을 작성하고 adversary에게 넘긴다.
공격자는 이 암호문을 가지고 유용한 정보를 추출한다.
유용한 정보 : SK(security key), m(메세지 전체), LSB(m), MSB(m)
이렇게 얻어내는 것이 다를 수 있다.
어떤 정보를 가지고와야 이것을 깼다라고 말할 수 있을까?
우리는 단 1bit만 알아도 깼다고 말을 할 수 있다.
@ Security against known Plaintext attacks
암호문 일부와 그에 대응하는 평문 일부를 가지고 있다.
@ Security against chosen Plaintext attacks
PPT로 그리기 귀찮다......
A가 자기 입맛에 맞는 m0, m1을 선택해 보내준다.
0, 1 중에 하나를 뽑아 b라고 한다.
0이면 m0, 1이면 m1을 암호화하고 그리고 암호화 한것을 넘겨 준다.
A는 이 암호화한 것이 m0인지 m1인지 알아내면 이 게임을 이겼다고 한다.
An adversary A wins the game if b = b'
여기서 공격자는 자기가 원하는 만큼 오라클에게 보내서 암호문을 받아볼 수 있다.
왜 한 bit만 얻을 수 있어도 게임을 이겼다고 할까?
m0(1110) , m1(1111)와 같이 마지막 비트만 바꿔서 보내고 그것의 암호화를 안다면 다 알 수 있을 것이다.
1/2 확률은 당연하므로 어느 정도 확률일 때 이겼다고 할 수 있을까?
-> 당연 1/2 이상일 경우이다.
An encryption scheme is IND-CPA-Secure
if there exist no adversary which wins the IND-CPA game with a probability more than 1/2 + t(n), where t(n) is a non-negligible function
(non-negligible function이란? 1/100 또는 1/n^2 와 같이 n이 증가해도 충분히 작아지지 않는 수)
@ Security against chosen Ciphertext attacks
게임에 승리할 조건 : An adversary A wins the game if b = b'
IND-CCA (Indistinguishability against chosen ciphertext attack)
if there exist no adversary which wins the IND-CCA game with a probability more than 1/2 + t(n), where t(n) is a non-negligible function
위에 와 다른 점은
가 존재한다는 점이다. 이는 공격자가 얻을 수 있는 정보가 더 많다는 뜻으로 더 Powerful한 공격자를 뜻한다.
④ 는 자기가 guess 한 비트이다.
이 게임을 이기려면 1/2 는 넘어야 한다.(최소가 1/2이므로)
이 게임을 특별한 알고리즘으로 깰 수 없다면 이 전의 게임도 모두 깰 수 없다고 본다.
(이 게임이 가장 많은 정보를 주는 게임이므로)
'보안 > 정보보호이론' 카테고리의 다른 글
Hash Functions (1) | 2015.03.02 |
---|---|
Bock Cipher Modes (0) | 2015.03.02 |
Lottery를 이용한 단일 대치 암호문 해독 (0) | 2015.03.02 |
고대 암호학 (1) | 2015.03.02 |
정보보호이론에서 알아두어야할 공식 (0) | 2015.03.02 |