고전, 근대, 현대 암호

2024. 12. 15. 13:09·Hacking/Cryptography
728x90
반응형

정보 보안이라는 학문은 데이터를 보호하기 위한 기술이다. 

이 기술 중에 가장 기본이 되는 것이 암호이다.

 

암호화 : 원래 메세지를 알아볼 수 없는 문자로 만드는 것

복호화 : 암호문을 원래의 문자로 바꾸는 과정

 

똑같은 키가 암호화/복호화에 사용되는 경우 : 대칭키 시스템

다른 키가 암호화/복호화에 사용되는 경우 : 비대칭키 시스템 ex) 공개키 암호 시스템 

 

암호의 발전사

최초의 암호 : BC 480년에 스파르타에서 추방되어 페르시아에 살던 데마라토스가 페르시아의 침략 게획 소식을 나무판에 조각하여 적은 후, 밀납을 발라 스파르타에 보낸 것

-> 정보 은닉(스테가노그래피)

 

* 암호와 스테가노그래피의 차이

암호 : 원문이 있다면 아예 다른 형태로 만드는 것

스테가노그래피 : 정보 자체를 숨기는 것 (어떤 정보가 숨겨져있는지 모르는 것) 

고전 암호의 분류 ( Dreamhack Cryptography> 고전암호 )

치환 : 평문의 문자를 다른 문자로 바꾸는 것

전치 : 평문의 문자들의 위치를 바꾸는 것

전치법

  • 단순히 메시지에 있는 문자의 위치를 바꾸는 방법
  • BC 400년에 스파르타 사람이 군사용으로 사용하던 암호화 방식
  • 일정 굵기의 봉에 종이를 두름
  • 종이에 전달하고자 하는 문장을 쓴 뒤 종이를 풀어 다른 부대에 전달, 이때 봉의 굵기를 함께 알려줌
  • 같은 굵기의 봉에 두른 후 암호문을 해석할 수 있음

 

  • 암호화 알고리즘 : 종이를 봉에 두르는 것
  • 키 : 봉의 굵기

대체법 (치환법)

  • 해당 글자를 다른 글자로 대체
  • BC 50, 로마 줄리어스 시저 사용

시저의 암호화 방법

  • 알파벳 26글자를 3자 또는 4자씩 오른쪽 이동
  • 해당되는 글자로 변환시켜 암호화

알파벳을 3글자씩 오른쪽으로 이동시킨 예

 

모노알파베틱 | 단일 치환 기법

  • 알파벳 26자를 각각 다른 알파벳에 대응
  • 규칙 없이 임의의 문자에 임의의 알파벳을 대칭
  • Key Space (키 공간) : 암호학에서 가능한 모든 키의 집합 > 시저 암호의 키 공간 크기 : 26
  • 암호문의 경우의 수 : 26! -> a는 26가지, b는 25가지 ... 
  • 암호문 깨는 법 : 간단한 키워드나 키프레이즈(keyphrase)를 이용

\(E_n(x) = (x+n)mod26\)

\(D_n(x) = (x-n)mod26\)

 

모노알파베틱의 예) ASSASSINATOR라는 키워드의 대칭표

  • 키워드에서 중복된 알파벳을 제거 -> ASINTOR : 암복호화 key가 된다
  • 이 단어를 앞에 놓고 (1)
  • ASINTOR의 마지막 알파벳 R부터 Z까지 뒤에 배치 (단, 앞에 나온 알파벳 제외) (2)
  • 다시 A부터 시작해 중복된 알파켓을 제외하고 배치 (3

 

빈도수 분석법

단일 치환 암호법은 키워드를 몰라도 복호화가 가능

9세기에 일 킨디라는 아랍의 학자가 기술한 책에 기록

 

빈도 분석법 이용

알파벳별 빈도수

  • 알파벳의 26글자가 문장에서 통계적으로 비슷한 빈도수를 가진다는 점에서 착안
  • 평문에 등장하는 문자의 빈도와 암호문에 나오는 문자의 빈도가 일치하는 것을 이용

 

비즈네르 암호화 | 다중 문자 치환 기법

  • 하나의 문자가 여러 개의 다른 문자로 대체
  • a가 b에 대응될 수도 있고 c에도 대응 가능
  •  다중 치환을 이용하여 문자의 발생 빈도를 균일화 -> 빈도분석법 해결

비즈네르 암호표

\(C_i = D_k(M_i) = (M_i+K_i) mod 26\)

\(M_i = D_k(C_i) = (C_i +K_i) mod 26\)

 

 

비즈네르 암호화의 예 )

평문 : wish to be free from my self

key : secret is beautiful

비즈네르 표를 이용해 암호화

단순한 빈도 분석법으로는 깰 수 없음

19세기에 찰스 뱁지에 의해 분석됨

 

전치 암호

평문을 구성하는 문자들의 순서를 재배열하여 암호문을 만듦

  • 평문을 정해진 길이의 블럭으로 나눔
  • 규칙을 적용하여 블록 안의 문자들을 재배치
  • ex) 스키테일 암호

