본문 바로가기

Computer Science/Security Theory

[학교수업] 02. Classical Encryption Technique

 

▼ pdf 바로보기

 

 


 

 

🔔 내용요약

  1. 고전 암호화 기법
    → 현대에 사용되기엔 너무 약한 보안기법이기에 사용되기 어렵다.
    → 허나 주요 개념들의 경우, 현대 기법에 사용되는 개념들이 많기에 알아보자.

  2. 고전 암호화 기법의 종류 (6)  👉 Which is about 기밀성(Confidential)'s Encryption
    (1) Shift Cipher 
    (2) Monoalphabetic Cipher
    (3) Multiple-Letter Encryption (中 Playfair cipher)
    (4) Polyalphabetic cipher (中 Vigenere)
    (5) Transposition Technique
    (6) Rotor Machines

    2-1. Shift Cipher (=시저 암호)
    : 평문 x를 key 'k'만큼 shift하여 암호화하는 기법
    → Encryption : □ = x + k(mod 26)                             # 26 : 알파벳의 총 개수
    → Decryption : □ = x - k(mod 26) 
    → Attack (4)  : Cipertext only, Known plaintext, Chosen plaintext, chosen ciphertext
    → Problem 😡 : Cipertext only(모든 경우의 수)로 해도 26가지 경우이기에 너무 잘 뚫림!

    2-2. Monoalphabetic Cipher (=단일 치환 기법)
    : (치환) 한 문자를 다른 문자로 대체해 암호화하는 기법
    → Key의 경우의 수 : 26!
    → frequency Attack의 경우의 수 : 26가지 
    → Problem 😡
       : Cipertext only로 해도 26!가지 경우이기에 안전할 것 같지만 아님. 왜냐하면 언어이기에
        모든 알파벳 요소의 빈도수(확률)이 동일 X. 따라서 요소에 따른 확률적 접근시 경우의 수 ↓.
        따라서 Decryption이 훨씬 작아지기에 보안적으로 안전하다 할 수 없다.
        이를 보완하기 위해 등장한 기법이 바로 '다중 문자 치환 기법'이다.

    2-3. Multiple-Letter Encryption (中 Playfair) (=다중 문자 치환 기법 (1))
    : (치환) 독특한 방식으로 문자들을 치환하여 평문에 등장하는 문자의 빈도와 암호문에서 사용되는
      문자의 빈도를 다르게 만드는 암호화 기법. 
    → 가장 대표적 방식이 'Playfair' 방식. 
    → Playfair Cipher 방식 :
       (1) Playfair table 생성
           i. Keyword 설정 
           ii. Keyword를 이용해 Table 생성
              (Keyword가 없을 경우) A~Z를 좌→우, 상→하로 하여 5*5 matrix를 채움. (단, j는 생략)
              (있을 경우) 해당 키워드에서 중복문자를 제거후 좌→우, 상→하로 하여 5*5 matrix를 채움.
                            그리고 나서 A~Z 중 남은 문자들을 matrix의 나머지 빈 공간에 채움. 
       (2) 암호화 진행
           : 평문의 두 문자를 짝지은 pair을 기준으로 치환 진행. 치환 규칙은 아래와 같다. 
           i. 만약 pair가 동일한 문자일 경우, 필터문자(ex.X)를 삽입한다.
           ii. 만약 한 문자가 남을 경우, 마지막에 필터문자(ex.X)를 삽입한다.
           iii. pair의 두 문자가 같은 행일 경우, 각 문자의 오른쪽 문자로 치환한다. 
           iv. pair의 두 문자가 같은 열일 경우, 각 문자의 아래쪽 문자로 치환한다.
           v. pair의 두 문자가 같은 열도 행도 아닐 경우,  □한 다음에 각자 같은 행에 해당하게 치환한다.
    → Key의 경우의 수: 24! 
    → frequency Attack의 경우의 수: 25*24=600가지 (자신/중복 제외)

    2-4. Polyalphabetic cipher (中 Vigenere) (=다중 문자 치환 기법 (2))
    : (치환) 'Keyword'를 도입해 이를 통해 key를 select하여 치환이 이루어지게 하는 암호화 기법 
    → 가장 간단한 방식이 'Vigenere' 방식. 
    → Vigenere Cipher 방식 :
       (1) Vigenere table 사용 (대중화 된 table 有)
       (2) 임의의 Keyword 설정
       (3) 해당 Keyword를 평문의 길이에 맞게 반복하여 1:1 짝 지어줌.
       (4) 과정 (3)에서 짝지어준 pair들을 순서대로 table에서 찾아 암호화.

    2-5. Transposition Technique (= Permutation Technique) 
    : (전치) 평문의 문자들의 위치를 재배치, 즉 전치하여 암호화하는 기법
    → 가장 대표적 방식으로  'Rail Fence'와 'Row Transposition' 방식이 존재. 
    → Rail Fence Cipher 방식
       : 평문을 지그재그↝로 작성후 윗 문자열 후에 아랫 문자열을 붙여 작성하는 암호화 기법.
    → Row Transposition Cipher 방식
       (1) Key 설정 : 1부터 n까지 숫자들을 임의의 순서로 배치.
       (2) 평문 배치 : Key의 갯수에 맞게 밑에 나열하여 배치. (단, 부족할 경우 빈공간에 dummy로 채움)
       (3) 암호화 : 배치한 평문들을 Key의 열로 나누어 오름차순 순서로 작성.

    2-6. Rotor Machines 
    : 회전자를 이용하여 rotate된 수를 사용해 암호화하는 기법
    → Ex. 독일군의 애니그마(Enigma) 머신

👉 비록 고전 암호기법들은 사용되기 약하나 핵심내용인 '치환'과 '전치'의 개념들은
     발전된 현대의 암호화 기법에서도 사용되는 주요 개념들이다! 따라서 뿌리부터 알고 가자. 😃

 

 

728x90