현대 암호학 기초 14

[ 암호학 ] 일방향 해시 함수

CIA ? : 기밀성, 무결성, 가용성 (Confidentiality / Intergrity / Availability) 무결성? : 파일이 변경되지 않았다. (밤새 맬로리가 파일을 변경했는지 어떤지를 조사하고 싶으면 어제 저장한 파일을 안전한 곳에 저장하고 오늘 불러온 파일과 동일한지 비교하면 된다.) 문제점 : 안전한 곳이 과연 있을까? 파일 전체가 너무 크면 검사가 불가 => 파일의 “지문”(해시) 이 필요 **파일의 단 한글자만 바뀌어도 해시값은 변한다. > 파일을 해시함수에 넣으면 해시가 나온다. > 어제 만든 파일을 해시함수에 넣어 해시를 추출, 오늘의 파일의 해시와 비교! > P/W도 직접 암호화하는 것이 아니라 해시값을 사용하여 /etc/~~~에 저장한다. 실습 : [ 파일의 해시 값 확인..

[ 암호학 ] 공개키 암호 Q & A

공개 키 암호의 기밀성 의문 : 공개 키 암호는 대칭 암호보다도 기밀성이 높은가? 답 : 이것만으로는 답할 수 X. 키의 비트 길이에 따라 기밀성의 정도가 변화하기 때문. 공개 키 암호와 대칭 암호의 키 길이 의문 : 1024비트 길이의 키를 갖는 공개 키 암호와 128비트 길이의 키를 갖는 대칭 암호 중 어느 쪽이 안전한가? 답 : 공개 키 암호와 대칭 암호의 키 길이는 비교 불가하다. 대칭 암호의 미래 의문 : 공개 키 암호가 생겼기 때문에 대칭 암호가 필요가 없다? 답 : 아니다. 목적에 따라 다름. 공개 키 암호는 느리고, 긴 메시지가 불가하기 때문. RSA와 소수 의문 : RSA의 키 쌍을 모두가 만들면 소수가 모자라지 않을까? 답 : 512비트는 10의150승 말도 안되게 많다. 소수가 모자랄..

[ 암호학 ] 공개 키 암호_3 (RSA)

1) N을 구한다 (작으면X) 큰 소수 2개(p,q)를 준비, N = p*q (ex.2,3,5,7,11,13, ...) 의사난수 생성기로 p와 q를 구한다 2) L을 구한다 (L은 키 쌍을 생성할 때만 등장하는 수이다) L은 RSA의 암/복호화에 사용X, 키 쌍을 만들 때 임시로 사용 L = lcm(p-1, q-1) (L은 p-1과 q-1의 최소공배수) 3) E를 구한다 1 gcd(E,L) = 1이 되는 수 E를 선택. 예시로 5 선택 5) D 구하기 => E*D mod L = 5 * 29 mod 144 = 145 mod 144=1 D=29 ==>> 공개 키 : (E, N) = (55, 323) / 개인 키 : (D, N) = (29, 323) 암호화 평문은 N=323보다 ..

[ 암호학 ] 공개 키 암호_2 (RSA)

공개키 암호 RSA 알고리즘 > RSA란 무엇인가? : 공개 키 암호 알고리즘 중 하나. > RSA의 어원 : Rivest, Shamir, Adleman이 공개 키 암호 알고리즘인 RSA를 발표. > 공개키를 사용한 메시지 전송 : 밥(Bob)의 공개키와 개인키 (둘은 한 쌍이다.) > RSA의 응용 : 공개 키 암호 / 디지털 서명 / 키 교환 RSA 실습 ( 실습 환경 : 우분투(Ubuntu) ) 1) 1024 Bit의 개인키 만들기. openssl 명령어로 1024비트의 개인키를 생성한다. 2) 개인키로부터 공개키를 만든다. (개인키와 공개키는 한 쌍이기 때문) 3) cat 명령어로 privatekey.pem 개인키를 확인한다. (일반 텍스트 파일로 만들어져 있는 것을 확인 가능) 4) cat 명령..

[ 암호학 ] 공개 키 암호

키 배송 문제란? > 대칭 암호를 사용하려면 송신자와 수신자가 대칭 키를 사전에 공유해야 하는 문제. (대칭 키를 보내지 않으면 밥(Bob)은 복호화를 할 수 없다.) 안전하게 키를 보내는 방법 1) 키의 사전 공유에 의한 해결 2) 키 배포 센터(KDC)에 의한 해결 3) 공개키 암호에 의한 해결 4) Diffie-Hellman 키 교환 1. 키의 사전공유 > 안전한 방법으로 키를 사전에 건네주는 것 > 직접 전달은 안전 > 이메일/일반메일은 위험 > 인원이 많아지면 관리해야 할 키 수 증가 2. 키 배포 센터(KDC) > 앨리스가 KDC에게 (세션)키를 요청하면 KDC는 앨리스와 밥에게 (세션)키를 배포한다. 이 키를 사용하여 암/복호화를 수행한다. 2-1. 키 배포 센터의 문제점 > 구성원 수 증가..

