#2 암호기법 Cryptography
1. 치환 암호, 대치 암호, Substitution Cipher
- 비트, 문자, 블록을 다른 비트, 문자, 블록으로 대체한다.
- 평문의 문자를 다른 문자로 '교환하는 규칙'이다.
- 교환 규칙이 일대일 대응이 아니어도 상관 없다.
- 평문에서 사용하는 문자의 집합과 암호문에서 사용하는 문자의 집합이 다를 수 있다.2. 전치 암호, Transposition Cipher
- 비트, 문자, 블록이 원래 의미를 감추도록 재배열한다.
- 원문을 다른 문서로 대체하지 않는다.
- 문자 집합 내부에서 '자리를 바꾸는 규칙'이다.
- 평문에 사용된 문자와 암호문에 사용된 문자가 일대일 대응이다.
- 평문에서 사용하는 문자의 집합과 암호문에서 사용하는 문자의 집합이 동일하다.
3. 블록 암호. Block Cipher
- 어느 특정 비트 수의 '집합'을 한 번에 처리하는 암호 알고리즘을 총칭이다.
- 블록, Block : 어느 특정 비트 수의 '집합'
- 블록 길이, Block Length : 블로그이 비트 수
- 평문을 일정한 크기의 블록으로 잘라낸 후 암호화 알고리즘을 적용하여 암호화한다.
- 일반적으로 블록의 크기는 8-bit(ASCII), 16-bit(Unicode)에 비례한다.
- 스트림 암호와 다르게 Round를 사용하고, 반복적으로 암호화 과정을 수행해 암호화 강도를 높일 수 있다.
- 블록 단위로 처리되므로 어디까지 진행되었는지에 대한 내부 상태를 가질 필요가 없다.
- 암·복호화 시 키 사용
- 암호화 : 비밀키(Secret Key) 사용
- 복호화 : 암호화에 사용된 비밀키 사용
- 암호화 단위 : 블록
- 예 : DES, IDEA, SEED, RC5, AES
- DES, Data Encryption Standard
- 1974년 8월 27일 IBM에서 루시퍼 암호 알고리즘 제안
- 1975년 3월 17일 미국 NBS(National Bureau of Standards, 현재 NIST)에서 미국 정부 표준 암호 알고리즘으로 발표
- [출처] 위키 백과 : 데이터 암호 표준
- 정의 : ANSI X3.92와 X3.106 표준, 미국 연방 정부 FIPS 46과 81 표준
- 블록 크기 : 64-bit
- 비밀키 길이 : 56-bit
- 3DES, Triple DES
- DES를 3번 반복
- 반복 방법 : EEE(Encryption-Encryption-Encryption), EDE(Encryption-Decryption-Encryption)
- 키를 3개 사용 가능하지만, 2개 사용하는 것과 키 강도가 동일하여 일반적으로 2개 사용한다.
- AES, Advanced Encryption Standard
- 2001년 미국 표준 기술 연구소(NIST)에 의해 제정된 암호화 방식
- DES를 대체하고, 3DES와 같거나 더 나은 보안성을 갖고 개선된 암호 기법 공모를 통해 선정
- 블록 크기 : 128-bit
- 비밀키 길이 : 128, 192, 256-bit
- 라운드 수 : 키 길이에 따라 각각 10, 12, 14
- [참고] 위키 백과 : 고급 암호화 표준
; https://ko.wikipedia.org/wiki/%EA%B3%A0%EA%B8%89_%EC%95%94%ED%98%B8%ED%99%94_%ED%91%9C%EC%A4%80
- SEED
- 순수 국내 기술로 개발한 블록 암호 기술
- 블록 크기 : 128-bit
- SEED 128
- 표준 제정 : 1999년 9월 정보통신단체표준(TTA), 2005 국제 표준화 기구 ISO/IEC 국제 블록 암호 표준, IETF 표준- 비밀키 길이 : 128-bit
- SEED 256
- 비밀키 길이 : 256-bit
- [참고] KISA 암호이용활성화 ; http://seed.kisa.or.kr/iwt/ko/sup/EgovSeedInfo.do
- 블록 암호 운용 방식, Block cipher modes of operation
- [참고] 위키 백과 : 블록 암호 운용 방식
4. 스트림 암호, Steam Cipher
- 데이터 흐름(스트림)을 순차적으로 처리해가는 암호 알고리즘의 총칭이다.
- 암호화 방식 : 평문 ⊕ 키 스트림
- 블록 암호화보다 매우 빠르지만 암호화 강도는 약하다.
- 실시간성이 중요한 음성 또는 여상 스트리밍 전송, 무선 암호화방식에 사용된다.
- 데이터의 흐름을 순차적으로 처리하므로 내부 상태를 가지고 있다.
- 암호화 단위 : 비트
- 예: LFSR(Linear Feedback Shift Register), MUX Generator
5. 링크 암호화, Link Encryption
- ISP, 통신업자가 암호화
- 헤더를 포함한 모든 데이터를 암호화
- 중간 노드에서 데이터가 평문으로 노출되기 때문에 해당 노드가 공격당하면 전체가 위험.
- 사용자가 사용된 알고리즘 통제 불가
- 모든 노드가 암호화 장비를 갖추어야하므로 네트워크가 커지면 비용 과다
6. 종단간 암호화, End-to-End Encryption
- 사용자가 암호화
- 헤더(라우팅 정보)는 암호화하지 않음
- 중간 노드의 공격에도 영향이 없음
- 알고리즘에 대한 통제는 사용자가 가짐
7. 대칭키 암호, Symmetric Cryptography
- 암호화할 때 사용하는 키와 복호화할 때 사용하는 키가 동일한 암호 알고리즘 방식
- 암호 알고리즘과 복호 알고리즘은 서로 역관계이다.
- 종류(단위에 따라) : 블록, 스트림
8. 비대칭키 암호, Asymmetric Cryptography / 공개키 암호, Public Key Cryptosystem
- 암호화할 때 사용하는 키와 복호화할 때 사용하는 키가 서로 다른 암호 알고리즘 방식
- 송신자와 수신자가 각각 자신만의 한 쌍의 키를 가지고 있어야 한다.
- 공개키를 사용한 암·복호화
- 암호화 : 공개키(Public Key) 사용
- 복호화 : 개인키(Private Key) 사용
- 종류 : RSA, 타원 곡선 암호(ECC, Elliptic Curve Cryptosystem)
항목 |
RSA 방식 |
ECC 방식 |
기반구조 |
PKI (유선) |
WPKI (무선) |
속도 |
느림 |
우수 |
키 크기 |
ECC에 비해 큰 키 |
RSA에 비해 상대적으로 작은 키 |
적용 |
인프라가 다소 구현된 환경 |
소형 Mobile 환경 |
* 대칭키와 공개키 방식의 비교
항목 |
대칭키 |
공개키 |
키의 상호관계 |
암호화키 = 복호화키 |
암호화키 ≠ 복호화키 |
안전한 키 길이 |
128비트 이상 |
2048비트 이상 |
암호화키 |
비밀 |
공개 |
복호화키 |
비밀 |
비밀 |
키 개수 |
N(N-1)/2 |
2N |
암호화 속도 |
고속 |
저속 |
경제성 |
높다 |
낮다 |
제공 서비스 |
기밀성 |
기밀성, 부인방지, 인증 |
목적 |
데이터(파일) 암호화 |
대칭키 교환 |
단점 |
키 교환 원리가 없다 |
중간자 공격에 취약 |
암호 알고리즘 |
DES, 3DES, AES, IDEA |
RSA, ECC, DSA |
9. 하이브리드 암호 시스템, Hybrid Cryptosystem
- 대칭키 암호화 비대칭키 암호의 장점을 조합한 암호 방식
10. 일방향 해시 함수, One-way Hash Function
- 입력 1개와 출력 1개
- 입력 : 메시지, Message
- 출력 : 해시값, Hash Value
- 특징
- 임의 길이의 메시지로부터 고정 길이의 해시값을 계산한다.
- 해시값을 고속으로 계산할 수 있다.
- 일방향성(단방향성)을 갖는다.
; 해시값으로부터 메시지를 역산할 수 없다.
- 메시지가 다르면 해시값도 다르다.
; 무결성을 확인하기 위해 사용한다.
; 메시지가 1비트라도 변화하면 해시값은 매우 높은 확률로 다른 값이 되어야 한다.
; 2개의 다른 메시지가 같은 해시값을 갖는 것을 충돌(collision)이라고 한다. 일방향 해시함수를 무결성 확인에 사용하기 위해서는 충돌이 발견되어서는 안 된다.
; 충돌을 발견하는 것이 어려운 성질을 가리켜 충돌 내성(collision resistance)라고 부른다. 암호 기술에서 사용되는 일방향 해시함수는 충돌 내성을 가질 필요가 있다.
- 종류 : MD, SHA
- MD, Message Digest
- MD5 : 해시값 충돌 발견으로 보안에 취약
- SHA, Secure Hash Algorithm
- SHA-1 : 2008년 해시 충돌 발생으로 보안에 취약. 2017년 구글 프로젝트 제로 팀에 의해 전체 해시 충돌 관련 정보 완전 공개 예정.
- SHA-2
- SHA-224, 256, 384, 512 : 숫자 값은 해시값 길이를 의미
- [참고] 위키 백과 : 암호학적 해시 함수
11. 메시지 인증 코드, MAC, Message Authentication Code
- 메시지가 생각했던 통신 상대로부터 온 것임을 확인하기 위해서 메시지 인증 코드(MAC, Message Authentication Code) 기술을 사용한다.
- 그 메시지가 전송 도중에 변경되지 않았다는 것 (무결성)
- 생각했던 통신 상대로부터 온 것이라는 것 (인증)
- 무결성, 인증을 제공하는 암호 기술이다.
12. 전자서명, Electronic Signature
- 오프라인(off-line)의 도장, 서명, 날인 개념을 온라인(on-line)에 적용한 것
- 무결성, 인증, 부인방지를 제공하는 암호 기술이다.
13. Secure Random
- 난수열을 생성하는 알고리즘
- 난수는 키 생성(Key Generator)라는 매우 중요한 역할을 담당하고 있다.
- 의사난수 생성기, PRNG, Pseudo Random Number Generator
'Cloud : Computer > Cryptology' 카테고리의 다른 글
#1 암호학, Cryptology (120) | 2018.04.18 |
---|