[Dreamhack] 현대 암호 정리

2024. 3. 7. 20:52보안/크립토

728x90
반응형

혼돈과 확산


1945년 암호확자 Claude Shannon "안전한 암호 시스템은 혼돈(Confusion)과 확산(Diffusion)의 성질을 만족해야 한다."

혼돈

암호문에서 평문의 특성을 알아내기 힘든 성질
->단일 치환 암호로 같은 평문 (Hello)을 두 번 암호화하면 결과는 같음(EINND)

혼돈

평문을 유추하지는 못해도, 두 평문이 같구나 정도는 알 수 있다. -> 혼돈의 성질 만족 X

확산

평문의 작은 변화가 암호문의 큰 변화로 이어지는 성질

확산

이 역시 고전 암호에서 찾아보기 힘든 성질

대칭키 암호 시스템


암호화와 복호화에 같은 키를 사용하는 암호 시스템

블록 암호(Block Cipher)

평문을 정해진 크기의 블록 단위로 암호화하는 암호 . 블록의 크기가 4바이트 -> 평문을 4바이트의 블록으로 쪼개어 블록마다 암호화 ex) DES , AES

블록 암호

평문의 크기가 블록 크기의 배수가 아니어서 균등하게 쪼갤 수 없다면, 데이터를 추가하는 패딩(Padding)수행

스트림 암호(Stream Cipher)

송신자와 수신자가 공유하는 데이터 스트림을 생성하고 이를 평문에 XOR하는 암호
평문을 P, 암호문을 C, 스트림을 X -> C = PX

수신자는 CX = P 로 복호화

송신자와 수신자가 평문 길이 만큼의 스트림을 매번 공유할 수 있다면 공격자는 암호문을 복호화할 수 없다.

-> 이런 환경이면 암호화가 필요하지 않다 ! 그냥 스트림을 공유하는 채널로 평문을 공유하면 됨

그래서 스트림 대신 시드(Seed)라 불리는 작은 값을 공유하여 사전에 합의된 함수의 인자로 넣어 스트림을 생성한다.

이는 단순한 연산으로만 구현되어 속도가 매우 빠르다.

스트림 암호

대칭키 암호 시스템의 장단점

공개키 암호 시스템에 비해 속도가 빠르지만 , 사전에 키를 교환해야 한다는 제약존재

그룹내에 여러 명이 있어도 두 사람마다 서로 다른 키를 생성해서 사용해야 한다. N명이 있으면 N(N1)/2개의 키가 필요.

대칭키 교환

공개키 암호 시스템


수신자의 공개키(Public Key)로 데이터를 암호화하여 수신자에게 전송하고 , 수신자는 자신의 비밀키(Private Key)로 복호화한다. 공개키는 모두에게 공개되어 있으므로 공개키를 알면 누구나 수신자에게 암호를 보낼 수 있다. 공격자는 암호문을 도청해도 복호화할 수 없다. -> 개인키는 수신자만 알고 있기 때문에

공개키 암호 시스템의 장단점

각자의 공개키와 비밀키를 만든 후 공개키만 공개하면 되므로 N명 -> 2N개의 키만 필요

또한 한 번 키를 생성하고 나면, 새로운 상대와 통신하더라도 키를 다시 만들 필요 X

대칭키 암호 시스템에 비해 연산이 복잡하기에 속도가 느리다. 또한 대칭키 암호와 같은 안전성을 제공하려면 긴 키를 사용해야 한다. 

암호의 기능


1. 기밀성(Confidentiality)

허락된 사람만이 정보를 열람할 수 있게 하는 기능

2. 무결성(Integrity)

송신자가 보낸 정보에 변조가 일어나지 않았음을 의미

3. 인증(Authentication)

정보를 주고 받는 상대방의 신원을 확인하는 기능 ex)ID, PW, 공인인증서 등

4. 부인 방지(Non-reputation)

정보를 교환한 이후에 교환한 사실을 부인할 수 없게 하는 기능을 의미 ex)온라인 거래 - 돈 받은 사람이 받은 적 없다하면 거래 불가

퀴즈

Q1. 비제네르 암호에서 키워드 SKY로 MINDBLUE를 암호화하면 ESLVLJMO이고 MINTBLUE를 암호화하면 ESLLLJMO이다. 이러한 특성에 비추어 보아, 비제네르 암호는 다음 성질을 만족하지 못한다.

 

-> 답은 확산이라는데 혼돈도 만족하지 않나 ? 평문에 조그마한 변화에 암호문에 큰 변화가 없으니까

 

Q2. 다음 설명 중 틀린 것은?  

1. 공개키 암호 시스템에서 공개키를 아는 사람은 공개키로부터 비밀키를 알아낼 수 있다.
2. 공개키 암호 시스템에서 공개키는 암호화를 할 때, 비밀키는 복호화를 할 때 쓰인다.
3. 두 명이 대칭키 암호를 이용해 통신을 하기 위해서는 사전에 키를 교환해야 한다.
 

-> 1.  공개키 암호 시스템에서 공개키를 알아도 비밀키를 알아낼 수 없다.

 

Q3. A에 들어갈 말을 고르시오: 드림이는 내일 오전에 만나 같이 암호학 공부를 하자는 쪽지를 오리에게 직접 받았습니다. 하지만 다음날 늦잠을 잔 오리는 드림이에게 자신이 그런 쪽지를 보낸 적이 없다고 변명했습니다. 오리가 이렇게 거짓말을 할 수 있는 이유는 쪽지에 A이(가) 없기 때문입니다.

 

-> 부인 방지 기능 : 정보를 교환한 이후 교환한 사실을 부인할 수 없게 하는 기능

728x90
반응형

'보안 > 크립토' 카테고리의 다른 글

[Dreamhack] 고전 암호 정리  (2) 2024.03.07
[Dreamhack] Crpyptography Introduction 정리  (1) 2024.03.07