Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 백준
- 스프링
- 운영체제
- 쿼리dsl
- 자바의 정석
- 웹개발
- 메서드
- 알고리즘
- 객체지향프로그래밍
- Bean Validation
- ModelAttribute
- 반복문
- OS
- 코테
- 스프링MVC
- programmers
- 검증
- 면접
- 정처기
- 네트워크
- 코딩테스트
- 자바
- db
- 브루트 포스
- 스파르타코딩
- JPA
- 스프링 MVC
- Java
- 프로그래머스
- 자료구조
Archives
- Today
- Total
개발일지
대칭키와 공개키 본문
728x90
암호 알고리즘에는 대표적으로 대칭키 암호화와 공개키 암호화가 있다.
목차
1. 대칭키(Symmetric Key)
암호화와 복호화에 같은 암호키(대칭키)를 사용하는 알고리즘으로, 하나의 키를 양쪽(client&server) 같이 사용한다.
- 장점 : 공개키 암호화 방식에 비해 암호화 및 복호화 속도가 빠르다.
- 단점 : 암호화 통신을 하는 사용자끼리 같은 대칭키를 공유해야만 한다.
1. 물리적으로 직접 만나서 전달하지 않는한, 대칭키를 전달하는 과정에서 해킹의 위험에 노출될 수 있다.
2. 관리해야 할 키의 개수가 방대해진다. - 대표 알고리즘 : DES, 3DES, AES, SEED, ARIA 등
- DES(Data Encryption Standard) : 64bit의 블록 크기를 가지며, byte 별로 1bit의 패리티 bit를 가진다.
- 따라서, 실제 비밀키의 길이는 56bit이며 16라운드(라운드 : 암호화 단계를 여러번 거치는 단위)를 진행한다.
- DES를 3중으로 하여 보안성을 강화한 3DES 알고리즘도 존재하지만 최근에는 사용하지 않는다.
- AES(Advanced Encryption Standard) : DES를 대체하는 미국의 표준 대칭키 블록 알고리즘
- 128bit의 블록 크기와 가변 길이 키(128/192/256)를 가진다.
- 키의 길이에 따라 10/12/14 라운드를 진행한다.
- 메모리를 적게 사용하고 속도가 빨라 모바일 장비에서도 사용할 수 있다.
- IDEA(International Dta Encryption Algorithm)
- DES를 대체하기 위해 스위스에서 개발된 것으로 유럽에서 많이 사용한다.
- 국제 표준의 데이터 암호화 알고리즘으로 64bit의 블록 크기를 가진다.
- 키 길이는 128bit이며 8라운드를 진행한다.'
- SEED
- 한국인터넷진흥원에서 민간 부분의 암호 활용을 위하여 국내 순수 기술로 개발하여 보급한 블록 대칭키 암호화 알고리즘이다.
- 128bit의 블록 크기와 128bit의 키 길이를 가지며 16라운드를 진행한다.
- DES(Data Encryption Standard) : 64bit의 블록 크기를 가지며, byte 별로 1bit의 패리티 bit를 가진다.
2. 공개키(Public Key)
대칭키의 키 분배 문제를 해결하기 위해 고안되었다.
*대칭키일 때는 송수신자 간만 키를 알아야 하기 때문에 분배가 복잡하고 어렵지만, 공개키와 비밀키로 분리할 경우 남들이 알아도 되는 공개키만 공개하면 된다.)
암호화와 복호화에 사용하는 암호키를 분리한 알고리즘으로, 공개키와 비밀키 두 개가 존재한다.
공개키(Public Key)만 대중에게 공개하고, 암호화 된 데이터는 고유한 비밀키(Private Key)로만 복호화할 수 있다.
이 비밀키를 가진 사용자만이 내용을 열어볼 수 있다.
- 장점 : 수신자의 개인키로만 해독할 수 있으므로 안전하다.
- 단점
- 대칭키(Symmetric Key) 알고리즘에 비하여 속도가 느리다. (약 1000배)
- 암호화하는 키와 복호화하는 키가 서로 다르기 때문에 대칭키에 비해 암호화 복호화가 매우 복잡하다.
- 무결성(integrity)나 신원을 보장해주지 못한다.
(1) 암호화된 메세지가 정상적으로 수신자에게 전달되었더라도, 그 내용이 송신자가 전송한 원본 메시지와 같은지 확인하는 것은 공개키 암호화만으로는 어렵다. 즉, 메세지의 무결성을 확인하는 것이 어려울 수 있다.
(2) 공개키는 누구나 알 수 있기에 공개키를 이용한 암호화만으로는 송신자의 신원을 제대로 증명하기 어렵다.
=> MAC 또는 디지털 서명을 활용하여 integrity와 authenticity를 보장할 수 있다.
- 대표 알고리즘 : RSA 등
MAC은 대칭키를 사용하여 메시지의 무결성과 인증을 보장하는 메커니즘 중 하나이다.
MAC은 특정 메시지와 공유된 비밀 대칭키를 사용하여 생성되며, 메시지와 MAC는 함께 전송되어 수신자가 메시지를 수신하고 무결성과 인증을 할 수 있다.
MAC의 작동방식
1. 송신자와 수신자는 둘 다 같은 비밀 대칭키를 공유한다.
2. 송신자는 원본 메시지와 비밀 대칭키를 사용하여 MAC을 생성한다.
3. 생성된 MAC은 원본 메시지와 함께 전송된다.
4. 수신자는 수신한 메시지와 공유된 비밀 대칭키를 사용하여 새로운 MAC을 생성한다.
5. 수신자가 생성한 MAC과 전송된 MAC을 비교하여 일치하며, 메시지의 무결성과 인증이 확인된다.
Q : MAC은 공개키 방식이 아닌, 대칭키 방식인데 그러면 무결성과 신원보장을 위해서는 대칭키 방식을 쓴다는건가?
자료 출처
728x90
Comments