대칭 키 암호
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
대칭 키 암호는 암호화와 복호화에 동일한 비밀 키를 사용하는 암호화 방식이다. 고대 카이사르 암호에서 시작되어 DES를 거쳐 AES, SEED 등 다양한 알고리즘으로 발전해왔다. 대칭 키 암호는 블록 암호와 스트림 암호로 분류되며, 속도가 빠르다는 장점이 있지만, 키 관리의 어려움과 양자 컴퓨터의 위협에 대한 대비가 필요하다. 키 교환 및 키 생성 과정에서 보안을 유지하는 것이 중요하며, 상호 암호와 같은 특수한 형태도 존재한다.
더 읽어볼만한 페이지
- 암호 알고리즘 - 이진 코드
이진 코드는 0과 1을 사용하여 정보를 표현하는 시스템으로, 고대 중국의 주역에서 기원하며, 컴퓨터 과학, 통신 등 다양한 분야에서 활용된다. - 암호 알고리즘 - 메시지 인증 코드
메시지 인증 코드(MAC)는 메시지 무결성을 보장하기 위해 사용되는 암호화 기법으로, 송신자와 수신자가 동일한 키를 공유하여 MAC 생성, 확인 과정을 거친다. - 표시 이름과 문서 제목이 같은 위키공용분류 - 라우토카
라우토카는 피지 비치레부섬 서부에 위치한 피지에서 두 번째로 큰 도시이자 서부 지방의 행정 중심지로, 사탕수수 산업이 발달하여 "설탕 도시"로 알려져 있으며, 인도에서 온 계약 노동자들의 거주와 미 해군 기지 건설의 역사를 가지고 있고, 피지 산업 생산의 상당 부분을 담당하는 주요 기관들이 위치해 있다. - 표시 이름과 문서 제목이 같은 위키공용분류 - 코코넛
코코넛은 코코넛 야자나무의 열매로 식용 및 유지로 사용되며, 조리되지 않은 과육은 100g당 354kcal의 열량을 내는 다양한 영양 성분으로 구성되어 있고, 코코넛 파우더의 식이섬유는 대부분 불용성 식이섬유인 셀룰로오스이며, 태국 일부 지역에서는 코코넛 수확에 훈련된 원숭이를 이용하는 동물 학대 문제가 있다. - 한국어 위키백과의 링크가 위키데이터와 같은 위키공용분류 - 라우토카
라우토카는 피지 비치레부섬 서부에 위치한 피지에서 두 번째로 큰 도시이자 서부 지방의 행정 중심지로, 사탕수수 산업이 발달하여 "설탕 도시"로 알려져 있으며, 인도에서 온 계약 노동자들의 거주와 미 해군 기지 건설의 역사를 가지고 있고, 피지 산업 생산의 상당 부분을 담당하는 주요 기관들이 위치해 있다. - 한국어 위키백과의 링크가 위키데이터와 같은 위키공용분류 - 코코넛
코코넛은 코코넛 야자나무의 열매로 식용 및 유지로 사용되며, 조리되지 않은 과육은 100g당 354kcal의 열량을 내는 다양한 영양 성분으로 구성되어 있고, 코코넛 파우더의 식이섬유는 대부분 불용성 식이섬유인 셀룰로오스이며, 태국 일부 지역에서는 코코넛 수확에 훈련된 원숭이를 이용하는 동물 학대 문제가 있다.
대칭 키 암호 | |
---|---|
개요 | |
종류 | 암호화 알고리즘 |
암호 방식 | 대칭 키 암호 |
다른 이름 | 비밀 키 암호 단일 키 암호 공유 키 암호 1-키 암호 개인 키 암호 |
관련 항목 | 비대칭 키 암호 |
보안 | |
안전성 | 키 길이, 알고리즘의 안전성, 구현 방식에 따라 달라짐 |
양자 내성 | 일부 알고리즘은 양자 공격에 취약함 |
특징 | |
장점 | 일반적으로 비대칭 키 암호보다 빠름 |
단점 | 키 분배의 어려움, 키 관리의 복잡성 |
알고리즘 예시 | |
블록 암호 | AES DES Triple DES Blowfish Twofish Serpent IDEA |
스트림 암호 | RC4 Salsa20 ChaCha20 |
2. 역사
가이우스 율리우스 카이사르가 고안했다고 알려진 카이사르 암호는 대칭 키 암호 방식이며, 기원전부터 존재해 온 오래된 암호 유형이다.[35] 카이사르 암호의 알고리즘은 원문의 각 문자에 대해 알파벳 상에서 일정 문자 수만큼 이동하여 얻어지는 문자열을 암호문으로 하는 것이며, 이동하는 문자 수가 키가 된다.[36] 예를 들어 "ABC"라는 원문에 대해 알파벳 상에서 (키) 3문자만큼 오른쪽으로 이동하면 "DEF"라는 암호문을 얻을 수 있다. 복호화하는 경우에는 반대로 왼쪽으로 3문자 이동하면 원문을 얻을 수 있다. 이처럼 알고리즘만 알아내면 해독이 쉬워지는 암호는 고전 암호로 분류되며, 반대로 알고리즘은 공개해도 키만 유출되지 않도록 관리하면 안전한 유형은 현대 암호로 분류된다.[35]
대칭 키 암호는 암호화하는 단위에 따라 스트림 암호와 블록 암호로 나눌 수 있다. 스트림 암호는 연속적인 비트/바이트를 계속해서 입력받아 암호화 비트/바이트를 생성하며, 블록 암호는 정해진 한 단위(블록)를 입력받아 암호화 블록을 생성한다.
1976년의 DES가 현대 암호의 시작이며, 이와 함께 암호학도 시작되었다고 할 수 있다.[37] 알고리즘을 공개해도 좋다는 것은 곧 논의의 대상이 될 수 있다는 것이며, 이로 인해 암호학 연구가 활발해졌다. 암호 해독 역시 새로운 방법이 고안되었다. 해독 방법의 예로는 전수 공격이라는 원시적인 방법이 있다. 또한, 2대 공격법으로 알려진 아디 샤미르에 의한 차분 공격, 마츠이 미쓰루에 의한 선형 공격이 있으며, 이들에 의해 DES와 FEAL도 해독되었다. 마츠이가 1995년에 개발한 MISTY1이라는 암호도 2015년에 Division Property라는 기술을 사용한 적분 공격에 의해 해독되었다.
3. 종류
3. 1. 블록 암호
블록 암호는 정해진 한 단위(블록)를 입력받아 그에 대응하는 암호화 블록을 생성하는 방식이다. 운용 모드를 조합하면 블록 단위보다 큰 입력을 처리할 수 있으며, 스트림 암호와 유사하게 지속적인 입력에 대해 동작할 수 있다(대신 입출력 단위는 스트림 암호보다 큰 블록 단위가 된다).[33] 대표적인 블록 암호로는 IDEA, AES, Camellia 등이 있다.[34]
3. 2. 스트림 암호
스트림 암호는 데이터 흐름을 비트 또는 바이트 단위로 연속적으로 암호화하는 방식이다. RC4, ChaCha20 등이 대표적인 스트림 암호이다.[9],[33] 스트림 암호는 일반적으로 블록 암호보다 처리 속도가 빠르다고 알려져 있다.[33]
4. 특징
대칭 키 암호 방식은 공개 키 암호 방식에 비해 처리 속도가 빠르다는 장점이 있지만, 암호화와 복호화에 동일한 키를 사용하므로 키 전달 및 관리에 주의해야 한다[34]。
4. 1. 키 관리 문제
대칭 키 암호 방식은 공개 키 암호 방식에 비해 처리 속도가 빠르지만, 키 전달에 주의해야 한다[34]。 암호화 방식이 알려져 있다면 키만으로 누구나 복호화할 수 있기 때문이다.암호화하는 측과 복호화하는 측은 같은 키를 가지고 있어야 하며, 키가 유출될 가능성은 키를 가진 사람이 많아질수록 높아진다[32]。 상대방에 따라 각각 다른 키를 사용하면 되지만, 이 경우 관리해야 할 키의 개수가 상대방 수만큼 늘어난다. 예를 들어 2명이 통신할 때는 1개의 키만 있으면 되지만, 3명은 3개, 4명은 6개, 5명은 10개의 키가 필요하다[34]。 n명 사이에서 필요한 키의 개수는 이다.
5. 구현
투피쉬, 서펜트, AES(Rijndael), 카멜리아, 살사20, 차차20, 블로우피쉬, 캐스트5, 쿠즈네치크, RC4, DES, 3DES, 스키프잭, 세이퍼, IDEA 등 다양한 대칭 키 암호 알고리즘이 존재한다.[10]
많은 현대 블록 암호는 호르스트 가이슬이 제안한 구조를 기반으로 한다. 가이슬 구조는 자체적으로는 가역적이지 않은 다른 함수로부터 가역적 함수를 구축하는 것을 가능하게 한다.
공통 키 암호는 방식에 따라 블록 암호와 스트림 암호로 크게 나뉘며, 스트림 암호가 로직 양이 적고 처리가 빠르다고 여겨진다.[33] 대표적인 공통 키 암호로는 블록 암호에 분류되는 IDEA, AES, Camellia[34], 스트림 암호에 분류되는 RC4, MUGI가 있다.[33]
6. 활용
대칭 키 암호는 암호화 외에도 암호화 기본 요소를 구현하는 데 널리 사용된다.
메시지가 암호화되었다고 해서 암호화 과정 중에 변경되지 않았음을 보장하는 것은 아니다. 따라서 암호문이 변경되었는지 수신자가 확인할 수 있도록 메시지 인증 코드를 암호문에 추가하기도 한다. AEAD 암호(예: AES-GCM)는 메시지 인증 코드를 포함하여 암호화와 인증을 함께 제공한다.
대칭 키 암호는 추가적인 당사자를 포함하지 않고는 부인 방지 목적으로 사용할 수 없다.[11]
블록 암호를 기반으로 해시 함수를 구축할 수도 있다. 일방향 압축 함수에서 이러한 방법에 대한 설명을 참조하라.
7. 보안
대칭 키 암호는 역사적으로 기지 평문 공격, 선택 평문 공격, 차분 암호 분석, 선형 암호 분석 등에 취약했다. 각 라운드에 대한 함수를 신중하게 구성하면 성공적인 공격 가능성을 크게 줄일 수 있다. 또한 키 길이를 늘리거나 라운드 수를 늘려 보안을 강화할 수 있지만, 처리 속도가 느려지는 경향이 있다.[12]
7. 1. 양자 컴퓨터 위협
양자 컴퓨터는 대칭 키 암호를 해독하는 속도를 기하급수적으로 증가시킬 수 있다. 특히 그로버 알고리즘은 기존의 무차별 대입 공격에 필요한 시간을 제곱근으로 단축시키지만, 키 길이를 두 배로 늘려 이러한 취약점에 대응할 수 있다.[14] 예를 들어, 128비트 AES 암호는 양자 컴퓨터 공격에 의해 1000경 년 이상 걸릴 계산이 약 6개월로 단축되므로 안전하지 않다. 반면, 256비트 AES 암호는 양자 컴퓨터로 해독하는 데 걸리는 시간이 기존 컴퓨터가 128비트 AES 암호를 해독하는 시간과 동일하므로, "양자 저항"을 가진다고 평가된다.[15][16][17]8. 키 관리
대칭 키 암호 방식은 발신자와 수신자가 같은 비밀 키를 공유해야 한다. 공개 키 암호 방식에 비해 처리 속도가 빠르다는 장점이 있지만, 키 전달에 주의해야 한다는 단점이 있다[34]。 암호화 방식이 알려져 있다면 키만으로 누구나 복호화할 수 있기 때문이다.
암호화하는 측과 복호화하는 측이 동일한 키를 가져야 하므로, 키가 유출될 가능성은 키 보유자가 많을수록 높아진다[32]。 상대방에 따라 각각 개별적인 키를 가지면 되지만, 관리해야 할 키의 개수는 상대방 수만큼 증가한다. 구체적으로 2명이 주고받는 경우에는 1 종류의 키만 있으면 되지만, 3명은 3 종류, 4명은 6 종류, 5명은 10 종류로 늘어난다[34]。 ''n'' 명 사이에서 필요한 키의 개수는 이다.
8. 1. 키 교환
초기 암호 시스템에서는 발신자 또는 수신자가 물리적으로 안전한 채널을 통해 비밀 키의 사본을 받아야 했다.[34]거의 모든 현대 암호 시스템은 여전히 메시지의 대부분을 암호화하기 위해 내부적으로 대칭 키 알고리즘을 사용하지만, 디피-헬만 키 교환 또는 다른 공개 키 프로토콜을 사용하여 각 세션/대화에 대한 새로운 비밀 키에 안전하게 합의함으로써 물리적으로 안전한 채널이 필요 없어졌다(순방향 비밀성).[34]
8. 2. 키 생성
의사 난수 키 생성기는 대칭 암호 세션 키를 생성하는 데 사용된다. 그러나 이러한 생성기나 초기화 벡터의 무작위성이 부족하면 암호 분석에 취약해질 수 있다.[18][19][20] 따라서 엔트로피 소스를 사용하여 초기화하는 것이 필수적이다.[18][19][20]9. 상호 암호 (Reciprocal cipher)
상호 암호는 평문을 암호화하는 과정과 암호문을 복호화하는 과정이 동일한 암호이다. '''자기 상호 암호'''라고도 한다.[21][22]
실질적으로 모든 기계식 암호기는 각 입력된 문자에 대해 수학적 대합인 상호 암호를 구현한다. 암호화용 기계와 복호화용 기계, 두 종류의 기계를 설계하는 대신, 모든 기계가 동일하며 같은 방식으로 설정(키잉)될 수 있다.[23]
상호 암호의 예는 다음과 같다.
- 아트바쉬 암호
- 보퍼 암호[24]
- 에니그마 기계[25]
- 마리 앙투아네트와 악셀 폰 페르센은 자기 상호 암호로 통신했다.[26]
- 포르타 다중 알파벳 암호는 자기 상호 암호이다.[27]
- 퍼플 암호[28]
- RC4
- ROT13
- XOR 암호
- 바트서야나 암호
대부분의 현대 암호는 스트림 암호로 분류될 수 있으며, 이 중 대부분은 상호 XOR 암호 결합기를 사용하거나 각 라운드에 상호 변환을 사용하는 피스텔 암호 또는 라이-매시 방식을 사용하는 블록 암호로 분류될 수 있다.
참조
[1]
논문
Applying Encryption Algorithms for Data Security in Cloud Storage, Kartit, et al.
https://books.google[...]
2016-02
[2]
서적
Introduction to cryptography: principles and applications
Springer
[3]
서적
Finite fields and applications
https://books.google[...]
American Mathematical Society
[4]
웹사이트
Demystifying symmetric and asymmetric methods of encryption
https://www.geeksfor[...]
Geeks for Geeks
2017-09-28
[5]
간행물
Security Component Fundamentals for Assessment
http://dx.doi.org/10[...]
Elsevier
2021-12-06
[6]
논문
Algorithms for Lightweight Key Exchange
2017-06-27
[7]
논문
Post-quantum cryptography
http://www.nature.co[...]
2017-09-14
[8]
서적
Understanding Cryptography
https://archive.org/[...]
Springer-Verlag
[9]
서적
Introduction to Modern Cryptography
https://web.cs.ucdav[...]
[10]
웹사이트
Symmetric-Key Cryptography
http://www.cs.cornel[...]
2017-02-05
[11]
웹사이트
ISO/IEC 13888-2:2010
http://www.iso.org/c[...]
2020-02-04
[12]
서적
Hack proofing your network
Syngress
2002
[13]
서적
Post-Quantum Cryptography
[14]
논문
Grover vs. McEliece
http://cr.yp.to/code[...]
2010-03-03
[15]
웹사이트
The Clock Is Ticking for Encryption
https://www.computer[...]
2022-12-05
[16]
웹사이트
AES-256 joins the quantum resistance
https://www.fierceel[...]
2022-12-05
[17]
간행물
Symmetric Cryptography
https://doi.org/10.1[...]
Springer Nature Switzerland
2023-09-12
[18]
문서
Randomness and the Netscape Browser
http://www.cs.berkel[...]
1996-01
[19]
웹사이트
When Good Randomness Goes Bad: Virtual Machine Reset Vulnerabilities and Hedging Deployed Cryptography
https://www.ndss-sym[...]
2010
[20]
웹사이트
Symmetric Cryptography
http://www.webhostin[...]
James
2006-03-11
[21]
문서
Enigma Uhr
https://www.cryptomu[...]
Crypto Museum
2009
[22]
문서
Simple Substitution Ciphers
https://www.nku.edu/[...]
2006
[23]
문서
The Mechanization of Ciphers
http://vc.airvectors[...]
2018
[24]
문서
Cryptanalysis: A Study of Ciphers and Their Solution
https://books.google[...]
2014
[25]
문서
The Mechanization of Ciphers
http://vc.airvectors[...]
2018
[26]
문서
Decrypted Secrets: Methods and Maxims of Cryptology
https://books.google[...]
2006
[27]
문서
Coding for Data and Computer Communications
https://books.google[...]
2006
[28]
문서
US Codebreakers In The Shadow Of War
http://vc.airvectors[...]
2018
[29]
웹사이트
暗号技術 Q&A
https://www.ipa.go.j[...]
"[[정보처리추진기구]]"
2017-10-02
[30]
문서
[31]
웹사이트
きょうつう‐かぎあんごう〔‐かぎアンガウ〕【共通鍵暗号】の意味
https://dictionary.g[...]
"[[NTT레조넌트]]"
2017-10-02
[32]
웹사이트
秘密鍵暗号
http://www.sophia-it[...]
"[[웨브리오]]"
2017-10-02
[33]
간행물
스트림 암호의 현황과 과제
https://doi.org/10.1[...]
[34]
웹사이트
共通鍵暗号方式
https://xtech.nikkei[...]
"[[닛케이BP]]"
2017-10-02
[35]
간행물
공통키 암호의 발전
https://doi.org/10.1[...]
[36]
웹사이트
シーザー暗号
https://kotobank.jp/[...]
朝日新聞社
2017-10-02
[37]
서적
[38]
문서
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com