각진 세상에 둥근 춤을 추자
암호 키 생성 방식 본문
1. 사용자 입력: 사용자가 저장하고자 하는 정보, 예를 들어 '12345'를 입력한다.
2. 데이터 전송: 사용자는 입력한 정보를 서버로 전송한다. 이때 전송되는 정보는 원본 '12345'이다.
3. 서버 암호화 처리: 서버는 수신한 원본 데이터 암호화 작업을 진행한다. 암호화 알고리즘을 통해 '12345'를 보안성이 높은 형태(예시: '$%^#@!@#!')로 변환한다.
4. 암호화된 데이터 저장: 서버는 암호화된 값을 생성한 후, 해당 암호화된 값과 사용자를 식별할 수 있는 식별자를 함께 데이터베이스로 전송한다.
5. 데이터베이스 저장: 데이터베이스는 암호화된 값과 사용자 식별자를 저장한다.
1. 난수발생기(Random Big Generator, RGB)를 사용하여 키를 생성
2. 비대칭키 알고리즘의 키 생성
3. 대칭키 알고리즘의 키 생성
암호키 생성 방식 - 1. 난수발생기(Random Big Generator, RGB)를 사용하여 키를 생성
- RGB는 일정한 규칙 없이 난수를 생성하며 주로 대칭키, 비대칭키 모두에 사용된다.
- 장점: 키가 완전히 무작위로 생성되므로, 예측이나 분석이 어렵다.
- 단점: 난수 생성이 불안정하거나, 강력하지 않을 시 보안에 취약하다.
암호키 생성 방식 - 2. 비대칭키 알고리즘의 키 생성
- 공개키(Public Key)와 개인키(Private Key)라는 두 개의 키를 사용하는 방식이다.
- 공개키: 누구나 접근 가능한 키로 데이터를 암호화하는 데 사용한다.
- 개인키: 비밀로 유지되며, 암호화된 데이터를 복호화하는 데 사용한다.
- 장점: 공개키를 사용하여 안전하게 데이터를 공유할 수 있으며, 개인키로만 복호화할 수 있어 안전하다.
- 단점: 키 길이가 길고, 암/복호화 속도가 느린 편이다.
비대칭키 알고리즘의 키 생성 방법으로는 디지털 서명을 위한 키 쌍 생성, 키 설정을 위한 키 쌍 생성 등이 있다.
(1) 디지털 서명을 위한 키 쌍 생성
디지털 서명 방식에서는 비대칭키 알고리즘을 이용하여 개인키로 데이터를 서명하고, 공개키로 서명을 검증하는 구조이다.
RSA (Rivest-Shamir-Adleman) | RSA는 가장 널리 사용되는 비대칭키 알고리즘이다. 주로 암호화와 디지털 서명에 사용된다. |
DSA (Digital Sigature Algorithm) | 미 정부 디지털 서명을 위한 표준 알고리즘으로 채택되었다. DSA는 공개키 암호화 방식의 일종으로 서명에 특화되어 있다. (키 쌍이 서명에만 사용되며, 데이터 암호화에는 사용되지 않는다.) |
ECDSA (Elliptic Curve Digital Signature Algorithm) | 타원 곡선 암호 알고리즘을 기반으로 한 디지털 서명 알고리즘이다. RSA와 DSA에 비해 짧은 키 길이로 동일한 수준의 보안성을 제공한다. |
(2) 키 설정을 위한 키 쌍 생성
키 설정(Key Establishment)은 대칭키를 안전하게 설정하는 과정을 의미한다.
키 설정에는 두 가지 주요 방식이 있다.
① 키 교환: A가 대칭키를 생성하고 B의 공개키로 암호화한 후 대칭키를 전송. B는 자신의 개인키로 이를 복호화하여 대칭키를 얻는다.
② 키 합의: A와 B가 서로의 공개키를 교환한 후, 각자의 개인키와 상대방의 공개키를 이용해 같은 대칭키를 계산한다.
암호키 생성 방식 - 3. 대칭키 알고리즘의 키 생성
- 암호화와 복호화에 동일한 키를 사용하는 방식이다.
- 장점: 비대칭키 방식에 비해 처리 속도가 빠르고 구현이 간단하다.
- 단점: 동일한 키를 양쪽에서 공유해야 하므로 키가 노출될 경우 보안에 취약하다.
(1) 난수발생기의 출력을 암호키로 사용
- 난수발생기를 사용하여 예측 불가능한 암호키를 생성하는 방식이다.
(2) 미리 공유된 키를 이용한 키 유도
- 이미 양쪽에서 공유된 키가 있을 때, 그 키를 기반으로 추가적인 암호키를 유도하는 방식이다.
- 키 유도 함수(Key Derivation Function, KDF)를 사용하여 기존 키로부터 새로운 키를 생성한다.
(3) 패스워드를 이용한 키 유도
- 사용자가 입력한 패스워드를 기반으로 암호키를 유도하는 방식이다.
- 패스워드 자체는 키로 사용되기에 불안정하므로, 이를 보완하기 위해 해시 함수나 키 유도 함수 (PBKDF2, bcrypt, scrypt 등)을 사용하여 안전한 키를 생성한다.
(4) 다수의 암호키를 이용한 키 생성
- 여러 개의 암호키를 조합하거나 섞어서 새로운 암호키를 생성한다.
출처 및 참고: https://www.kisa.or.kr/2060305/form?postSeq=10&page=1
'보안' 카테고리의 다른 글
암호 키 생성: 결정론적 난수발생기(DRBG) (1) | 2024.09.09 |
---|---|
암호화 알고리즘과 암호화 키 생성 도구 (2) | 2024.09.05 |
암호 키 관리와 암호 키 보호 (1) | 2024.09.05 |
개발자 도구 페이로드 평문 패스워드 노출: 클라이언트 측 RSA 암호화를 활용한 로그인 (2) - CAPTCHA 적용에 대해 (1) | 2024.08.26 |
개발자 도구 페이로드 평문 패스워드 노출: 클라이언트 측 RSA 암호화를 활용한 로그인 (1) (0) | 2024.08.22 |