일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Spring Boot
- Value Chain
- 재고관리모형
- 마코브분석
- Spring Security
- 정수계획법
- Matcher
- 심플렉스법
- 네트워크모형
- 프로젝트관리모형
- 내부수익률
- 위험하에서의사결정
- 대기행렬모형
- 경영의사결정
- 동저계획법
- 위험관리
- 경여의사결정론
- 수송모형
- 보이스
- 비선형계획
- CAPM
- 선형계획법
- Real Option
- SRM
- 플래닝
- oauth
- 재무관리
- 순현재가치
- 목표계획법
- 일드
Archives
- Today
- Total
어린왕자이야기
암호화 방식 과 종류 본문
1. 암화화 체계
2. 대칭키
일반적으로 다른 암호화의 구성요소. 암호화 및 복호화에 동일한 키를 사용.
2.1.종류 Twofish, Serpent, AES(Rijndael), Camellia, Salsa20, ChaCha20, Blowfish, CAST5, Kuznyechik, RC4, DES, 3DES, Skipjack, Safer, IDEA
2.2.방식
- Stream ciphers : 일반 텍스트 숫자가 의사 랜덤 암호 숫자 스트림(keystream)과 결합되는 대칭 키 암호. 비트 결합 연산은 XOR 혹은 배타적 연산
- Synchronous stream ciphers
- Self-synchronizing stream ciphers
- Block ciphers : 고정 길이 비트 그룹에서 작동하는 결정론적 알고리즘. 많은 암호화 프로토콜의 설계에서 기본 구성 요소로 지정. 데이터 교환 프로토콜을 포함하여 많은 양의 데이터를 암호화
- Iterated block ciphers
- Substitution–permutation networks
- Feistel ciphers
- Lai–Massey ciphers
3. 비대칭키
공개키(Public Key)와 개인키(Private Key)가 하나의 쌍
다른 사람들에게 공개된 키로서 정보를 암호화할 수 있는 공개키와 사용자 본인만 알고 있어서 암호를 풀 수 있는 키인 개인키는 하나의 쌍
비대칭키를 사용한 암호화 방식에는 공개키로 암호화(데이터 보안에 중점)를 하는 경우와 개인키로 암호화(전자서명을 통한 인증 과정)를 하는 경우로 구분
비대칭형 암호는 암복호화가 대칭형 암호화에 비하여 현저하게 느리기 때문에 현실적으로 비대칭형 암호를 이용하여 대칭형 암호의 키를 배송하고 실제 암호문은 대칭형 암호를 사용하는 식으로 상호보완적인 이용이 일반적
3.1. 방식
- 암호모드 : 송신자 공개키로 암호화 -> 송신자 사설키로 복호화. 소량의 메시지 암호화 목적, 주로 키 교환의 용도로 사용
- 인증모드 : 송신자 사설키로 암호화 -> 송신자 공개키로 복호화. 메시지를 인증(부인방지)하는 것이 목적
4. 해쉬 함수
요약함수 및 메시지다이제스트함수(Message Digest Function)라고도 하며 주어진 원문에서 고정된 길이의 의사난수를 생성하는 연산 기법
4.1. 해쉬 성질
4.2. 해시 알고리즘 비교
구분 | MD5 | SHA-1 | SHA-224 | SHA-256 | SHA-384 | SHA-512 |
메시지 다이제스트 길이 |
128bit | 160 bit | 224 bit | 256 bit | 384 bit | 512 bit |
처리 단위 | 512 bit | 512 bit | 512 bit | 512 bit | 1024 bit | 1024 bit |
단계 수 | 64 | 80 | 64 | 64 | 80 | 80 |
최대 메시지 길이 |
무한 | 264-1 | 264-1 | 264-1 | 2128-1 | 2128-1 |
4.3. 메시지 인증 코드 및 변경 감지 코드 절차
4.3.1. 변경 감지 코드(Modification Detection Code) 절차 : 메시지 무결성은 보장하나 인증된 사용자로부터 수신된 메시지라는 것을 보장하지 못함
알고리즘분류 | 알고리즘명 | MD 길이 | 블록 길이 | 최대 메시지 길이 |
MD5 | MD5 | 128bit | 512bit | 무한 |
RIPEMD | RIPEMD-160 | 160bit | 512bit | 2^64-1bit |
SHA-1 | SHA-1 | 160bit | 512bit | 2^64-1bit |
SHA-2 | SHA-224 | 224bit | 512bit | 2^64-1bit |
SHA-2 | SHA-256 | 256bit | 512bit | 2^64-1bit |
SHA-2 | SHA-384 | 384bit | 1024bit | 2^128-1bit |
SHA-2 | SHA-512 | 512bit | 1024bit | 2^128-1bit |
SHA-3 | SHA-2와 디자인이 달리짐 |
4.3.2. 메시지 인증 코드(Message Authentication Code) 절차 : 메시지 무결성 뿐만 아니라 메시지가 인증된 사용자로부터 왔다는 것을 보장하는 것에 목적
알고리즘분류 | 알고리즘 설명 |
축소 MAC | 최종 MAC을 생성하기 위해 두 단계의 해시 함수를 거친다. 키와 메시지로 1차 다이제스트를 생성하고, 키와 1차 다이제스트를 사용해 최종 다이제스트를 생성 |
HMAC(Hashed-MAC) | SHA와 같은 일방향 해시함수를 이용하여 MAC를 구성하는 방법이다 |
CBC-MAC(Cipher Block Chaining MAC) | 블록 암호 운용 방식 중 하나인 CBC모드와 유사, 대칭 키 암호를 N번 사용해서 N개의 평문 블록에서 하나의 MAC을 생성 |
CMAC(Cipher-based MAC) | CBC-MAC의 보안 논점을 해결하기 위해 만들어진 방식. 데이터 인증과 무결성을 제공하지만, 수학적으로는 보다 안전 |
CCM(Counter with CBC-MAC) | CTR과 CBC-MAC을 통합한 방식으로 동일한 키의 사용으로 기밀성과 무결성(인증)을 보장. 핵심적인 알고리즘 구성요소는 AES, CTR 모드, CBC-MAC |
GCM(Galois/Counter)모드 | CTR 모드에 인증 기능을 추가 |