본문으로 바로가기

Information Security Principles and Practice 2nd Edition을 보고 기본 개념을 정립하기에 좋다고 생각하여 정리하여 글을 쓴다.

영어 공부도 할 겸, 영어로 많이 쓰려고 노력은.. 해야지...


이 책에서는 등장인물로 Alice, Bob, Charlie, Trudy가 주로 나온다.

Alice와 Bob, Charlie는 선한 인물,Trudy는 악한 인물로 가정하고 정리를 시작하겠다.


정보 보안의 3대 요소 (CIA)


정보 보안의 3대 요소는 아래와 같다.


Confidentiality(기밀성): Prevent unauthorized reading of information ( 인가되지 않은 사람이 정보를 읽으면 안된다.)


Integrity(무결성); detect unauthorized writing of information ( 인가되지 않은 사람이 정보를 수정하면 안된다.)


Availability(가용성): Data is available in a timely manner when needed ( 데이터는 필요시에 항상 사용 가능해야한다.)



Crypto terminology(암호 용어)


Cryptology(암호학): "secret code"를 만들거나 해독하는 학문


Cryptography(암호생산): "secret code"를 만드는 것


Cryptanalysis(암호분석): "secret code"를 분석하는 것


Crypto(암호): 위 세가지를 모두 의미하고 그 이상의 의미로도 사용된다.



일반적으로 원본 데이터를 plain text(평문)이라고 하고, 암호화 된 데이터를 cipher text(암호문)이라고 한다.

plain text에서 cipher text로 바뀌는 것을 encryption(암호화) 라고 하고, cipher text에서 plain text로 바뀌는 것을 decryption(복호화)라고 한다.


key는 encryption과 decryption을 하기 위해 사용된다.


encryption key와 decryptino key가 같으면 symmetric key cryptosystem(대칭키) 라고 불린다.


그림으로 나타내면 아래와 같이 나타낼 수 있다.






encryption key와 decryption key가 다르면 private key cryptosystem(개인키)라고 불린다.


그림으로 나타내면 아래와 같이 나타낼 수 있다.



일반적으로 encryption을 하기 위해 public key를 사용하고 decryption을 하기 위해 private key를 사용한다.

encryption은 누구나 할 수 있고, decryption은 각 개인만이 할 수 있는 crypto system이다.



Kerckhoffs' Principle(커크호프의 법칙)


Crypto system의 목표는 key가 유출되지 않는한 복호화 할 수 있는 방법이 없어야 한다.


Crypto system의 알고리즘은 비밀이 아니고, key를 제외한 모든 방식은 알려져있다는 것이 Kerckhoffs' Principle이다.

Crypto system은 아무리 비밀로 치부해도 유출될 가능성이 있고, 유출이 된다면 사용되지 못하기 때문에 kerckhoff's Principle을 기초로 하고 있다.


classic Cipher (고전암호)


현대 암호를 본격적으로 공부하기 전에 classic cipher에 대해 알아볼 것이다.


Simple Substitution (단순 치환)


Simple Substitution은 1대1 치환하는 cipher라고 생각하면 된다. 


현재 문자를 n번째 앞에 있는 문자와 치환 하는 것이다.


아래는 n=3 일 때를 나타낸 것이고, Ceasar's Cipher를 나타낸 것이다.




plaintext: marcoissmarthakcer

ciphertext: PDUFRLUVPDUWKDNHU


위와 같이 간단히 simple substitution을 할 수 있다.


simple substitution이 간단히 문자 이동 방법만 사용했다고 가정하면 trudy가 암호문을 얻었을 경우 26번의 경우의 수를 가지고 있고, 평균 13번의 공격으로 plaintext를 얻을 수 있다.


이와 같이 가능한 모든 경우의 수를 통해 key를 찾아내는 시도를 try them all (전수키조사)라고 한다.


하지만 simple substitution에서 n 자리수의 이동만 가능한게 아니라 다양한 조합의 수가 존재한다.


하지만 1대1 치환이기 때문에 각 문자의 통계는 바뀌지 않아 전수키조사를 하지 않고 더 빠른 방법으로 공격 가능하다.



crypto의 안전성이란?


secure Crpyto system is defined if best know attack is to try all keys

안전한 암호 체계는 공격 방법이 전수키조사 뿐일 때 안전한 암호 체계이다.


insecure crypto system is defined if any shortcut attack is known

안전하지 않은 암호 체계는 공격 방법이 전수키조사 이외의 빠른 방법이 있을때 안전하지 않은 암호 체계이다.



Double Transposition Cipher (이중전위 암호)


Double Transposition Cipher는 plain text를 미리 정한 크기의 행렬로 배열하고 행과 열을 미리 정한 순서로 바꾼다.


아래의 예시를 보면 이해하기 쉬울것이다.






cipher text의 decryption은 encryption의 정확히 반대 순서로 계산하면 plain text를 얻을 수 있다.


Double Transposition Cipher는 plain text의 문자를 바꾸지 않는다. 

다만, 통계적 정보를 가지고 공격하는 방식에는 효과적이다.



One - Time - Pad (일회성 암호)


one time pad는 plaint text와 key stream을 xor 연산한 결과를 cipher text로 사용하는 체계이다.


x와 y의 xor 연산은 x ⊕ y 로 나타내고 xor의 특징으로  x ⊕ y ⊕ y =x이다.


one time pad의 특징은 반드시 key stream과 plain text의 길이가 같아야 한다.


plain text에 각 문자가 매핑되는 특정 bit가 사전에 정립되어야 한다.


아래의 간단한 예시를 보고 이해 해보자.





문자와 mapping 되는 bit는 위와 같다.


이를 바탕으로 encryption을 진행해보자.





위와 같이 xor를 통해 plain text와 cipher text를 만들 수 있다.


다만 평문의 길이만큼 key stream이 필요하는것이 one time pad의 특징이자 단점이다.


또한 기존에 정립된 맵핑 정보를 알면 key를 마음대로 조작해 다른 의미를 띄게 할 수 있다. 

cipher text를 통해 plain text의 정보도 알아낼 수 없다.


이러한 점으로 미루어 보아 안전한 암호체계의 일회성 암호 특징을 보여준다.


one time pad가 일회용으로 사용되어야만 하는 이유를 알아보자.


두 개의 plain text 두 개가 P1, P2이라고 가정하면 cipher text C1, C2는 아래와 같이 나타낼 수 있다.


C1 = P1 ⊕ Key, C2 = P2 ⊕ key


C1과 C2를 xor하면 어떻게 될까?? 아래의 경우를 보자.


C1 ⊕ C2 = P1 ⊕ key ⊕ P2 ⊕ key = P1 ⊕  P2 


key 가  사라지기 때문에 유추를 통해 plain text를 알아 낼 수 있다.


따라서 one time pad는 일회용으로 사용해야 한다.



Codebook cipher (코드북 암호)


codebook cipher는 simple substitution과 비슷한 치환 암호의 일종이다.

하지만 simple substitution는 각 문자마다 치환을 하는 반면에 code book은 단어나 절을 치환한다.


예시는 아래와 같다.





confusion(혼돈) and 확산(diffusion)


confusion은 plain text와 cipher text의 상관관계를 숨기는 것이다.


diffusion은 plain text의 통계적 성격을 cipher text에서 숨기는 것이다.


simple substitution과 one-time-pad는 confusion의 특징을 갖고

Double transposition은 diffusion 특징만 갖는다.




















'Crypto, Access Control, Protocol' 카테고리의 다른 글

Symmetric Crypto (대칭키 암호)  (3) 2018.12.22