현대 암호학 42

[현대 암호학] 04-2. 일회용 패드 - 절대 해독 불가능한 암호

2. 일회용 패드 - 절대 해독 불가능한 암호 일회용 패드란(One-Time Pad) 1회용 패드 전사공격에서 키공간을 모두 탐색하더라도 해독할 수 없는 암호 해킹이 불가능한 일회용 암호 일회용 암호를 반복적으로 사용할 때 비즈네르(Vigenere) 암호와의 연관성-> 따라서, 반복적으로 사용하면 안된다. 일회용 패드의 암호화 평문과 랜덤한 비트열과의 XOR만을 취하는 단순한 암호 다음과 같은 조건을 갖는 일해용 암호(One time pad)를 사용하면 암호를 해킹 할 수 없다. 일회용 암호는 하나, 암호화된 메시지와 정확하게 길이가 같아야 한다. 둘, 임의의 심볼로 구성되어야 한다. 셋, 한번 사용한 후에는 어떠한 메시지에서도 다시 사용해서는 안된다. 일회용 패드는 해독할 수 없다. 현실적인 시간 내에..

현대 암호학 2021.06.22

[현대 암호학] 04. 대칭(Symmetric) 암호 -1. 문자 암호에서 비트열 암호로

현대 암호학 * 대칭키 암호 - 블록 암호 - 스트림 암호 * 비대칭키 암호 - 공개키 암호 - 공개키 서명 * 해시 암호 1. 문자 암호에서 비트열 암호로 1) 부호화 고전암호 => 문자 암호 방식(ex: 'A' -> 'T') 현대암호 => 비트열 암호 방식(ex: 0x41 + 연산 = 0x75) 암호화에 컴퓨터 사용이 필수 암호화 프로그램도 평문을 비트열로 변경하고 비트열(byte string)로 된 암호문을 출력 부호화(encoding) 문자열(string)을 비트열(bit string, byte string)로 바꾸는 것 ASCII(American Standard Code for Information Interchange) https://ko.wikipedia.org/wiki/ASCII ASCII..

현대 암호학 2021.06.22

[현대 암호학] 03. 실습(3)

[실습] 영어 문장 감지 프로그램 분석하기 메시지 문자열이 영어인지 알아내는 한가지 방법은 각 공백마다 메시지를 작은 문자열로 나누고, 각 하위 문자열이 사전에 있는 단어인지 확인하는 것이다. 메시지의 하위 문자열이 사전 파일에 있는지 확인하는 is_english() 함수를 작성한다. detectEnglish.py ###!/usr/bin/python3 # # 영어 감지 모듈 # # (0) 준비 : dictionary.txt (45,000 단어 이상이 포함된 사전파일이다.) # (1) 입력 : message # (2) 출력 : True|False (영어인지 확인) # (3) 기능 : # * 문자열을 입력 받고, 영어인지 확인(사전 파일에 존재하면)하여 맞으면 True, 틀리면 False return # *..

현대 암호학 2021.06.22

[현대 암호학] 03. 실습(2)

[실습] 전치 암호(Transposition Cipher) 단순 전치 암호 = 주상 전치 암호 = 열 방향 전치 암호 주상 전치 암호(열 방향 전치 암호, 단순 전치 암호) 만들기 전치 암호의 종류들 단순 전치 암호 레일 펜스(Rail Fence) 경로(Route) 암호 가로장 암호 미즈코우스키(Myszkowski) 전치 암호 분할된 전치 암호 기타 간단한 전치 암호 중 하나인 "열 방향(columnar) 전치 암호"에 대한 프로그램을 만들어 보자. (예) 주상 전치 암호 - 암호화 평문 : "Common sense is not so common." : 30글자 키 : 8 암호문 : "Cenoonommstmme oo snnio. s s c" : 30글자 transpositionEncrypt.py # 주상..

현대 암호학 2021.06.22

[현대 암호학] 03. 실습(1)

[실습] 시저암호(Caesar Cipher) 만들기 # 카이사르 암호화/복호화 - 1st version # # (1) 입력 : messages (Input: This is my secret plaintext.) # (2) 출력 : translated (Ouput: guv6Jv6Jz! J6rp5r7Jzr66ntrM) # (3) 기능 : # * plaintext : This is my secret plaintext. # * 암호화/복호화 키 : 13 # * mode : encrypt | decrypt # * symbols : 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 !?.' C = (P + K) % 26 P = (P - K) % 26 ..

