대칭키 알고리즘

Symmetric-key algorithm

대칭키 알고리즘[a] 평문의 암호화와 암호문의 복호화 모두에 동일한 암호키를 사용하는 암호화 알고리즘입니다.키는 동일하거나 두 [1]키 사이에 간단한 변환이 있을 수 있습니다.키는 실제로는 개인 정보 [2]링크를 유지하기 위해 사용할 수 있는 여러 당사자 간의 공유 비밀을 나타냅니다.공개키 암호화(비대칭키 [3][4]암호화라고도 함)와 비교하여 쌍방이 비밀키에 접근할 수 있는 요건은 대칭키 암호화의 주요 결점 중 하나입니다.단, 일반적으로 벌크 암호화에는 대칭 키 암호화 알고리즘이 적합합니다.키 크기가 작기 때문에 저장 공간이 줄어들고 전송 속도가 빨라집니다.따라서 비대칭 키 암호화가 대칭 키 [5][6]암호화에 대한 개인 키를 교환하기 위해 자주 사용됩니다.

종류들

대칭 키 암호화는 스트림 암호 또는 블록 [7]암호하나를 사용할 수 있습니다.

  • 스트림 암호는 메시지의 숫자(일반적으로 바이트) 또는 문자(대체 암호)를 한 번에 하나씩 암호화합니다.를 들어 ChaCha20이 있습니다.
    • 치환 암호는 잘 알려진 암호이지만 빈도 [8]테이블을 사용하여 쉽게 복호화할 수 있습니다.
  • 블록 암호는 여러 비트를 취하여 단일 단위로 암호화하고 블록 크기의 배수가 되도록 평문을 채웁니다.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]위해 높은 엔트로피 소스를 사용하는 것이 중요합니다.

상호 암호

상호 암호란 암호 시스템을 얻기 위해 암호 시스템일반 텍스트를 입력하는 것과 마찬가지로 암호 시스템을 통해 동일한 위치에 암호 텍스트를 입력하여 일반 텍스트를 얻을 수 있는 암호입니다.상호 암호는 자가 수신 [15][16]암호라고도 합니다.

실제로 모든 기계 암호기는 입력된 각 문자에 대해 상호 암호, 즉 수학적 변환을 구현합니다.암호화용과 복호화용 두 종류의 머신을 설계하는 대신 모든 머신을 동일한 방법으로 [17]셋업(키 입력)할 수 있습니다.

상호 암호의 예는 다음과 같습니다.

현대 암호의 대부분은 스트림 암호로 분류할 수 있으며, 대부분은 상호 XOR 암호 결합기를 사용합니다.또한 블록 암호는 대부분 [23]각 라운드에서 상호 변환이 가능한 Feistel 암호 또는 Lai-Massey 방식을 사용합니다.

메모들

  1. ^ 대칭키 암호화의 다른 용어는 비밀키, 싱글키, 공유키, 원키개인키 암호화입니다.마지막 용어와 첫 번째 용어를 사용하면 공용암호화에 사용되는 용어와 유사한 용어로 모호성이 발생할 수 있습니다.대칭키 암호법은 비대칭키 암호법과 대조됩니다.

레퍼런스

  1. ^ 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.
  2. ^ Delfs, Hans; Knebl, Helmut (2007). "Symmetric-key encryption". Introduction to cryptography: principles and applications. Springer. ISBN 9783540492436.
  3. ^ Mullen, Gary; Mummert, Carl (2007). Finite fields and applications. American Mathematical Society. p. 112. ISBN 9780821844182.
  4. ^ "Demystifying symmetric and asymmetric methods of encryption". Cheap SSL Shop. 2017-09-28.
  5. ^ 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
  6. ^ 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.
  7. ^ Pelzl & Paar (2010). Understanding Cryptography. Berlin: Springer-Verlag. p. 30. Bibcode:2010uncr.book.....P.
  8. ^ Bellare, Mihir; Rogaway, Phillip (2005). Introduction to Modern Cryptography (PDF).
  9. ^ Roeder, Tom. "Symmetric-Key Cryptography". www.cs.cornell.edu. Retrieved 2017-02-05.
  10. ^ "ISO/IEC 13888-2:2010". ISO. Retrieved 2020-02-04.
  11. ^ 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.
  12. ^ 이안 골드버그와 데이비드 와그너."랜덤함과 Netscape 브라우저"1996년 1월 돕 박사의 일기.quote: "비밀키를 예측할 수 없는 난수 소스에서 생성하는 것이 중요합니다."
  13. ^ 토마스 리스텐파트, 스콧 일렉입니다「랜덤성이 나빠졌을 때: 가상 머신의 리셋의 취약성헤지 전개 암호화(2010년)」x 추상으로부터 인용한 CiteSeer: 10.1.183.3583. "랜덤 번호 생성기(RNG)는 암호화의 안전한 사용에 있어 항상 취약한 링크입니다."
  14. ^ "Symmetric Cryptography". James. 2006-03-11.
  15. ^ 폴 리버스와 마크 시몬스.암호 박물관'에니그마', 2009.
  16. ^ 크리스 크리스텐슨."단순 대체 암호", 2006.
  17. ^ 그레그 고벨입니다'암호의 기계화' 2018년.
  18. ^ "... 진정한 보퍼트 암호"우리는 상호 암호화가 있습니다.암호화와 복호화는 같은 것입니다." -- Helen.게인즈암호 분석: 암호와 해결책에 관한 연구". 2014. 페이지 121.
  19. ^ 그레그 고벨입니다'암호의 기계화' 2018년.
  20. ^ 프리드리히 바우어"복호화 비밀: 암호학의 방법과 최대치". 2006. 페이지 144
  21. ^ 데이비드 살로몬."데이터컴퓨터 통신용 코드", 2006. 페이지 245
  22. ^ 그레그 고벨입니다'전쟁의 그림자 속의 US 코드브레이커'. 2018년.
  23. ^ 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.