A. 디지털 키의 개요

1. 디지털 키란? 

암호화와 관련하여 키는 두 장치 간의 정보 흐름, 대량의 고정 데이터 또는 다른 디지털 키나 해시 출력 값과 같은 소량의 데이터를 암호화하는 데 사용될 수 있습니다. 키가 수행하는 작업에 따라 수명은 몇 년 또는 몇 초가 될 수 있습니다. 예를 들어 인증서에 서명하는 데 사용되는 키는 10년 이상 유효할 수 있지만 두 장치 간의 세션을 암호화하는 데 사용되는 키는 해당 세션 기간 동안만 사용됩니다. 키는 일반적으로 비공개 또는 비밀로 유지되지만 공개될 수도 있습니다. 공개 키는 종종 디지털 인증서에 기록됩니다.
 

디지털 키란?

 

2. 디지털 키의 길이와 강도

공개 키는 종종 1024비트, 2048비트 또는 그 이상입니다. 공개 키는 비교적 큰 크기 때문에 다른 키나 데이터 해시와 같은 작은 데이터를 암호화하는 데 자주 사용됩니다. 대량의 데이터를 암호화하려면 너무 오래 걸립니다. 128비트에서 256비트 범위의 더 작은 키는 대량 데이터를 암호화하는 데 사용됩니다. 따라서 사용되는 키의 유형이나 크기는 수행되는 암호화 작업의 유형에 따라 결정됩니다.
 
키를 안전하게 다른 엔터티로 전송하기 위해 암호화하는 경우 더 큰 키를 사용하세요. 성능이 중요한 데이터 스트림을 암호화하는 경우, 더 작은 키를 사용하세요. 이 경험칙*는 성능상의 이유로 적용되지만, 고려해야 할 보안 문제도 있습니다. 키의 길이는 강도에 영향을 미치지만, 키 강도를 계산할 때 고려해야 할 유일한 요소는 길이가 아닙니다. 

(경험칙* = 관찰, 측정 등 경험에서 얻어진 법칙)

 
키의 복잡성도 중요한 요소입니다. 10자 길이의 비밀번호를 생각해 보세요. 하지만 10자 모두 숫자입니다. 10자리 비밀번호는 100억 가지의 가능한 순열이 있습니다. 반면에 숫자와 대문자, 소 문자를 합친 8자리 비밀번호는 218조 가지 이상의 순열이 있습니다. 길이는 두 글자 적지만 후자의 비밀번호는 전자보다 훨씬 강력합니다.
 

디지털 키의 길이와 강도

 

3. 키 스트레칭

키 스트레칭은 너무 짧거나 예측 가능한 키나 비밀번호를 강화하는 데 사용되는 방법입니다. 이 프로세스에는 해싱 알고리즘에 키나 비밀번호를 입력하여 향상된 키나 비밀번호를 생성하는 과정이 포함됩니다.
 
스트레칭 알고리즘의 예로는 비밀번호 기반 키 파생 함수 2(PBKDF2)와 BCRYPT1이 있습니다. BCRYPT는 OpenBSD와 다양한 Linux 배포판에서 키 스트레칭에 사용되는 기본 알고리즘입니다. BCRYPT를 사용하면 128비트 솔트가 추가되기 전에 키 또는 비밀번호가 여러 번 해시됩니다. 그런 다음 결합된 값이 한 번 더 해시됩니다. 최종 해시 출력은 복잡해진 키 또는 비밀번호입니다. 솔트값은 엔트로피를 증가시키기 위해 다른 값에 더해지는 무작위적인 값입니다.
 

키 스트레칭

 

B. 대칭 알고리즘

1. 대칭 알고리즘

대칭 알고리즘은 동일한 키를 사용하여 데이터를 암호화하고 복호화하는 데 사용되는 암호입니다. 대칭 알고리즘의 예는 아래의 사진과 같습니다. 스트림 암호인 RC4를 제외한 나머지는 블록 암호입니다.
 

대칭 알고리즘이란?

 

Data Encryption Standard (DES)

DES는 IBM이 개발하고 1970년대에 미국 국립표준기술원(NIST)에서 채택한 대칭키 암호입니다. DES는 48비트 키를 사용하여 64비트  데이터 블록을 암호화합니다.
 

3 DES

3 DES는 평문 데이터를 3번 암호화하는 데 사용되는 DES 암호입니다.
 
IDEA
IDEA는 1991년 James Massey와 Xuejia Lai가 개발한 64비트 블록 대칭 키 암호입니다. 128비트 대칭 키를 사용합니다.
 
AES
AES는 128, 192 또는 256비트 키를 사용하는 128비트 블록 대칭 키 암호입니다. 원래는 벨기에의 두 발명가의 이름을 따서 Rijndael 알고리즘이라고 명명되었지만, 2001년 NIST에서 암호화 표준으로 채택하면서 AES로 이름이 변경되었습니다.

 
RC4, RC5, RC6

RC RC4, RC5, RC6는 Ron Rivest가 개발한 대칭 키 암호입니다(RC6는 공동 발명). 하지만 RC4는 RC5와 RC6와는 다른 방법을 사용합니다.
• RC4는 40비트에서 2048비트 키를 사용하는 스트림 암호입니다.
• RC5는 1994년에 개발된 블록 암호입니다. 블록과 키 크기는 구성 가능합니다.
• RC6는 RC5에서 파생된 128비트 블록 암호로, AES 알고리즘 경연 대회의 요구 사항을 충족하도록 설계되었습니다. Rijndael 암호가 이 경연 대회에서 우승했습니다.
 

