본문 바로가기

23년 2학기 학교공부/컴퓨터네트워크

[CN] 암호의 기초 : 대칭키, 공개키

목차

    728x90
    반응형
    SMALL
    2023학년도 2학기 충남대학교 이영석 교수님의 컴퓨터네트워크 수업 정리자료입니다.

     

     

     

     

    📁 Cryptography(암호) 용어 정리

     

    • plaintext, m : 암호화 되지 않은 평서문
    • Ka : a가 가지고 있는 암호화 키
    • Kb : b가 가지고 있는 복호화 키
    • ciphertext : 암호화 된 데이터
    • Ka(m) : a가 가지고 있는 암호화 키를 가지고 plaintext m을 암호화한다는 것을 함수처럼 표현
    • Kb(Ka(m)) : Ka(m), 즉 ciphertext를 b의 키로 복호화하는 것을 함수처럼 표현

     

     

    일반적으로, 송신자가 plaintext를 자신의 key를 통해 암호화하여 수신자에게 전송하면 수신자는 자신의 key를 이용해 복호화하여 메세지를 확인하는 방식으로 메세지가 전달된다.

     

    이 과정에서 공격자가 암호화된 메시지를 분석하려고 시도할 수 있다. 암호 통신 과정에서 정식 참여자가 아닌 제 3자가 암호문으로부터 평문을 찾으려는 시도를 암호 해독(Cryptanalysis)이라고 부르며, 암호 해독을 위한 공격 유형에는 암호문 단독 공격, 알려진 평문 공격, 선택 평문 공격 등이 있다.

     

     

    1. Cipher-text Only Attack(암호문 단독 공격)

    상대방에 대한 정보가 없는 상태에서 오로지 암호문만 가지고 평문이나 키값을 찾아내는 방법으로, 두가지 접근 방법이 있다.

     

    1) brute force : 공격자가 암호문 알고리즘을 알 수 있는 경우에 사용한다.

    2) statistical analysis : 통계치를 사용한다.

     

     

    2. Known-plaintext Attack(알려진 평문 공격)

    공격자가 평문 일부와 그에 대응하는 암호문을 일부 알고있는 상태에서 평문을 알아내는 방법이다.

     

     

    3. Chosen-plaintext Attack(선택 평문 공격)

    공격자가 선택한 평문에 대한 암호문을 구할 수 있는 상태로 전체 암호문을 해독하는 공격이다. 즉 공격자는 key와 암호 알고리즘 등의 정보는 없지만, 평문에 대해 encryption된 결과를 알 수 있는 상황이다.

     

     

     

     

    🌱 암호 알고리즘

    대칭키 암호화(Symmetric key cryptography)

    대칭키 암호 알고리즘은 암호화 알고리즘의 한 종류로, 암호화와 복호화에 같은 키를 사용하는 알고리즘을 말한다.

     

    위 사진에서 암호화와 복호와에 Ks라는 서로 같은 키를 사용하고 있다.

     

     

     

    simple encryption scheme

    substitution cipher(치환 암호)

    가장 간단히 암호화할 수 있는 방법으로, 어떤 것을 다른것으로 치환하여 암호화하는 방법이다.

    이 중 대표적으로 하나의 알파벳을 다른 알파벳으로 치환시키는 방법인 monoalphabetic cipher가 있다.

     

    위 사진에서 모든 b가 n으로, 모든 i가 s로 변환되고 있다. 각 알파벳을 다른 알파벳으로 바꾸는 경우이므로 26! 개의 경우의수가 있다.

     

     

     

    🌱 데이터 암호화 표준(Data Encryption Standard, DES)

    cipher block chaning과 함께 블록 암호의 일종으로, 64비트의 평문을 64비트의 암호문으로 바꾸는 기법이다. 암호키가 총 64비트인데, 이 중 parity bit로 사용되는 8비트를 제외한 56비트의 대칭키(암호키)를 사용한다.

     

     

    🌱 고급 암호화 표준(Advanced Encryption Standard, AES)

    DES가 개선된 버전이다. 

     

     

     

    📁 공개키 암호화(Public Key Cryptography)

    대칭키 암호화 방식을 사용할 때, 두 사용자가 어떤 대칭키를 사용할 것인지 정해지지 않은 경우를 해결하기 위해 공개키 암호화 방식이 제안되었다.

     

    공개키 암호화 알고리즘이란 암호화 복호화에 다른 키를 사용하는 알고리즘을 말한다. 대칭키 암호 방식과 비교하여 비대칭 암호라고 부르기도 한다.

     

    각 사용자는 공개키와 개인키를 가지고 있으며, 키를 서로 공유하지 않는다. 공개키는 다른 사용자가 알 수 있지만, 개인키는 본인만 알아야 한다.

     

    송신자가 수신자의 공개키를 이용하여 데이터를 암호화한 뒤 전송하면, 수신자는 본인의 개인키로 복호화한다.

     

     

    이때 공개키 암호 알고리즘에서 중요한 요구사항 두가지가 있다.

     

    1. 공개키로 암호화한 것은 개인키로 복호화할 수 있어야 한다.

    2. 공개키로 개인키를 도출해낼 수 없어야한다.

     

     

    공개키 알고리즘은 대칭키 알고리즘보다 느리다는 단점이 있다.

     

     

     

     

     

    🌱 RSA(Rivest, Shamir, Adelson Algorithm)

     

    RSA란 공개키와 개인키 두 키를 사용한다. 일반적으로 공개키는 암호화, 개인키는 복호화에 사용한다.

     

    공개키를 암호화 키로, 개인키를 복호화 키로 사용하든, 개인키를 암호화 키로, 공개키를 복호화 키로 사용하든 정상적으로 복호화가 가능하며 그 결과 원래의 평문 plaintext m을 얻을 수가 있다는 성질을 지닌다.

     

     

    • 어떤 소수 2개 p, q를 선택한다.
    • n = pq, z = (p-1)(q-1) 로 정의한다.
    • z와 서로소인 e를 선택한다.
    • ed % z = 1인 d를 선택한다.

    공개키를 (n, e), 개인키를 (n, d) 로 사용한다.

    이 알고리즘은 두 소수를 곱해서 어떤 큰 수를 만들기는 쉽지만, 반대로 어떤 큰 수가 어떤 소수의 곱으로 이루어져 있는지는 알기 어렵다 라는 원리에 기반한다.

     

     

     

     

    예시를 들어보자.

     

     

     

     

     

     

    더보기

    참고

    https://www.nowwatersblog.com/cs/%EC%BB%B4%ED%93%A8%ED%84%B0%EB%A7%9D/8.%20Security

     

    만렙 개발자 키우기

    개발 경험치를 쌓아가며 성장하는 개발자의 기록 일지입니다.

    www.nowwatersblog.com

    https://velog.io/@dltmdrl1244/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-8-1.-Cryptography

     

    [네트워크] 8-1. Cryptography

    [네트워크] 8-1. Cryptography

    velog.io

    https://swingswing.tistory.com/300

     

    암호 해독을 위한 공격 유형_암호문 단독, 알려진 평문, 선택 평문, 선택 암호문, 스트림 암호화

    ▣ 암호 해독을 위한 공격 유형_암호문 단독, 알려진 평문, 선택 평문, 선택 암호문 암호문 단독 공격 (ciphertext only) 상대방에 대한 정보가 전혀 없는 상태에서 암호문만으로 평문과 암호키를 알

    swingswing.tistory.com

    https://swsd18.tistory.com/31

     

    8. Security

    네트워크 보안이란 무엇인가? 아래 4가지가 보장이 되어야 네트워크 보안이라고 할 수 있다. confidentiality : sender-encrypts(암호화), receiver-decrypts(암호 해독), 일종의 readability, 제 3자는 읽을 수 없어

    swsd18.tistory.com

    https://johyungen.tistory.com/389

     

    암호 공격(암호문 단독, 알려진 평문, 선택 평문, 선택 암호문)

    1. 암호문 단독 공격 (Ciphertext-Only Attack) 공격자가 암호문만 가지고 있는 상황에서 공격하는 유형, 공격자는 암호문 이외의 어떤 정보도 가지고 있지 않기 때문에 공격자 입장에서 가장 어려운 공

    johyungen.tistory.com

    https://ddongwon.tistory.com/26

     

    암호란 무엇인가? (암호의 원리와 공격유형)

    1. 암호의 원리 암호를 사용한 과정으로는 크게 암호화(Encryption)과 복호화(Decryption)을 생각해볼 수 있다. 암호화(Encryption)란 본래의 메시지 내용을 인코딩하여 그 의미를 없애는 과정이고 복호화(

    ddongwon.tistory.com

    https://retro-blue.tistory.com/38

     

    대칭키 암호 시스템

    ■ 대칭키 암호 (Symmetric Cryptography) - 대칭키 암호는 암호화할 때 사용하는 키와 복호화할 때 사용하는 키가 동일한 암호 알고리즘 방식 - 송신자가 키를 통하여 평문을 암호화하여 암호문을 보내

    retro-blue.tistory.com

     

     

    728x90
    반응형
    LIST