[ 암호학 ] 블록 암호 모드

블록 암호와 스트림 암호 > 블록 암호 : 어느 특정 비트 수 집합을 한 번에 처리하는 알고리즘. (이 집합이 바로 "블록") > 블록의 비트 수가 바로 블록의 길이이다. 모드란? > 긴 평문을 블록으로 나누어 암호화 > 각 블록에 암호 알고리즘을 반복해서 사용하여 긴 평문 전체 암호화. 스트림 암호란? > 데이터의 흐름(스트림)을 순차적으로 처리하는 암호 알고리즘 > 1Bit, 8Bit, 32Bit 등의 단위로 암호화 및 복호화 > DES나 트리플DES의 블록 길이는 64비트 > DES : 64비트 평문, 64비트 암호문 > AES : 블록 길이는 128비트 블록 암호 주요 모드 ECB : Electric CodeBook mode (전자 부호표 모드) CBC : Cipher Block Chaining ..

[ 암호학 ] AES란?

AES란? > AES는 DES를 대신한 새로운 표준 대칭 암호 알고리즘 > AES의 후보 중 Rijndael (대칭 암호 알고리즘)이 선정되었다. AES 선정 과정 > NIST에서 공모 (경쟁 방식에 의한 표준화) > 조건 : 제한 없이 무료 이용, ANSI C와 JAVA에 의한 구현, 강도 평가, 설계 규격과 프로그램 공개 Rijndael? > Rijndael은 벨기에 연구자 Joan Daemen, Vincent Rijmen이 설계한 블록 암호 알고리즘이다. > 블록 길이는 128비트 > 키의 비트 길이는 128, 192, 256비트 > 복수의 라운드(10 ~ 14라운드)로 구성 > SPN 구조 > SubByte : 바이트 대체, 치환표 사용 InvSubByte > ShiftRows : 행 이동 (좌로..

[ 암호학 ] Triple DES란?

트리플(Triple) DES란? [ 암호학 ] 대칭 암호와 DES 포스팅에서 언급했던 DES는 "전사 공격(Brute Force Attack)"으로 현실적인 내 해독이 가능하므로 더 강한 블록 암호가 필요하다. 트리플 DES는 말 그대로, DES를 3단으로 겹친 것이다. 평문 => 암호화(K1사용) => 복호화(K2사용) => 암호화(K3사용) 트리플 DES에서의 복호화는 K1과 K2가 다른 키이므로 암호화나 마찬가지이다. K1, K2, K3를 모두 같은 키로 바꾸면 DES처럼 사용할 수 있다. DES와 트리플 DES의 차이점 > 키의 길이 > 서로 다른 키로 암호화-복호화-암호화

[ 암호학 ] 대칭 암호와 DES

부호화? Encoding. 문자열을 비트열로 바꾸는 것 ( != 복호화 ) XOR? eXclusive OR. 배타적 논리합. 그림도 마스크가 가능. 암호화, 복호화 순서와 매우 비슷하다. (평문 A를 키B로 암호화 => A㊉B(암호문) => 키B로 복호화 => A㊉B㊉B = A(평문) 일회용 패드? 전사 공격으로 키 공간을 모두 탐색해도 해독 불가. 평문과 랜덤한 비트열과의 XOR만을 취하는 단순한 암호지만, 복호화가 되어도 올바른 평문인지 알 수 없기 때문에 완전한 해독이 불가하다. 일회용 패드는 왜 사용되지 않았는가? > 키 배송 : 키의 길이 = 통신문의 길이. 키를 안전하게 보낼 수 있는 방법이 있었다면 평문도 안전 전송이 가능 > 키 보존 : 키를 안전하게 보관할 수 있는 방법이 있었다면 평문도..

[ 암호학 ] 암호의 역사

{ 시저 암호 } 1. 시저 암호란? : 줄리어스 시저(율리웃 케사르)가 사용하였다는 암호. 평문으로 사용되는 알파벳을 일정 문자 수만큼 평행이동(키) [실습 – 암∙복호화 문제 출제 가능] 2. 전사 공격에 의한 해독 Brute – Force Attack : 키가 될 수 있는 모든 키 후보들을 시도. (알파벳은 총 26문자이므로 암호화 키는 0부터25까지 총 26개이다? X) => 0은 암호화를 해도 평문이다. { 단일 치환 암호 } 1. 단일 치환 암호란 무엇인가? ∙ 단일 치환 암호 : 평문을 구성하는 알파벳을 다른 알파벳으로 변환하는 암호. (암호문이 길면 해독이 용이), (시저 암호도 단일 치환 암호이다) 2. 단일 치환 암호의 암호화 약점 : 평문 알파벳의 “빈도”가 나타남. => 빈도분석 3..