Blowfish/ Twofish

Blowfish는 가변 길이 키 크기를 가진 64비트 블록 대칭 키 암호로 1993년에 출시되었습니다.

Twofish는 128, 192, 256비트 키 크기를 지원하는 128비트 블록 대칭 키 암호로 1998년에 출시되었습니다. RC6와 마찬가지로 AES 알고리즘 경쟁에서 경쟁자였습니다. 부분적으로 Blowfish에서 파생되었습니다.
 

2. 대칭 암호화

대칭 암호화의 주요 장점은 비대칭 암호화보다 더 빠르게 데이터를 암호화하고 복호화할 수 있다는 것입니다. 이는 대칭 키가 비대칭 키보다 짧고 대칭 암호화는 동일한 키를 사용하여 암호화하고 복호화하기 때문입니다.
 
대칭 암호화는 조합 자물쇠와 비슷한 방식으로 작동합니다. Frank, Javier, Nora가 모두 같은 시설에서 일하고 모두 보안실에 들어가려면 열쇠가 필요하다고 상상해 보세요. 그들은 다른 교대로 일하고 고용주는 열쇠가 건물 밖으로 나가는 것을 허용하지 않습니다. 고용주는 조합 코드가 있는 잠금 상자에 열쇠를 보관합니다. Frank, Joe, Nora는 모두 열쇠에 접근하고 열쇠를 보관하기 위해 조합 코드가 필요합니다.
 
그러나 조합 자물쇠와의 이러한 유사성은 대칭 암호화의 한 가지 단점을 드러냅니다. 암호문을 해독하는 데 사용하는 것과 동일한 키를 평문을 암호화하는 데 사용하기 때문에 데이터를 보호하기 위해 키는 비밀로 유지되어야 합니다.
 

대칭 암호화

 

3. 대칭 암호화 작동원리

대칭 암호화를 사용하여 정보를 암호화하려면 암호화 애플리케이션이 대칭 키와 암호를 사용하여 평문을 암호문으로 변환합니다. 암호문을 해독하려면 동일한 대칭 키와 암호를 사용하여 암호문을 평문으로 변환해야 합니다. 하지만 여전히 문제는 수신자에게 키를 안전하게 보내는 방법입니다.
 

대칭 암호화 작동원리

 

C. 비대칭 알고리즘

1. 비대칭 알고리즘이란?

비대칭 알고리즘은 수학적으로 관련된 한 쌍의 키를 사용하여 암호화 연산에 사용되는 암호입니다. 비대칭 알고리즘은 암호화, 디지털 키 교환, 디지털 서명과 같은 작업을 할 수 있습니다. 
 
디지털 키 교환 작업을 통해 두 당사자는 인터넷과 같은 공개 채널을 통해 비밀 또는 키를 안전하게 교환할 수 있습니다. 비대칭 알고리즘과 암호화는 공개 키 알고리즘 및 암호화라고도 합니다. 
 
비대칭 알고리즘의 예는 아래와 같습니다.
 

비대칭 알고리즘이란?

 

2. 비대칭 암호화

비대칭 암호화의 주요 이점은 데이터 보안 강화입니다. 이는 사용자가 개인 키를 공유할 필요가 없기 때문입니다. 비대칭 암호화는 수학적으로 관련된 키 쌍을 사용합니다. 암호화의 경우 공개 키는 암호화하고 개인 키는 복호화합니다. 비대칭 암호화는 자물쇠와 열쇠와 유사합니다. 자물쇠는 물건을 보호하고 올바른 열쇠만이 자물쇠를 열 수 있습니다.
 
비대칭 암호화의 주요 단점은 암호화 프로세스가 대칭 암호화에 비해 매우 느리다는 것입니다. 이는 두 지점 간에 암호화된 데이터를 스트리밍 하거나 대량의 데이터를 암호화하고 복호화해야 할 때 문제가 됩니다. 비대칭 암호화의 느림은 이러한 상황에서 실행 가능하지 않습니다.
 

비대칭 암호화

 

3. 비대칭 암호화의 작동 원리

암호화 과정에서 보낸 사람의 암호화 애플리케이션은 수신자의 비대칭 공개 키와 비대칭 암호를 사용하여 평문 데이터를 암호문으로 변환합니다. 암호 해독 과정에서 수신자의 암호화 애플리케이션은 개인 암호 해독 키와 발신자가 사용한 동일한 비대칭 암호를 사용하여 암호문을 평문으로 변환합니다. 대칭 암호화의 가장 큰 단점은 수신자에게 키를 안전하게 전달한다는 것이고, 비대칭 암호화의 가장 큰 단점은 속도가 느리다는 것입니다.
 
대칭 암호화와 비대칭 암호화를 결합하면 두 암호화의 단점이 모두 해결됩니다. 대칭 암호화는 좋은 성능을 보장하기 위해 대량의 데이터를 보호하는 반면, 대칭 키(소량의 데이터)는 수신자의 공개 비대칭 키로 암호화됩니다. 따라서 "수신자에게 키를 안전하게 보내는 방법은?"이라는 질문에 대한 답이 나옵니다.
 

비대칭 암호화 작동원리