전체 글 117

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

[실습] ccrypt CMD 이용한 파일 암호화/복호화(AES) 사용 시스템 칼리리눅스(KaliLinux) ccrypt 명령어 기본 사용법 (암호화) # ccrypt file1.txt (# ccrypt -e file1.txt) file1.txt.cpt (확 인) # ccrypt -c file1.txt.cpt (복호화) # ccrypt -d file1.txt.cpt ① ccrypt 패키지 설치 # apt-get update (# apt update) # apt-cache search ccrypt (# apt list ccrypt, # apt search ccrypt) # apt-get -y install ccrypt (# apt -y install ccrypt) ② ccrypt 사용법 확인 ccrypt 명..

현대 암호학 2021.06.23

[현대 암호학] 04-6. AES - Rijindael

6. AES - Rijindael Rijndael 이란? 벨기에 연구자 Joan Daemen과 Vincent Rijmen이 설계한 블록 암호알고리즘 블록 길이 : 128비트 키의 비트 길이: 128비트(16 bytes), 192비트(24 bytes), 256비트(32 bytes) Rijndael 암호화/복호화 SPN 구조 = (혼돈)Confusion + (확산)Diffusion SPN 구조는 Substitution Layer와 Permutation Layer 이용하여 Confustion과 Diffusion을 만족시켜는 암호다. (http://reinliebe.tistory.com/76) SPN(Substitution-Permutation Network) 구조 - 복수의 라운드(round)로 구성(10~1..

현대 암호학 2021.06.22

[현대 암호학] 04-5. AES 선정 과정

5. AES 선정 과정 AES 란? AES(Advanced Encryption Standard) DES를 대신한 새로운 표준 대칭 암호 알고리즘 AES의 후보로서 다수의 대칭 암호 알고리즘을 제안했지만, 그중에서 Rijndael 이라는 대칭 암호 알고리즘이 2000년에 AES로서 선정 AES 선정 과정 NIST(National Institute of Standard and Technology)에서 공모 경쟁방식에 의한 표준화 제한 없이 무료로 이용 ANSI C와 Java에 의한 구현 암호해독에 대한 강도의 평가 암호 알고리즘 설계 규격과 프로그램 공개 AES 최종 후보 및 선정 1차 심사 통과: 15개 CAST256, Crypton, DEAL, DFC, E2, Frog, HPC, LOKI97, Magen..

현대 암호학 2021.06.22

[현대 암호학] 04-4. 트리플 DES

4. 트리플 DES란? Triple DES = TDES(T-DES) = 3DES = DES3 트리플 DES(Triple-DES) DES는 전사공격으로 현실적인 시간내에 해독 DES를 대신할 블록 암호가 필요 이를 위해 개발된 것이 트리플 DES DES보다 강력하도록 DES를 3단 겹치게 한 암호 알고리즘 트리플 DES(Triple-DES) 암호화 TDES * DES-EDE2 (E: Encryption, D: Decryption) * DES-EDE3 E: Encryption, D: Decryption 트리플 DES 종류 DES 모든 키에 같은 비트열을 사용 DES-EDE2 키1과 키3에 같은 키를 사용하고 키2에 다른 키를 사용 EDE는 암호화(Encryption) -> 복호화(Decryption) -> ..

현대 암호학 2021.06.22

[현대 암호학] 04-3. DES

3. DES 란? 대칭 암호 * 블록 암호 : DES/3DES, AES * 스트림 암호 비대칭 암호 * 공개키 암호 * 공개키 서명 해시 암호 DES(Data Encryption Standard)란? DES/3DES(TDES) => AES 1) 대칭/비대칭, 대칭키/비밀키 대칭(Symmetric) 암호 알고리즘 비대칭(Asymmetric) 암호 알고리즘 비공개키 암호 알고리즘 공개키 암호 알고리즘 대칭키(Symmetric Key) 비대칭키(Asymmetric Key) = 비밀키(Secret Key)/공유키 공개키(Public Key)/개인키(Private Key) DES 알고리즘은 암호문을 작성할 때 사용하는 암호키와 암호문을 해독할 때 사용하는 해독키가 같다. 따라서, 이 키는 절대로 외부에 유출되지 ..

현대 암호학 2021.06.22

[현대 암호학] 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