오래 못 할 짓 하지 않기

[ 컴퓨터 보안 ] 8. Cryptography 대칭키 ( + 비대칭키 ) 본문

3학년 2학기/컴퓨터 보안(Computer Security)

[ 컴퓨터 보안 ] 8. Cryptography 대칭키 ( + 비대칭키 )

쫑알bot 2024. 10. 15. 14:33
728x90

암호 시스템의 구성

1) 암호화시키는 방법

     - 치환 ( Substitution )

     - 재배열 ( Transposition ) 

     - 혼합 ( Product ) 

2) 사용되는 Key의 종류

     - Single key (or secret) ➡️ Symmetric key

     - Two-ket (or public)     ➡️ Asymmetric key

 

3) Plaintext 처리 방법

     - Block 단위

     - Stream 단위

 


 

Symmetric Key
대칭키 방식

Encryption / Decryption에 같은 Key를 사용한다.

 = Key 하나로 다 돌려 쓴다.

단, 둘 중에 한 곳에서 털리면 다 털린다.

 

 


Asymmetric Key
비대칭키 방식

 

Encryption과 Decryption에 다른 Key를 사용한다.

 = Public Key와 Private Key가 나누어져 있다.

 

계산해야하는 게 좀 있기 때문에 대칭키보다는 속도가 조금 느리다.

- 알고리즘도 많다.

 


Key Size ( Range )

Key의 크기가 늘어나면

- 장점 : Brute-force 공격을 피할 수 있다.

- 단점 : 알고리즘이 복잡해지기 때문에 Time Complexity 가 커진다.

 

따라서 우리는 보안적인 안정성과 효율성 사이에서 중간점을 찾아야 한다.


Cryptogrphy Algorithms

1. Types 

   : 특정 알고리즘을 통해 얼마만큼의 크기의 Plain text를 Cipher text 로 바꿀지.

 

2. Modes 

   : 알고리즘에 세부적인 정보들

 

 

➡️ types  = 어떤 알고리즘을 쓸지

➡️ modes = 해당 알고리즘에서 데이터를 어떤 식으로 처리하는지

 

 

📌 Type 

[ 종류 1 ]  Stream Cipher : 

 

Bit-by-bit로 암/복호화한다.

아래 예시는

들어온 글자

➡️ XOR 연산

➡️ 암호

 

 

[ 종류 2 ]  Block Cipher :

Block 단위로 (여러 bit를 묶어서) 암/복호화한다.

 

 

 

 


📌 Mode 

 

: 특정 알고리즘 안에서 어떻게 작동하는지에 대해서 알려준다.

 

주로 어떤 알고리즘의 조합으로 만들어지고, 어떤 순서로 적용됐는지에 대해 나와있다.

 

 


Symmetric Key

: 암호화와 복호화에 같은(하나의) Key가 쓰인다.

 

특징1) 빠르다

특징2) Transposition + Substitution + Some other unit을 사용하여 암호를 만든다.

                P-box                      S-Box

 

예) DES , AES

 

 

64비트 암호 / 암호에는 10개의 1이 있다.

몇 번 시도를 해야 Plaintext를 얻을 수 있을지

 

- Substitution 암호면? 

➡️ 뭐가 1로 바뀐 것인지, 1:1 대응이 맞는지도 모르기 때문에 알 수 없다.

2^64

 

- Transposition 암호면?

➡️ 위치만 바뀐 것이기 때문에, Plain 은 무조건 1이 10개를 가지고 있다는 것이기 때문에

 

 


Component 분석

 

📌 Component 1) P-box

 

Permutation Box

 

- Straight P-box

: 정해진 규칙에 의해 재배열이 된다.

   * Input bit 수 = Output bit 수

 


 

- Compression P-box

: 여러 개의 Input을 정해진 수의 Output으로 줄여서 출력시킨다.

 

나오지 못한 Input들은 Block으로 다른 Input 들과 합쳐진다.



- Expansion P-box

: 하나의 Input이 여러 Output으로 뻗어나간다.

 

나오지 못한 Input들은 Block으로 다른 Input 들과 합쳐진다.

 

 

✚ Inverteribility 

Straight P box는 Invertible하다.

 

바꾼 내용에 대해서 다시 돌려주는 정보를 담고있는 것이 

Inverted Table이고, 이는 Decription의 과정이다.

 

1. 우선 위 예시와 같이 6개의 숫자를 입력받고, 그에 대해 어떻게 permutation을 만들지 정한다.

2. 그 아래 각각의 인덱스를 쓴다.

3. 인덱스랑 permutation 테이블 위치를 바꾼다. (인덱스 순서가 섞인 채로 테이블에 들어간다)

4. 다시 sort한다.

 

( 3~4번 설명 이해가 안 될까봐 추가해둔다. )

 

 

하지만 Compression , Expansion P-box는 Non Invertible하다.

= Decription이 쉽지 않다..

BUT 할 수 있게 해주는 알고리즘이 있음

 

 

 


📌 Component 2) S-box

S-Box는 m x n substitution unit이다.  (m은 입력 , n는 출력)

 

 

 

 

✚ Inverteribility 

S box는 Invertible할 수도 있고, 안 할 수도 있다.

 

 

Encryption에서 001 = 101

Decryption에서 101 = 001

 

이 경우는 되긴하는데, 안 되는 경우도 많다.

근데 주로 단방향 암호화 시킬 때만 사용하기 한다. ex) Hash함수

 

 

 

 


📌 Component 3) Some other

 

- XOR  : XOR 연산을 두 번 하면, Original value를 얻을 수 있다.

 

 


- Circular Shift : @^n하는 것

 

 


- Swap : 반으로 나눠서 앞 뒤를 바꾼다.


 

 

- Split and Combine : Block으로 나누고 ( Encryption )  > 합치기 ( Decryption )

 

 

 

 

 

 

 

 

(출처)

한동대학교 고윤민교수님 - 컴퓨터 보안