대칭키 알고리즘
Symmetric-key algorithm대칭키 알고리즘은[a] 평문의 암호화와 암호문의 복호화 모두에 동일한 암호키를 사용하는 암호화 알고리즘입니다.키는 동일하거나 두 [1]키 사이에 간단한 변환이 있을 수 있습니다.키는 실제로는 개인 정보 [2]링크를 유지하기 위해 사용할 수 있는 여러 당사자 간의 공유 비밀을 나타냅니다.공개키 암호화(비대칭키 [3][4]암호화라고도 함)와 비교하여 쌍방이 비밀키에 접근할 수 있는 요건은 대칭키 암호화의 주요 결점 중 하나입니다.단, 일반적으로 벌크 암호화에는 대칭 키 암호화 알고리즘이 적합합니다.키 크기가 작기 때문에 저장 공간이 줄어들고 전송 속도가 빨라집니다.따라서 비대칭 키 암호화가 대칭 키 [5][6]암호화에 대한 개인 키를 교환하기 위해 자주 사용됩니다.
종류들
대칭 키 암호화는 스트림 암호 또는 블록 [7]암호 중 하나를 사용할 수 있습니다.
- 스트림 암호는 메시지의 숫자(일반적으로 바이트) 또는 문자(대체 암호)를 한 번에 하나씩 암호화합니다.예를 들어 ChaCha20이 있습니다.
- 블록 암호는 여러 비트를 취하여 단일 단위로 암호화하고 블록 크기의 배수가 되도록 평문을 채웁니다.2001년 12월에 NIST에 의해 승인된 Advanced Encryption Standard(AES) 알고리즘은 128비트 블록을 사용합니다.
실장
일반적인 대칭 키 알고리즘의 예로는 Twofish, Spent, AES(Rijndael), Camelia, Salsa20, ChaCha20, Blowfish, CAST5, Kuznyechik, RC4, DES, 3DES, Skipjack, Safer 및 [9]IDEA 등이 있습니다.
암호화 프리미티브로 사용
대칭 암호는 일반적으로 [citation needed]암호화뿐만 아니라 다른 암호화 원본을 얻기 위해 사용됩니다.
메시지를 암호화해도 암호화 중에도 변경되지 않을 수 있습니다.따라서 메시지 인증 코드가 암호문에 추가되어 암호문에 대한 변경이 수신자에 의해 기록되도록 하는 경우가 많습니다.메시지 인증 코드는 AEAD 암호(AES-GCM 등)로 구성할 수 있습니다.
그러나 대칭 암호는 추가 [10]당사자가 관여하는 경우를 제외하고 거부하지 않는 목적으로 사용할 수 없습니다.ISO/IEC 13888-2 표준을 참조하십시오.
또 다른 응용 프로그램은 블록 암호에서 해시 함수를 구축하는 것입니다.이러한 방법에 대한 설명은 단방향 압축 함수를 참조하십시오.
대칭 암호 구축
현대의 많은 블록 암호는 호르스트 페이스텔이 제안한 구조에 기초하고 있다.Feistel의 구성은 그 자체가 [citation needed]반전되지 않는 다른 함수로부터 반전 가능한 함수를 구축할 수 있게 합니다.
대칭 암호 보안
대칭 암호는 지금까지 알려진 일반 텍스트 공격, 선택된 일반 텍스트 공격, 차등 암호 분석 및 선형 암호 분석에 취약했습니다.각 라운드의 기능을 신중하게 구축하면 공격의 [citation needed]성공 가능성을 크게 줄일 수 있습니다.또한 암호화 프로세스에서 키 길이 또는 라운드를 늘려 공격에 대한 보호를 강화할 수도 있습니다.그러나 이는 시스템이 [11]수행해야 하는 동작의 양에 따라 처리 능력이 향상되고 프로세스 실행 속도가 저하되는 경향이 있습니다.
키 관리
키 설정
대칭 키 알고리즘에서는, 메시지의 송신측과 수신측 모두 같은 비밀 키를 가지고 있을 필요가 있습니다.이전의 모든 암호화 시스템에서는 송신자 또는 수신자 중 한 명이 물리적으로 안전한 채널을 통해 해당 비밀 키의 복사본을 수신해야 했습니다.
현대의 거의 모든 암호화 시스템은 메시지의 대부분을 암호화하기 위해 내부적으로 대칭 키 알고리즘을 사용하고 있지만 Diffie를 사용하여 물리적으로 안전한 채널을 만들 필요가 없습니다.Hellman 키 교환 또는 기타 공개 키 프로토콜은 각 세션/컨버세이션의 새로운 비밀 키에 대해 안전하게 합의합니다(전송 비밀).
키 생성
키 전송에 비대칭 암호와 함께 사용되는 경우 의사 난수 키 생성기는 거의 항상 대칭 암호 세션키 생성에 사용됩니다.다만, 이러한 제너레이터나 그 초기화 벡터의 랜덤성이 결여되어 있으면, 과거에 암호 해독의 중단이 있었습니다.따라서 구현에서는 초기화를 [12][13][14]위해 높은 엔트로피 소스를 사용하는 것이 중요합니다.
상호 암호
이 섹션은 확인을 위해 추가 인용문이 필요합니다.(2015년 12월 (이 및 ) |
상호 암호란 암호 시스템을 얻기 위해 암호 시스템에 일반 텍스트를 입력하는 것과 마찬가지로 암호 시스템을 통해 동일한 위치에 암호 텍스트를 입력하여 일반 텍스트를 얻을 수 있는 암호입니다.상호 암호는 자가 수신 [15][16]암호라고도 합니다.
실제로 모든 기계 암호기는 입력된 각 문자에 대해 상호 암호, 즉 수학적 변환을 구현합니다.암호화용과 복호화용 두 종류의 머신을 설계하는 대신 모든 머신을 동일한 방법으로 [17]셋업(키 입력)할 수 있습니다.
상호 암호의 예는 다음과 같습니다.
- 앗바시
- 보퍼트 암호[18]
- 에니그마 기계[19]
- 마리 앙투아네트와 악셀 폰 페르센은 자기반복 [20]암호로 통신했다.
- Porta 폴리알파벳 암호는 자가 수신됩니다.[21]
- 보라색 암호[22]
- RC4
- ROT13
- XOR 암호
- 바츠야나 암호
현대 암호의 대부분은 스트림 암호로 분류할 수 있으며, 대부분은 상호 XOR 암호 결합기를 사용합니다.또한 블록 암호는 대부분 [23]각 라운드에서 상호 변환이 가능한 Feistel 암호 또는 Lai-Massey 방식을 사용합니다.
메모들
레퍼런스
- ^ Kartit, Zaid (February 2016). "Applying Encryption Algorithms for Data Security in Cloud Storage, Kartit, et al". Advances in Ubiquitous Networking: Proceedings of UNet15: 147. ISBN 9789812879905.
- ^ Delfs, Hans; Knebl, Helmut (2007). "Symmetric-key encryption". Introduction to cryptography: principles and applications. Springer. ISBN 9783540492436.
- ^ Mullen, Gary; Mummert, Carl (2007). Finite fields and applications. American Mathematical Society. p. 112. ISBN 9780821844182.
- ^ "Demystifying symmetric and asymmetric methods of encryption". Cheap SSL Shop. 2017-09-28.
- ^ Johnson, Leighton (2016), "Security Component Fundamentals for Assessment", Security Controls Evaluation, Testing, and Assessment Handbook, Elsevier, pp. 531–627, doi:10.1016/b978-0-12-802324-2.00011-7, ISBN 9780128023242, retrieved 2021-12-06
- ^ Alvarez, Rafael; Caballero-Gil, Cándido; Santonja, Juan; Zamora, Antonio (2017-06-27). "Algorithms for Lightweight Key Exchange". Sensors. 17 (7): 1517. doi:10.3390/s17071517. ISSN 1424-8220. PMC 5551094. PMID 28654006.
- ^ Pelzl & Paar (2010). Understanding Cryptography. Berlin: Springer-Verlag. p. 30. Bibcode:2010uncr.book.....P.
- ^ Bellare, Mihir; Rogaway, Phillip (2005). Introduction to Modern Cryptography (PDF).
- ^ Roeder, Tom. "Symmetric-Key Cryptography". www.cs.cornell.edu. Retrieved 2017-02-05.
- ^ "ISO/IEC 13888-2:2010". ISO. Retrieved 2020-02-04.
- ^ David R. Mirza Ahmad; Ryan Russell (2002). Hack proofing your network (2nd ed.). Rockland, MA: Syngress. pp. 165–203. ISBN 1-932266-18-6. OCLC 51564102.
- ^ 이안 골드버그와 데이비드 와그너."랜덤함과 Netscape 브라우저"1996년 1월 돕 박사의 일기.quote: "비밀키를 예측할 수 없는 난수 소스에서 생성하는 것이 중요합니다."
- ^ 토마스 리스텐파트, 스콧 일렉입니다「랜덤성이 나빠졌을 때: 가상 머신의 리셋의 취약성 및 헤지 전개 암호화(2010년)」를x 추상으로부터 인용한 CiteSeer: 10.1.183.3583. "랜덤 번호 생성기(RNG)는 암호화의 안전한 사용에 있어 항상 취약한 링크입니다."
- ^ "Symmetric Cryptography". James. 2006-03-11.
- ^ 폴 리버스와 마크 시몬스.암호 박물관'에니그마 어', 2009.
- ^ 크리스 크리스텐슨."단순 대체 암호", 2006.
- ^ 그레그 고벨입니다'암호의 기계화' 2018년.
- ^ "... 진정한 보퍼트 암호"우리는 상호 암호화가 있습니다.암호화와 복호화는 같은 것입니다." -- Helen.게인즈암호 분석: 암호와 그 해결책에 관한 연구". 2014. 페이지 121.
- ^ 그레그 고벨입니다'암호의 기계화' 2018년.
- ^ 프리드리히 바우어"복호화 비밀: 암호학의 방법과 최대치". 2006. 페이지 144
- ^ 데이비드 살로몬."데이터 및 컴퓨터 통신용 코드", 2006. 페이지 245
- ^ 그레그 고벨입니다'전쟁의 그림자 속의 US 코드브레이커'. 2018년.
- ^ says, J. H. (2021-01-14). "Block Cipher vs Stream Cipher: What They Are & How They Work". Hashed Out by The SSL Store™. Retrieved 2021-09-05.