Search
Duplicate

7-1 암호

생성일
2022/06/13 14:07
태그
1.
암호의 기초
암호화 과정
암호(Cryptography) : 중요 정보를 다른 사람들이 해석할 수 없게 하는 방법
평문 : 암호화되기 전의 메시지
암호문 : 암호화되고 난 후 변경된 메시지
암호화 또는 암호화 과정 : 평문을 암호문으로 바꾸는 과정
암호화 알고리즘 : 어떤 방식으로 평문을 암호문으로 변경할 지 경정
암호화 키:암호화 키가 없는 외부인이 강제적으로 암호문을 해독하는 것을 막음
복호화 과정
복호화 : 암호문을 복호화 키를 이용하여 평문으로 바꾸는 과정
암호화 방식 비교
대칭 암호화 알고리즘 : 암호화 키 = 복호화 키
비대칭 암호화 알고리즘 : 암호화 키 = ! 복호화 키
고전 암호학
전치법 알고리즘 : 단순히 메시지에 있는 문자의 위치를 바꾸는 방법
단일 치환 알고리즘 : 알파벳 한 글자를 다른 한 글자로 대체
전사 공격에 취약 : 모든 사건을 일일이 시도 또는 대입해 보는 공격
대칭 암호화 방식
암호화 키와 복호화 키가 같은 암호화 방식
암호화 및 복호화에 걸리는 시간이 짧으며, 비교적 간단한 방식으로 구현 가능
현대에 가장 많이 사용되던 암호 방식 중 하나, 현대에 가장 많이 사용되던 암호 방식 중 하나 / 전사 공격으로 DES 해독이 가능해짐에 따라, 1998년 11월 이후 공식적 사용 중단 (*DES : Data Encryption Standard)
64비트 평문을 64비트 암호문으로 암호화
키의 크기 : 56 비트 (64비트 중 오류 검출을 위해 8비트가 사용)
암호화 과정 개요
전처리 단계 : 초기 치환 실행
16번의 라운드 수행
후처리 단계 : 최종 치환
트리플 DES
DES의 대안으로 제시된 DES의 비도를 강화한 대칭키 암호 방식
DES를 3번 연속으로 실행하는 것이 기본 개념으로, 삼중 DES 혹은 3DES 라고도 불림
트리플 DES의 암호화 과정
2번의 DES 암호화 중간에 DES 복호화 1번을 실행함 - 기존 DES와의 호환성 유지 목적
수학적으로 DES보다 2배의 암호화 강도를 가진다고 평가
충분한 암호 강도가 아니므로 사용을 권장하지 않음
AES
1997년 미국 NIST의 암호 공모에서 새로운 대칭 암호의 표준으로 채택된 대칭키 암호 방식
암호 공모 조건
안전성
비용
구현 효율성
두 명의 벨기에 암호학자인 존 대먼과 빈센트 라이먼에 의해 개발된 레인달에 기반으로 AES 공모에서 선정
특징
128 비트 평문을 128 비트 암호문으로 암호하
키의 크기 : 3가지(127,192,256비트)
10/12/14번의 라운드 수행
AES의 각 라운드 구성
대치연산
치환연산
혼합연산
AddRoundKey 연산
SEED
국산 128비트 블록 암호 알고리즘
전자 상거래, 금융, 무선 통신 등에서 전송되는 중요 정보 보호 목적
SEED 128 - 128비트 키, SEED 256 - 256 비트 키
ARIA
국산 128비트 블록 암호화 알고리즘
경량 환경 및 하드웨어에서의 효율성 향상을 위해 개발
AES와 마찬가지로 128/192/256 비트 암호화 키를 지원
학계, 연구소, 정부기관이 공동으로 개발
기타
IDEA - 유럽에서 많이 사용
RC5 - 미국 RSA 연구소에서 개발
블록 암호 모드
대칭 암호화 방식은 하나의 평문을 블록 단위로 나누어서 암호화 또는 복호화를 수행
예) 300비트 평문을 AES로 암호화 하는 경우
AES 블록 크기 : 128 비트로 가정
블록 개수 : 3개
3 번째 블록에 저장되는 데이터 크기 : 44비트
패딩 : 블록의 남은 부분에 의미없는 데이터를 채워 크기를 맞추는 것
ECB(Electirc Code Book) 모드
각 평문 블록 단위로 암호화한 것이 그대로 암호문 블록이 되는 방식
장점 : 계산이 단순
단점 : 보안적으로 취약(변조 가능)
중간 블록을 단순히 바꿔치기만 해도 동작할 수 있음
CBC 모드(Cipher Block chaining) 모드
암호화 블록을 마치 체인처럼 연결하는 모드
→ 현재의 평문 블록과 현재 블록 바로 직전에 암호화된 암호 블록을 XOR 연산한 후 암호하
초기화 벡터 : 최초 블록을 암호화 할 때 XOR 연산에 사용되는 블록
장점 : 보안적으로 안전(변조 불가)
단점 : 계산이 다소 복잡
→ 제약 사항 : 중간에 있는 블록을 복호화하기 위해서 반드시 첫 블록부터 복호화를 해야함
정리
구분
장점
단점
비교
ECB 모드
간단,병렬처리 가능(암호화,복호화 모두)
평문의 반복이 암호문에 반영, 암호문 블록의 삭제 혹은 교체에 의해 평문 변조가 가능
보안상 취약함
CBC 모드
평문의 반복이 암호문에 반영되지 않음, 암호문 블록의 삭제 혹은 교체에 의해 평문 변조가 불가능
암호화는 병렬 처리 불가능하지만, 복호화는 각 블록을 다음 이전 암호화 블록과 XOR 하여 복구할 수 있기 때문에 병렬화가 가능
사용 권장
비대칭 암호화 방식
대칭 암호화 방식의 문제점과 보안책
비대칭 암호화 방식의 필요성
대칭 암호화 방식의 “키 배포” 문제에 대한 보안책 필요
디피 - 헬만 키 교환
소수를 이용한 나머지 연산을 사용
소수는 1과 자기 자신 이외의 약수를 갖지 않는 1보다 큰 자연수
→ 통신을 통해 미리 배포되지 않은 새로운 비밀키 S를 각각 생성하여 공유하는 것이 목표
과정
1.
공개된 숫자 p와 g 설정
2.
앨리스 : 자신의 개인키 a에서 숫자 A 를 계산 → 계산된 A를 밥에 전송
3.
밥 : 자신의 개인키 b에서 B를 계산 → 계산된 B를 앨리스에 전송
4.
앨리스 : 밥으로부터 수신한 B와 자신의 개인키 a를 이용하여 비밀키 s를 계산
5.
밥 : 앨리스로 부터 수신한 A와 자신의 개인키 b를 이용하여 비밀키 s를 계산
RSA
비대칭 암호화 방식 중에서 실직적인 산업 표준
암호화 복호화 뿐 아니라 전자서명 등의 다양한 기능을 제공 가능
공개키 : 외부에 공개할 수 있는 키 → 공개키 저장소
개인키 : 외부에 공개하면 안되고, 자신만 알고 있어야 하는 키
공개키로 암호화, 개인키로 복호화
앨리스가 밥의 공개키로 암호환 메시지는 밥의 개인키로만 복호화 가능 → 밥만 해독 가능
→ 기밀성 보장
다른 사람이 중간에서 도청할 수 없음
→ 이브가 중간에서 앨리스가 암호화된 메시지를 가로챘다고 하더라도 밥의 개인키가 없으므로 암호화된 메시지를 복호화 할 수 없음
개인키로 암호화, 공개키로 복호화
앨리스가 자신의 개인키로 서명한 메시지를 밥에게 전송
→ 누구라도 앨리스의 공개키를 입수하여 복호화 가능 → 부인 방지 보장
앨리스가 자신이 보낸 사실을 ‘부인’할 수 없음
→ 앨리스의 공개키로만 복호화가 가능하다는 사실을 통해 ‘부인’ 할 수 없는 증거를 제시
전자상거래에서 기업 간 주문이나 계약에서도 중요한 법적 증거 역할
RSA 개인키와 공개키 만드는 방법
암호화 방식 비교 : 대칭 암호화 방식 vs 비대칭 암호화 방식
대칭 암호화 방식
비대칭 암호화 방식
키의 상호 관계
암호화 키 = 복호화 키
암호화 키 ≠ 복호화 키
안전한 키 길이
128비트 이상
2048 비트 이상
키의 구성
비밀키
공개키 , 개인키
DES, 3DES, AES
RSA,ECC
제공 서비스
기밀성
기밀성, 부인 방지 및 인증
목적
데이터 암호화
키 교환
단점
별도의 키 교환이 필요하다
공개키 중간자 공격에 취약하다.
암호화 속도
빠르다
느리다