전치 암호 ( Dreamhack Cryptography> 고전암호 )

근대 암호화

19세기 말 찰스 배비지가 비즈네로 암호화 방식의 복호화 방법을 알아냄

마르코니가 무선 통신 발명 : 통신 내용을 보호할 수 없는 상태에서 그 용도가 제한적

몇가지 암호 알고리즘이 개발되었으나 모두 복호화됨 ex) 애니그마

 

현대 암호

이론 배경

  • 정수론, 대수학, 복잡도 이론, 확률론
  • 정보 이론, 양자 이론 등

암호 알고리즘

  • 대칭키 암호 알고리즘 (Symmetric Key Encryption / Decryption) : DES, 3DES, AES, SEED 등
  • 공개키 암호 알고리즘 (Public Key Encryption / Decryption) : RSA, ElGamal, Knapsack 등
  • 암호학적 해쉬 및 메시지 인증 코드 (Message Authentication Code) : SHA-1, MD5 등
  • 슈도 난수 생성 (Pseudo Random Number Generation)
  • 타원 곡선 암호 (Elliptic Curve Cryptosystem)
  • ID 기반 암호 시스템 (ID-based Cryposystem)

 

암호 프로토콜 (Cryptographic Protocols)

암호의 목적은 데이터를 숨기는 것, 정보를 모르게 하는 것이다 -> 정보의 기밀성 제공

현대 암호에서 정보의 기밀성을 제공해주는 것이 암호 알고리즘이다. 

암호 알고리즘이라는 것은 암호화와 복호화 두 가지의 알고리즘을 가지고 있는 것을 의미한다.

 

1900년대에 컴퓨터가 보급이 되면서 컴퓨터 서비스가 많아지게 된다.

이 암호 기술이 응용이 되어 특수한 보안 기능 및 목적을 제공하도록 만들어지는 것을 암호 프로토콜이라고 한다

  • Key exchange and maintenance (키 분배 / 키 교환 프로토콜) : 안전하게 키 분배를 할 수 있도록 하는 것
  • Digital Signature - RSA, ElGamal, DSA : 작성한 디지털 문서에 서명을 제공하는 것
  • Special Digital Signature - Blind signature, group signature, proxy signature
  • Identification protocol, authentication protocol
  • Secure multipary computation
  • Interactive protocol, Zero-knowledge interactive protocol(ZKIP)
  • Zero-knowledge proof(영지식 증명) : 내가 알고 있는 정보를 노출시키지 않으면서 내가 알고있음을 증명하는 것
  • Secret Sharing (비밀 분산법) : 비밀 정보를 쪼개서 노출시킴
  • e-Payment, e-Voting, e-Contract

 

특징

  • 데이터 기밀성 : 안전하지 않은 통신 채널을 이용하여 암호 알고리즘으로 양자간 안전한 데이터 전송
  • 사용자 인증 : 송신자가 직접 생성한 데이터인지 -> 전자 서명
  • 데이터 무결성 인증 : 통신 중간에 데이터가 위변조 되지 않았는지 -> 암호학적 해쉬
  • 영지식 증명 등
  • 정수론에 기반 됨
  • 암호의 안전성이 NP-hard 문제의 어려움에 기반 -> 이산 대수 문제, 소인수분해 문제

 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'Hacking > Cryptography' 카테고리의 다른 글

[비대칭키 암호 시스템] RSA  (0) 2024.12.15
[비대칭키 암호 시스템] Elgamal Encryption  (1) 2024.12.15
[공개키 암호 시스템] 정수론  (0) 2024.12.15
[대칭키 암호 시스템] DES  (0) 2024.12.15
[블록 암호] 운영모드  (1) 2024.02.12
'Hacking/Cryptography' 카테고리의 다른 글
  • [비대칭키 암호 시스템] Elgamal Encryption
  • [공개키 암호 시스템] 정수론
  • [대칭키 암호 시스템] DES
  • [블록 암호] 운영모드
min_zu
min_zu
  • min_zu
    민주제도
    min_zu
  • 전체
    오늘
    어제
    • ._. (176)
      • AI (2)
        • DeepLearning (2)
        • CS231n (0)
      • Web (2)
        • ReactJS (0)
      • CS (83)
        • OS (7)
        • Data Structure (23)
        • Computer Architecture (8)
        • Computer Network (20)
        • Algorithm (25)
      • Linux (3)
        • KaliLinux (0)
        • Docker (1)
      • Hacking (83)
        • Write Up (25)
        • Pwnable (13)
        • Reversing (2)
        • Cryptography (12)
        • Web Hacking (4)
        • Window (6)
        • Network (7)
        • Web3 (13)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Search
    AI
    DataStructure
    ComputerArchitecture
    DeepLearning
    Tree
    WinAFL
    Linux
    Mac
    UTM
    OS
    Web
    Graph
    Sort
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
min_zu
고전, 근대, 현대 암호
상단으로

티스토리툴바