사전학습
암호(Cryptography) | 평문을 해독 불가능한 형태로 변환하며, 또는 암호화된 통신문을 해독 가능한 형태로 변환하기 위한 원리/수단/방법등을 취급하는 기술 또는 과학(미 FIPS) -평문을 보호화 하기 위한 암호화 알고리즘을 연구함 |
암호해독(Cryptanalysis) | 암호문을 해독하기위해 암호문(Cipher Text)을 연구함 |
평문(Plaintext) | 암호화가 안된 평범한 Data 또는 메세지 -이니셜은 M 혹은 P를 사용 |
암호문(Ciphertext) | 암호화된 형태의 Data 또는 메세지 |
암호화(Encryption) | 평문을 암호문으로 변환하는 과정 -이니셜은 E |
복호화(Decryption) | 암호문을 본래의 평문으로 복원하는 과정 -이니셜은 D |
암호화,복호화 키(Key) | 암호화, 복호화 과정에서 사용하는 키 |
암호 알고리즘(Cryptohraphic Algrithm) | 암호화와 복호화에 사용되는 수학정 함수이며, 각각의 알고리즘이 있음 |
암호 해독(Cryptanalysis) | 키를 갖지 않고 본래의 평문이나 키를 얻는 과정 |
대칭키(비밀키) 암호(Symmetric Cryptosystem) | 암호화 키와 복호화 키가 같으며 키 값이 송신자와 수신자가 비밀로 보관하여야 하기 때문에 비밀키 암호라고도 함 -암호화/복호화 키가 같은 암호라는 의미 특징 1. Key 사이즈 작음 2. 계산이 간단하고 속도가 빠름 3. Key 분배가 불편함 4. 관리해야할 키가 많고, 변화 빈도가 높음 5. 비밀키를 아는 사용자가 암호화 복호화가 가능 6. 난수 발생기, 해시함수에 사용 가능 |
비대칭키(공개키) 암호(Asymmetric Cryptosystem) | 암호화 복호화 키가 다른 암호 특징 1. Key 사이즈가 길어짐 2. 계산이 복잡하고 속도가 느림 3. Key 분배가 용이함(DH 키 공유) 4. Key 관리 부담이 적고 변화 빈도가 적음 5. 비밀키를 모르면 암호화만 가능 6. 전자 서명, 키 분배 등 응용 가능 |
블록암호(Block Ciher) | 평문을 일정한 블록 단위로 나누어서 각 블록마다 암호화 과정을 수행하여 고정된 크기의 블록 단위로 암호문을 얻는 방법 |
스트림 암호(Stream Cipher) | 평문과 같은 길이의 키 스트림을 생성하여 평문과 키 이진 수열을 비트단위로 배타적 논리함(Bitwise Exclusive OR) 이진 연산으로 결합하여 암호문을 얻는 방법 |
공개키 암호 | 암호화에 사용되는 키와 복호화에 사용되는 키가 서로 다른 암호시스템으로 비대칭키 암호라고도 함 |
혼합 암호 방식(Hybrid Cryptosystem)(???) | 공개키 암호를 사용한 키 분배를 통해 비밀키를 공유한 후 실제 데이터의 암호화와 복호화는 대칭키 암호를 사용하는 방식 키 분배 프로토콜 |
1. 암호학(Cryptology): 크립토스(비밀) + 로고스(학문,과학)
암호 기술 | |
암호화 기술 | 암호 프로토콜 기술 |
비밀키(대칭키)암호 알고리즘 -블록 암호 알고리즘 -스트림 암호 알고리즘 공개키(비대칭키) 암호 알고리즘 -RSA, ELGamal, ECC |
기본 암호 프로토콜 -개인 식별및 인증 -전자서명 발전된 암호 프로토콜 -전자화폐(비트코인), 전자 결재, 전자 선거 |
**암호는 정보보호 서비스등을 제공하는 기술(기밀성, 무결성, 인증)
-현대의 암호학은 학문의 범위가 넓어져, 비밀 통신과 관련된 다양한 문제와 해결방법에 대한 분야이다.
가. 암호시스템(Cryptosystem)
-암호화 및 복호화 과정 그리고 이때 사용되는 암호화, 복호화 키와 관리등을 포함해 정보보호를 위한 일련의 과정(프로세스)
1)암호화 순서
평문(M(Plaintext))-> 암호화(Encryption) -> 암호문(C) -> 복호화(Decryption) -> 평문(M(Plaintext))
2)암호 시스템 설계 요건
-암호화 키에 의하여 암호화 및 복호화가 효과적으로 이루어져야 함
-사용이 용이하여야 함
-공개되어야 함
-암호화 안전성은 키에만 의존함
3)암호 방식
키에 따른 분류
암호화키 = 복호화키 | 암호화키 ≠ 복호화키 |
관용키(Conventional) | 비관용키(Nonconventional) |
비밀키(Secret Key) | 공개키(Public Key) |
대칭키(Symmetric Key) | 비대칭키(Asymmetric Key) |
DES, SKPJACK, IDEA, AES | RSA, ELGamal, ECC |
4) 암호의 역사
최초의 암호
-BC 480년경 스파르타에서 추방되어 페르시아에 살던 데마라토스 : 페르시아의 침략 계획소식을 나무판에 조각하여 적은 후 밀납을 발라 스파르타에 보냄
전치 암호(Transposition Chiper) : 대표적 치환암호는 스키테일 암호(Scytale)
-메시지의 내용 변경없이 배열의 위치만을 바꾸는 방법
-Permutation 라고도 함
-순서를 바꾸어 재배열하는 의미
*스키테일 암호는 일정 굵기의 봉에 종이를 두른 후 전달하고자 하는 문장을 쓴 뒤 종이를 풀면 평문의 각 문자는 재배치 되어 인식이 힘듦. 수신자는 같은 굵기의 봉에 두른 후 암호문 해독 가능
대치 암호(Substitution Cipher) : 대표적 대치암호는 이동암호(Shift Cipher)
평문에 나타난 문자 또는 기호의 순서는 바꾸지 않고, 원래의 문자나 기호 자체를 다른 문자나 기호로 바꾸는 방식
**시저 암호(Caesar Cipher) : 문자를 다른 문자로 대치시켜 메시지를 암호화 하여 전달. 알파벳 A~Z 26자를 3자씩(Key=3) 오른쪽으로 이동시킨 뒤 해당되는 글자로 변환시키는 암호화 방식
Ex)
a |
b |
c |
d |
e |
f |
g |
h |
i |
j |
k |
l |
m |
n |
o |
p |
q |
r |
s |
t |
u |
v |
w |
x |
y |
z |
x |
y |
z |
a |
b |
c |
d |
e |
f |
g |
h |
i |
j |
k |
l |
m |
n |
o |
p |
q |
r |
s |
t |
u |
v |
w |
암호문 : EH FDUHIXO IRU DVVDVVLQDWRU
해 독 : BE CAREFUL FOR ASSASSINATOR.
구분 | 1세대 (고전암호) |
2세대 (근대암호) |
3세대 (현대암호) |
시대 | 고대 ~ 19세기 후반(2차 세계대전 전) | 20세기 초 ~ 1940년대 후반(2차 세계대전 끝) | 1940년대 말 ~ 현재 |
알고리즘 | 시저암호 비게네르 암호 뷰포트 암호 |
ENIGMA 무라사끼 M-209 |
DES, AES, ARIA RSA, ECC |
특징 | 암호화 과정이 단순히 문자를 전차하거나 대치하는 방법 | Roter machine(계산기 같은 암호화)과 같은 복잡한 기계를 사용하여 암호화 | 비밀키 암호 알고리즘 공개키 암호 알고리즘 Shannon의 정보 이론을 시작으로 복잡도가 높은 암호 알고리즘 사용 |
학습하기 문제(홈페이지에 질문 올려두기!)
패스워드: 이용자가 접근 권한을 얻기위해 입력하는 암호 문자
코드: 암호의 한 종류, 암호화와 복호화에 대한 정보 혹은 방식 (ex: 시저 암호)
스테가노그라피: 파일 및 데이터에 정보를 변환시켜 숨기는 방법(ex : 악성코드)
해시함수: 임의의 데이터를 고정된 길이의 데이터로 매핑하는 방법(?)
아나그람: 단어나 문자의 순서를 바꾸어 하는 방식(ex: 쿵쿵따)
패스워드 | 특정한 시스템에 로그인을 할때 사용자의 신원을 확인하기 위하여 입력하는 문자열 |
코드 | 부호라고도 함 통신과 정보처리에서 정보를 나타내기위한 기호 체계 |
스테가노그라피 | 정보를 은닉하여 숨기는 기술 자신의 정보를 숨겨서 남이 보지 못하게 하는 기술 |
해시함수 | 임의의 데이터로부터 고정된 짧은 길이의 해시값을 출력하는 함수 출력된 해시값으로 입력핪을 계산하는것이 어려운 함수 |
아나그람 | 특정 단어의 철자를 순서를 뒤집어서 새로운 단어를 만드는 암호기법 전치암호의 일종 예) LOVE(사랑)->VOLE(들쥐) |
2. 대칭키 암호
가.블록 암호(Block Cipher)
-평문을 일정한 블록 단위로 나누어서 각 블록마다 암호화 과정을 수행하여 고정된 크기의 블록단위로 암호문을 얻는 방법
-Feistal 구조와 SPN 구조로 이루어짐
Confusion과ㅣ diffusion에 기반을 둔 암호
Confusion(혼돈) : 평문의 1 비트변화가 암호문에 어떤 변화를 초래할지 예측할 수 없는 성질
Diffusion(확산) : 평문을 구성하는 각 비트들의 정보가 암호문의 여러 비트에 분산되는 성질
고정된 크기 블록 평문 (P) -> 암호 알고리즘 -> 고정된 크기 암호문 (C)
(대표적 암호 : DES, AES SFED ARIA 등)
나. 스트림 암호(Stream Cipher)
-평문과 같은 길이의 키 스트림을 생성하여 평문과 키 이진수열을 비트 단위로 배타적 논리합(Bitwise Exclusive OR) 이진연산으로 결합하여 암호문을 얻는 방법
ex)
p = 1111111111
k = 0000110000
c = 1111001111
p와 k가 같으면 0, 다르면 1로 표기
사용처
-난수와 의사난수, 국사 및 외교용, 이동통신환경에서 구현 용이, 안전성을 수학적으로 엄밀하게 분석가능, 이동통신등의 무선통신데이터 보호에 적합
대표적 암호 : RC4, SEAL, Bluetooth, A5
3.블록암호 알고리즘
가. DES( Data Encryption Standard)
-IBM에서 개발함
-Lucifer 암호시스템을 수정 보완한 대칭키 암호이며 블록암호임
-64bit 평문을 64비트 평문을 64비트 암호문으로 만들며 56비트 크기의 암호화 키로 암호화 됨
-암호화 과정 한 단계를 라운드(Round)라 표현, 혼돈이 이 과정에서 이루어짐
-16라운드 Feistel 구조를 가짐(16라운드를 사용할때 Feistel 구조를 가짐) : 입력 n비트를 두개의 블록으로 나누어 한 블록을 라운드 함수 F에 적용시킨 후 출력값을 다른 블록에 적용하여 과정을 반복적으로 수행함
-8개의 S-box 를 사용함
-복호화는 암호화 과정과 동일한 역순
-블록암호 연구의 시발점을 제공함
암호 분석의 종류( 1998년 전용칩을 이용하여 복호화 성공, 11월 이후 미 정부에서 사용 중지)
DC(Differential Cryptoanalysis)
LC(Linear Cryptoanalysis)
DES challenge
나. AES(Advanced Encryption Standard)
-미국 연방 표준 차세대 암호 알고리즘
-AES 선정 과정
19971.2 : 128비트 블록암호 알고리즘, 삼중 DES보다 효율적 구현, 하드웨어나 소프트웨어로 구현에 적합, 설계원리 공개, 특허 없어야 함(로열티가 없음)
1997.9.12 : NIST에서 공식적으로 AES 공모
1998.8.20 : 15개의 AES 1차 후보 알고리즘 발표
1999.8.9 : 5개의 2차 후보 알고리즘 발표(Rijndael, MARRS, RC6, SERPENT, TWOFISH)
200.4 :Rijndael을 AES로 사용
다.Rijndael의 특징
128비트, 192비트, 256비트의 블록크기와 키의 크기를 가짐
AES 후보즐중 알려진 모든 공격에 안전
디자인의 간결성
SQYARE가 모체, 또한 AES는 Feistel 구조가 아닌 SPN 구조
S-box 는 대수적인 방법으로 만들어져 구축이 명확함 -> 차분 공격뿐만 아닌 선형공격과 최근 연구되는 삽입 공격에도 방어효과 있음.
라운드 수는 안정성을 고려해 128비트의 경우 10라운드. 라운드를 쉽게 늘릴 수 있음
라운드의 형성 단계 | |
1단계 : ByteSub(바이트 대치) | 비선형 레이어로 차분공격과 선형암호공격을 방어하기 위한 단계 |
2단계 : ShiftRow(행 쉬프트) | 선형 혼합단계로 라운드를 거듭할 수록 비트를 산란시키는 단계 |
3단계 : MixColumn(열 조합) | 입력 블록의 각 열에 해당하는 블록들이 서로 영향을 받도록 변환시키는 단계 |
4단계 Key XOR(부분키 뎃셈) | 각 입력 블록에 부분키를 XOR 하는 단계 |
마지막 라운드는 3단계의 레이어로 형성됨
바이트 대치 -> 행 쉬프트-> 부분키 뎃셈
라.SEED
1999년 KISA에서 국내 표준 블록암호 알고리즘으로 개발
128bit 블록,키의 블록 암호로 16라운드 Feistel 구조
-차분해독법(DC)/선형대혹법(LC)에 대하여 안전성 유지
마.ARIA
2004년 개발된 128비트 국가 표준블록암호 알고리즘
-경량환경 및 하드웨어 구현을 위해 최적화된 Involutional SPN 구조를 갖는 범용 블록 암호 알고리즘.
이름의 유래는 학교, 연구소, 정부기관의 공동 노력을 표현해 만듦
3. 공개키 암호(비대칭키 암호라고도 함)
-암호화에 사용되는 키와 복호화에 사용되는 키가 서로 다른 암호 시스템.
1976년 Diffie와 Hellman이 개발(둘다 유대인). : 비대칭 암호화 방식이 제안됨
1977년 Rivest,Sharmir, Adleman에 의해 공개키 암호 알고리즘(RSA) 개발
특징 : 암호화 키와 복호화 키가 다름
가. 공개키 암호의 종류
수학적 배경 | 인수분해 문제 | 이산대수 문제(로그 문제) | 타원곡 이산대수문제 |
암호 | RSA(78) -Rivest,Sharmir, Adleman개발 1. 큰 소수 p,q를 선택함 2. n=pq를 계산함(n이 공개키) 3. 자연수 e를 선택함(e 공개키), Gcd(e,(p-1)(q-1))=1 4.자연수 d를 선택함(d는 공개키)(단 ed= 1mod (p-1)(q-1) 5. 공개키 (n,e), 비밀키 (p, q, d) Rabin(79) |
Diffie-Hellman(76), DSA, ELGamal(84) |
타원곡선 암호(ECC, ECDSA) |
키 크기 | 2048bit 이상 | 2048bit이상 | 224bit 이상 |
연산 | Zn에서의 연산(*정수의 모듈러 연산) | 유한체 연산 | 유한체 연산 및 타원곡선 연산 |