[Cryptography] 대칭키 암호

이민기·2022년 4월 22일
0

BlockChain & Cryptography

목록 보기
2/12
post-thumbnail
post-custom-banner

Symmetric Key (대칭키) 암호

암호화와 복호화를 하기 위해 사용되는 키가 동일한 경우

𖤐 대칭키 알고리즘

평문 (P) : PlainText, 암호문 (C) : CipherText , (K) : Key,
암호화 알고리즘 (E) : Encryption Algorithm , 복호화 알고리즘 (D) : Decryption Algorithm

  • C = E⒦( P )
  • P = D⒦( C )
  • 송신자 : E⒦( P )
  • 수신자 : D⒦( C ) = D⒦( E⒦ ( P ) ) = P

𖤐 Kerckhoff의 원리

암호화에서 암호화 알고리즘의 안전성보다 키의 안전성이 더 중요하다

  • 공격자는 항상 암호화 알고리즘 ( E )와 복호화 알고리즘( D )은 알고리즘은 알고있다고 가정해야한다
  • 그러므로 안전성은 키의 안전성에 바탕을 둔다

암호 해독 공격

  • Brute-Force Attack (전수조사 공격) : 암호문을 가로챈 후 모든 가능한 키를 사용하여 복호화 한 후 평문 획득
  • Statistical Attack (통계적인 공격) : 평문언어의 고유한 특징들 을 이용하여 복호화한다 예를 들어 영어에서 제일 빈번하게 나오는 단어는 E이며 암호문 역시 가장 빈번하게 나오는 단어를 E라고 가정하고 복호화 한다
  • Pattern Attack (패턴 공격) : 암호문에서 존재하는 패턴을 연구해 복호화

대치 암호

어떠한 기호를 다른 기호로 대체하는 암호종류

  • Monoalphabetic ciphers (단일문자 암호) : 평문의 기호와 대응하는 암호문 기호는 항상 1:1 대응관계
  • Polyalphabetic ciphers (다중문자 암호) : 평문의 기호와 대응하는 암호문 기호는 1:M 대응관계

📍 단일 문자 암호

Additive Cipher (덧셈 암호)

가장 기본적인 암호이며 알파벳을 기준으로 평문과 암호문의 키는 Z26의 원소가 된다

C(암호문) = (P + k) mod 26
P(평문) = (C - k) mod 26

Multiplicative Cipher (곱셈 암호)

키는 평문과 암호문이 해당하는 Z26의 원소에서 역원이 존재하는 원소

C(암호문) = ( P * k ) mod 26
P(평문) = (C * k^-1) mod 26

Affine Cipher (아핀 암호)

덧셈 암호와 곱셈 암호를 결합하여 두개의 키를 사용한 암호

📍 다중 문자 암호

Autokey Cipher (자동키 암호)

첫 번째 키를 미리 정의한 후 나머지 키는 평문의 문자를 이용해서 암호화하는 방식

Playfair Cipher (플레이페어 암호)

1차 세계대전에서 영국군이 사용한 암호 방식이며 5 * 5 행렬로 배열된 알파벳 문자로 이루어진 비밀키를 기준으로 규칙을 정해


전치 암호

기호를 다른 기호로 변경하는 것이 아닌 재 정렬시켜 암호화하는 방식

📍 Keyless Transpostion ciphers (키가 없는 전치 암호)

Rail fence 암호

평문을 합의한 열의 개수를 기준으로 단어를 재조합하는 방법

  • ☼ 열 2개로 암호화
    Hello World => HLOOL , ELLWRD

📍 Keyed Transpostion ciphers (키가 있는 전치 암호)

사전에 합의된 크기로 평문을 블록 단위로 나눈 뒤 각각의 블록에 키를 대입하여 재배치하는 방법

  • ☼ 2개로 암호화
  • 21
    12
  • Hello World => EH,LL, WO , RO, DL

𖤐 AES (Advanced Encryption Standard)

2001년 NIST(미국 국립기술 표준원)에서 공표한 대칭키 암호 알고리즘이며 높은 안정성과 속도로 전 세계적으로 많이 이용하고 있으며 암호화 키의 길이에 따라 AES-128, AES-192, AES-256로 나뉜다

profile
블로그를 옮기는 중입니다. https://min71.dev
post-custom-banner

0개의 댓글