현대 암호학 2021.06.21

[현대 암호학] 03-4. 전치 암호와 치환 암호

전치(Tranposition) 암호 ⊂ 치환(Substitution) 암호 1. 전치 암호 전치 암호(Transposition Cipher) 전치란 평문에서 사용하는 문자의 집합과 암호문에서 사용하는 문자의 집합이 동일 문자집합 내부에서 "자리를 바꾸는 규칙" 평문에 사용된 문자와 암호문에 사용된 문자가 일대일 대응 규칙 전치 암호의 종류들 예 단순 전치 암호 레일 펜스(Rail Fence) 경로(Route) 암호 가로장 암호 미즈코우스키(Myszkowski) 전치 암호 분할된 전치 암호 2. 치환 암호 치환 암호(Substitution Cipher) 치환 암호의 엄밀한 의미는 평문에서 사용하는 문자의 집합과 암호문에서 사용하는 집합이 다를 수 있다. 평문 문자를 다른 문자로 "교환하는 규칙" 교환 규칙..

현대 암호학 2021.06.21

[현대 암호학] 03-2. 단일 치환 암호

2. 단일 치환 암호 단일 치환 암호(Simple Substitution Cipher) 평문을 구성하는 알파벳을 다른 알파벳으로 변환하는 암호 단일 치환 암호의 암호화 단일 치환 표(암호화 테이블) 단일 치환 암호의 암호화 예 평문 : kabsoonyee 암호문: SWYLBBNKXX 단일 치환 암호의 단점 평문에 등장하는 문자의 빈도가 암호문으로 바뀐 뒤에도 암호문 내에서 동일한 빈도로 나타난다. 단일 치환 암호의 복호화 단일 치환 표(복호화 테이블) 치환표가 단일 치환 암호의 "키" 암호화 때에 사용한 치환표가 필요 송신자와 수신자는 치환표를 공유 단일 치환 암호의 키 공간 시저 암호는 전사 공격(Brute Force Attack)으로 해독 가능 단일 치환 암호는 전사 공격으로 해독이 어렵다. (단일 ..

현대 암호학 2021.06.18

[현대 암호학] 03. 암호의 역사(고전 암호학) - 1. 시저(Caesar) 암호

고전 암호학 versus 현대 암호학 고전 암호 치환(Substitution) & 전치(Trasposition) 치환(Substitution) 암호 = 대치 암호 전치(Transposition) 암호 = 전이식 암호 = 이동 암호 암호단위:(고전암호)문자, (현대암호)비트 1. 시저(Caesar) 암호 시저 암호(Caesar Chipher)란? 시저(Caesar) 암호 = 카이사르 암호 = 케사르 암호 더하기 암호(Shift Cipher, Additional Cipher) 단순 치환(대치식) 암호 = 단일 문자 치환(Monoalphabetic Cipher) 시저암호(Caesar Cipher) 줄리어스 시저(유리우스 케사르)가 사용하였다는 암호 평문으로 사용되는 알파벳을 일정한 문자수 만큼 "평행이동" 시..

현대 암호학 2021.06.18

[현대 암호학] 02. 암호의 세계(2)

8. 공격 유형과 공격 모델 1. 공격 유형 수동적 공격(암호문을 만드는데 사용한 비밀키를 찾아 내는 것) 도청 : 전송되는 메시지를 도중에 가로챈다. 트래픽분석 : 전송되는 메시지의 길이, 전달빈도 등을 관측해서 메시지의 특성을 파악하는 것 능동적 공격(의도적으로 메시지 내용을 조작) 메시지 변조 : 메시지의 순서를 바꾸거나 메시지의 일부분을 다른 메시지로 대체 메시지 삭제 : 서비스 거부 공격(DoS & DDoS) 위장 공격 : 불법적 침입자가 정당한 송신자로 가장해 메세지 보냄 재전송 공격 : 송수신자간의 도청 내용을 재생하여 다시 전송하는 것 2. 공격 모델 암호 공격 모델 암호문 단독 공격(Ciphertext-Only Attack) 알려진 평문 공격(Known-Plaintext Attack) 선..

현대 암호학 2021.06.18