대칭키 알고리즘

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.