EITC/IS/CCF Classical Cryptography Fundamentals는 개인 키 및 공개 키 암호화를 모두 포함하는 고전 암호화의 이론 및 실제 측면에 대한 유럽 IT 인증 프로그램으로, 다음과 같이 인터넷에서 널리 사용되는 실용적인 암호를 소개합니다. RSA.
EITC/IS/CCF Classical Cryptography Fundamentals의 커리큘럼은 개인 키 암호화, 모듈식 산술 및 기록 암호, 스트림 암호, 난수, OTP(One-Time Pad) 무조건 보안 암호(솔루션을 제공한다는 가정하에) 소개를 다룹니다. 예를 들어 양자 키 분배(Quantum Key Distribution, QKD), 선형 피드백 시프트 레지스터, 데이터 암호화 표준(DES 암호, 암호화, 키 일정 및 복호화 포함), 고급 암호화 표준(AES, Galois 필드 도입)과 같은 키 분배 문제 기반 암호화), 블록 암호의 응용(작동 모드 포함), 다중 암호화 및 무차별 대입 공격에 대한 고려, 수 이론을 다루는 공개 키 암호화 소개, 유클리드 알고리즘, 오일러의 파이 함수 및 오일러의 정리, 다음 구조 내에서 RSA 암호 시스템 및 효율적인 지수에 대한 소개, 포괄적인 비디오 교훈 c 이 EITC 인증에 대한 참고 자료입니다.
암호화는 적이 있을 때 안전한 통신 방법을 나타냅니다. 더 넓은 의미에서 암호화는 제XNUMX자 또는 일반 대중이 개인(암호화된) 메시지에 액세스하는 것을 방지하는 프로토콜을 만들고 분석하는 프로세스입니다. 현대의 고전 암호화는 데이터 기밀성, 데이터 무결성, 인증 및 부인 방지와 같은 정보 보안의 몇 가지 주요 기능을 기반으로 합니다. 자연을 특성화하는 근본적으로 다른 양자 물리학 규칙을 기반으로 하는 양자 암호와 대조적으로 고전 암호는 고전 물리학 법칙에 기반한 암호를 나타냅니다. 수학, 컴퓨터 과학, 전기 공학, 통신 과학 및 물리학 분야는 모두 고전 암호학에서 만납니다. 전자 상거래, 칩 기반 지불 카드, 디지털 통화, 컴퓨터 암호 및 군사 통신은 모두 암호화 응용 프로그램의 예입니다.
현재 시대 이전에 암호화는 정보를 읽을 수 있는 것에서 이해할 수 없는 말도 안되는 것으로 바꾸는 암호화와 거의 동의어였습니다. 공격자가 암호화된 메시지에 액세스하는 것을 방지하기 위해 발신자는 의도된 수신자와만 디코딩 프로세스를 공유합니다. 발신자의 이름 Alice("A"), 수신자의 Bob("B"), 적의 Eve("도청자")는 암호화 문헌에서 자주 사용됩니다.
제XNUMX차 세계 대전에서 로터 암호 기계가 개발되고 제XNUMX차 세계 대전에서 컴퓨터가 도입된 이후 암호화 방법은 점점 더 복잡해지고 그 응용은 더욱 다양해졌습니다.
현대 암호학은 수학적 이론과 컴퓨터 과학 실습에 크게 의존합니다. 암호화 방법은 계산적 경도 가정을 기반으로 구축되어 어떤 상대도 실제로 깨기 어렵게 만듭니다. 잘 설계된 시스템에 침입하는 것은 이론적으로 가능하지만 실제로는 불가능합니다. 이러한 계획은 적절하게 구성되어 있는 경우 "계산적으로 안전"하다고 합니다. 그럼에도 불구하고 이론적 혁신(예: 정수 인수분해 방법의 개선)과 더 빠른 컴퓨팅 기술은 지속적인 재평가를 필요로 하고 필요한 경우 이러한 설계를 적용해야 합니다. XNUMX회용 패드와 같이 정보이론적으로 안전한 시스템은 무한한 컴퓨팅 성능으로도 깨지지 않는 것으로 입증될 수 있지만 이론적으로 가장 잘 깨지지만 계산적으로 안전한 체계보다 실제로 사용하기가 훨씬 더 어렵습니다.
정보화 시대에 암호화 기술의 발전은 다양한 법적 문제를 야기했습니다. 많은 국가에서 암호를 무기로 분류하여 간첩 및 선동의 가능성으로 인해 암호 사용 및 수출을 제한하거나 금지하고 있습니다. 수사관은 암호화가 합법적인 일부 장소에서 조사와 관련된 문서에 대한 암호화 키의 양도를 강요할 수 있습니다. 디지털 미디어의 경우 암호화는 디지털 저작권 관리 및 저작권 침해 분쟁에서도 핵심적인 역할을 합니다.
"암호화"라는 용어("암호화"와 반대)는 XNUMX세기에 Edgar Allan Poe의 단편 "The Gold-Bug"에서 처음 사용되었습니다.
최근까지 암호화는 일반 데이터(평문이라고 함)를 읽을 수 없는 형식(암호문이라고 함)으로 바꾸는 행위인 "암호화"만을 거의 언급했습니다. 복호화는 암호화의 반대, 즉 이해할 수 없는 암호문에서 평문으로 가는 것입니다. 암호(또는 암호)는 암호화 및 암호 해독을 역순으로 수행하는 기술 집합입니다. 알고리즘과 각각의 경우 "키"는 암호의 세부적인 실행을 담당합니다. 키는 암호문을 해독하는 데 사용되는 비밀(커뮤니케이터만 알고 있는 것이 좋음)입니다. 일반적으로 문자열(사용자가 기억할 수 있도록 짧은 것이 이상적)입니다. "암호화 시스템"은 형식적인 수학 용어로 각 키에 해당하는 유한한 잠재적 평문, 암호문, 키 및 암호화 및 암호 해독 절차의 요소의 정렬된 모음입니다. 키는 형식적으로나 실질적으로나 중요합니다. 고정 키가 있는 암호는 암호 정보만 사용하여 쉽게 깨질 수 있고 대부분의 목적에서 쓸모없거나 역효과가 날 수 있기 때문입니다.
역사적으로 암호는 암호화 또는 복호화를 위한 인증 또는 무결성 검사와 같은 추가 절차 없이 자주 사용되었습니다. 암호 시스템은 대칭 및 비대칭의 두 가지 범주로 나뉩니다. 동일한 키(비밀 키)는 1970년대까지 알려진 유일한 대칭 시스템에서 메시지를 암호화하고 해독하는 데 사용됩니다. 대칭 시스템은 더 짧은 키 길이를 사용하기 때문에 대칭 시스템의 데이터 조작은 비대칭 시스템보다 빠릅니다. 비대칭 시스템은 "공개 키"로 통신을 암호화하고 유사한 "개인 키"를 사용하여 해독합니다. 비대칭 시스템을 사용하면 두 키 간의 관계를 결정하기 어렵기 때문에 통신 보안이 향상됩니다. RSA(Rivest-Shamir-Adleman) 및 ECC는 비대칭 시스템(타원 곡선 암호화)의 두 가지 예입니다. 이전 DES를 대체하여 널리 사용되는 AES(Advanced Encryption Standard)는 고품질 대칭 알고리즘(Data Encryption Standard)의 한 예입니다. XNUMX세기 초에 일회용 패드가 도입되기 이전에 출처를 불문하고 피그 라틴(Pig Latin)이나 다른 캔트(cant)와 같은 다양한 어린이 언어 얽힘 기술, 그리고 실제로 모든 암호 체계는 심각하게 의미가 있었으나 품질이 낮은 예입니다. 대칭 알고리즘.
"코드"라는 용어는 암호화 또는 메시지 은닉 기술을 지칭하기 위해 구어체로 자주 사용됩니다. 그러나 암호화에서 코드는 일반 텍스트 단위(즉, 의미 있는 단어 또는 구문)에 대한 코드 단어의 대체를 나타냅니다(예: "wallaby"는 "attack at dawn"을 대체함). 대조적으로, 암호문은 암호문을 형성하기 위해 그러한 수준 아래의 요소(예를 들어, 문자, 음절 또는 문자 쌍)를 수정하거나 대체함으로써 생성됩니다.
암호 분석은 필요한 키에 액세스하지 않고도 암호화된 데이터를 해독하는 방법에 대한 연구입니다. 즉, 암호화 체계 또는 그 구현을 "파괴"하는 방법에 대한 연구입니다.
영어에서 일부 사람들은 "암호화"와 "암호화"라는 용어를 같은 의미로 사용하는 반면, 다른 사람들(일반적인 미군 관행 포함)은 암호 기술의 사용 및 실행을 나타내는 데 "암호화"를 사용하고 결합된 기술을 나타내는 "암호화"를 사용합니다. 암호학 및 암호 분석 연구. 영어는 "암호화"(암호학자들이 사용하는)가 항상 두 번째 의미로 사용되는 다른 여러 언어보다 적응력이 뛰어납니다. RFC 2828에 따르면 스테가노그래피는 때때로 암호학에 포함됩니다.
암호 언어학은 암호학 또는 암호학(예: 빈도 통계, 문자 조합, 보편적 패턴 등)과 관련이 있는 언어 속성에 대한 연구입니다.
암호화 및 암호 분석은 오랜 역사를 가지고 있습니다.
암호학의 역사가 주요 기사입니다.
현대 시대 이전에 암호화는 주로 메시지 기밀성(즉, 암호화)과 관련이 있었습니다. 메시지를 이해할 수 있는 형식에서 이해할 수 없는 형식으로 변환하고 다시 한 번 메시지를 비밀 지식(즉, 암호 해독에 필요한 키) 없이 인터셉터나 도청자가 읽을 수 없도록 만듭니다. 해당 메시지). 암호화는 스파이, 군사 지도자 및 외교관의 대화를 비공개로 유지하도록 설계되었습니다. 최근 수십 년 동안 이 분야는 무엇보다도 메시지 무결성 검사, 발신자/수신자 신원 인증, 디지털 서명, 대화형 증명 및 보안 계산과 같은 기술을 통합하도록 성장했습니다.
가장 일반적인 두 가지 고전적 암호 유형은 문자 또는 문자 그룹을 다른 문자 또는 문자 그룹으로 체계적으로 대체하는 전치 암호(예: 'hello world'는 사소하게 간단한 재배열 방식에서 'ehlol owrdl'이 됨)와 대체 암호입니다. 문자 또는 문자 그룹을 다른 문자 또는 문자 그룹으로 체계적으로 대체합니다(예: 'fly at Once'는 'gmz bu'가 됩니다. 둘 중 하나의 단순 버전은 교활한 적들로부터 많은 개인 정보를 제공한 적이 없습니다. Caesar 암호는 초기 대체 암호였습니다. 일반 텍스트의 각 문자는 알파벳 아래의 특정 위치에 있는 문자로 대체되었습니다. Suetonius에 따르면 Julius Caesar는 1900인 교대로 이를 사용하여 그의 장군들과 통신했습니다. 초기 히브리 암호인 Atbash가 그 예입니다. 가장 오래된 것으로 알려진 암호 사용법은 이집트에서 돌에 새겨진 암호문(기원전 XNUMX년경)이지만, 이것은 글을 읽을 수 있는 관중의 즐거움을 위해 만들어졌을 가능성이 있습니다. 정보를 숨기기 위해.
지하실은 고대 그리스인들에게 알려진 것으로 보고됩니다(예: 스파르타 군대가 사용했다고 주장되는 scytale 전치 암호). 스테가노그래피(비밀을 유지하기 위해 통신의 존재조차 숨기는 관행)도 고대에 발명되었습니다. 헤로도토스에 따르면, 노예의 면도한 머리에 문신을 새기고 다시 자란 머리카락 아래에 숨겨져 있는 문구. 정보를 숨기기 위해 보이지 않는 잉크, 마이크로도트 및 디지털 워터마크를 사용하는 것이 스테가노그래피의 최신 사례입니다.
Kautiliyam과 Mulavediya는 인도의 2000년 된 Vtsyyana의 Kamasutra에 언급된 두 가지 유형의 암호입니다. Kautiliyam의 암호 문자 대체는 모음이 자음이 되는 것과 같은 음성 관계를 기반으로 합니다. Mulavediya의 암호 알파벳은 일치하는 문자와 상호의 사용으로 구성됩니다.
이슬람 학자 Ibn al-Nadim에 따르면 Sassanid Persia에는 공식 서신에 사용되는 h-dabrya(문자 그대로 "왕의 문자")와 다른 사람들과 비밀 메시지를 교환하는 데 사용되는 rz-saharya의 두 가지 비밀 문자가 있었습니다. 국가.
David Kahn은 자신의 책 The Codebreakers에서 현대 암호학이 암호 분석 절차를 처음으로 신중하게 문서화한 아랍인들과 함께 시작되었다고 썼습니다. 암호 메시지의 책은 Al-Khalil(717–786)에 의해 작성되었으며 모음이 있거나 없는 모든 생각할 수 있는 아랍어 단어를 나열하기 위해 순열 및 조합의 초기 사용을 포함합니다.
고전 암호(일부 현대 암호 포함)에 의해 생성된 암호 텍스트는 암호를 해독하는 데 사용할 수 있는 일반 텍스트에 대한 통계 정보를 나타냅니다. 그러한 거의 모든 암호는 주파수 분석을 발견한 후 지능적인 공격자에 의해 깨질 수 있었으며, 아마도 9세기에 아랍 수학자이자 다수학자 Al-Kindi(Alkindus라고도 함)에 의해 깨졌을 것입니다. 고전 암호는 비록 대부분 퍼즐이지만(암호화 참조) 오늘날에도 여전히 인기가 있습니다. Risalah fi Istikhraj al-Mu'amma(암호화 메시지 해독을 위한 원고)는 Al-Kindi가 작성했으며 빈도 분석 암호 분석 기술의 알려진 첫 번째 사용법을 문서화했습니다.
빈도 분포를 평평하게 하는 경향이 있는 동음이의어 암호와 같은 일부 확장 기록 암호화 접근 방식은 언어 문자 빈도의 이점을 얻지 못할 수 있습니다. 언어 문자 그룹(또는 n-그램) 빈도는 해당 암호에 대한 공격을 줄 수 있습니다.
1467년경 Leon Battista Alberti가 다알파벳 암호를 발견할 때까지, Al-Kindi가 이미 알고 있었다는 증거가 있지만 거의 모든 암호는 빈도 분석 접근 방식을 사용하여 암호 분석에 액세스할 수 있었습니다. Alberti는 통신의 다른 부분에 대해 별도의 암호(또는 대체 알파벳)를 사용하는 아이디어를 생각해 냈습니다. 그는 또한 그의 디자인의 일부를 실행하는 바퀴인 최초의 자동 암호화 장치로 생각되는 것을 만들었습니다. 다중 알파벳 암호인 Vigenère 암호의 암호화는 사용되는 키워드의 문자를 기반으로 하는 문자 대체를 제어하는 키워드에 의해 제어됩니다. Charles Babbage는 Vigenère 암호가 XNUMX세기 중반에 Kasiski 분석에 취약하다는 것을 보여주었지만 Friedrich Kasiski는 XNUMX년 후에 그의 발견을 발표했습니다.
빈도 분석이 많은 암호에 대해 강력하고 광범위한 기술이라는 사실에도 불구하고 많은 암호 분석가가 이 기술을 인식하지 못하기 때문에 암호화는 실제로 효과적이었습니다. 빈도 분석을 사용하지 않고 메시지를 해독하려면 사용된 암호와 관련된 키에 대한 지식이 필요하므로 간첩, 뇌물, 절도, 탈북 및 기타 암호 해독적으로 정보가 없는 전술이 더 매력적입니다. 암호 알고리즘의 비밀은 궁극적으로 19세기에 메시지 보안에 대한 합리적이거나 실현 가능한 보증으로 인정되지 않았습니다. 사실, 상대방이 암호 알고리즘 자체를 완전히 이해하더라도 적절한 암호 체계(암호 포함)는 안전하게 유지되어야 합니다. 키의 보안은 좋은 암호가 공격에 직면했을 때 기밀성을 유지하기에 충분해야 합니다. Auguste Kerckhoffs는 1883년에 이 기본 원리를 처음으로 발표했으며 Kerckhoffs의 원리로 알려져 있습니다. 정보 이론의 창시자이자 이론적 암호학의 기초인 Claude Shannon은 이를 '적군이 시스템을 알고 있다'라는 Shannon의 격언으로 다시 표현했습니다.
암호를 돕기 위해 많은 물리적 장치와 지원이 활용되었습니다. 스파르타인이 전치 암호 도구로 사용한 것으로 추정되는 막대인 고대 그리스의 scytale이 최초의 것 중 하나였을 수 있습니다. 스테가노그래피에도 사용되었던 사이퍼 그릴과 같은 다른 보조 도구가 중세 시대에 고안되었습니다. 다중알파벳 암호의 개발과 함께 Alberti의 암호 디스크, Johannes Trithemius의 tabula recta 체계 및 Thomas Jefferson의 바퀴 암호와 같은 보다 정교한 보조 장치가 사용 가능해졌습니다(공개적으로 알려지지 않았으며 1900년경 Bazeries에 의해 독립적으로 재발명됨). 1920년대 후반부터 제XNUMX차 세계 대전까지 독일 정부와 군대에서 유명하게 사용된 로터 기계를 포함하여 많은 기계적 암호화/복호화 시스템이 XNUMX세기 초에 고안되고 특허를 받았습니다. XNUMX차 세계 대전 이후, 이러한 기계 설계의 고품질 인스턴스에 의해 구현된 암호는 암호 분석 난이도의 상당한 증가를 가져왔습니다.
암호학은 주로 XNUMX세기 초 이전의 언어 및 사전 패턴과 관련이 있었습니다. 그 이후로 초점이 발전했으며 이제 암호학에는 정보 이론, 계산 복잡성, 통계, 조합론, 추상 대수학, 정수론 및 유한 수학 일반의 측면이 포함됩니다. 암호화는 공학의 한 유형이지만 능동적이고 지능적이며 적대적인 저항을 다룬다는 점에서 독특하지만 토목 또는 화학 공학과 같은 다른 유형의 공학은 중립적인 자연력만 처리해야 합니다. 암호화의 어려움과 양자 물리학 간의 연관성도 조사되고 있습니다.
디지털 컴퓨터와 전자공학의 발전은 훨씬 더 정교한 암호의 생성을 가능하게 하여 암호 분석을 도왔습니다. 또한, 서면 언어 텍스트를 독점적으로 암호화하는 기존 암호와 달리 컴퓨터는 모든 이진 형식으로 표시될 수 있는 모든 유형의 데이터 암호화를 허용했습니다. 이것은 새롭고 결정적이었습니다. 암호 설계와 암호 분석 모두에서 컴퓨터는 언어 암호를 대체했습니다. 주로 전통적인 문자(즉, 문자 및 숫자)를 직접 조작하는 고전적 및 기계적 방법과 달리 많은 컴퓨터 암호는 이진 비트 시퀀스(때로는 그룹 또는 블록)에서 작동합니다. 반면에 컴퓨터는 증가된 암호 복잡성을 부분적으로 보상한 암호 분석을 지원했습니다. 그럼에도 불구하고 좋은 현대 암호는 암호 분석보다 앞서 있습니다. 좋은 암호를 사용하는 것은 매우 효율적이지만(즉, 빠르고 메모리나 CPU 기능과 같은 리소스가 거의 필요하지 않음) 암호를 깨는 데 필요한 것보다 훨씬 더 많은 노력이 필요합니다. 암호 해독을 효과적으로 불가능하게 만드는 고전 암호.
현대 암호학이 데뷔합니다.
새로운 기계 장치의 암호 분석은 어렵고 시간이 많이 소요되는 것으로 판명되었습니다. 40차 세계 대전 중 영국 Bletchley Park의 암호 해독 활동은 반복적인 작업을 수행하기 위한 보다 효율적인 방법의 발명을 촉진했습니다. 세계 최초의 완전한 전자, 디지털, 프로그램 가능 컴퓨터인 Colossus는 독일군의 Lorenz SZ42/XNUMX 기계가 만든 암호 해독을 돕기 위해 개발되었습니다.
암호학은 1970년대 중반에 시작된 비교적 새로운 개방형 학술 연구 분야입니다. IBM 직원은 연방(즉, 미국) 데이터 암호화 표준이 된 알고리즘을 고안했습니다. Whitfield Diffie와 Martin Hellman은 핵심 합의 알고리즘을 발표했습니다. Martin Gardner의 Scientific American 칼럼은 RSA 알고리즘을 발표했습니다. 이후 암호화는 일반적으로 통신, 컴퓨터 네트워크 및 컴퓨터 보안을 위한 기술로 인기를 얻었습니다.
여러 현대 암호화 접근 방식은 정수 인수 분해 또는 이산 로그 문제와 같은 특정 수학적 문제가 다루기 힘든 경우에만 키를 비밀로 유지할 수 있기 때문에 추상 수학과 깊은 관련이 있습니다. 100% 안전한 것으로 입증된 소수의 암호화 시스템이 있습니다. Claude Shannon은 일회용 패드가 그 중 하나임을 증명했습니다. 특정 조건에서 안전한 것으로 입증된 몇 가지 주요 알고리즘이 있습니다. 예를 들어, 극도로 큰 정수를 인수분해할 수 없다는 것은 RSA 및 기타 시스템이 안전하다고 믿는 근거이지만 근본적인 수학적 문제가 아직 해결되지 않은 상태로 남아 있기 때문에 깨지지 않는다는 증거는 달성할 수 없습니다. 실제로 이것들은 널리 사용되며 대부분의 유능한 관찰자들은 실제로는 깨지지 않는다고 생각합니다. Michael O. Rabin이 개발한 것과 같이 RSA와 유사한 시스템이 존재하며, 이는 n = pq를 인수분해하는 것이 불가능할 때 안전하다고 판명되었습니다. 그러나 실제로는 쓸모가 없습니다. 이산 로그 문제는 일부 다른 암호 시스템이 안전하고 이산 로그 문제의 해결 가능성 또는 해결 불가능성 측면에서 안전하다고 입증된 유사하고 덜 실용적인 시스템이 있다고 믿는 기초입니다.
암호 알고리즘 및 시스템 설계자는 아이디어를 작업할 때 암호 기록을 인식하는 것 외에도 가능한 미래 발전을 고려해야 합니다. 예를 들어, 컴퓨터 처리 능력이 향상됨에 따라 무차별 대입 공격의 폭이 커졌고 따라서 필요한 키 길이도 커졌습니다. 포스트 양자 암호화를 탐구하는 일부 암호화 시스템 설계자는 이미 양자 컴퓨팅의 잠재적 결과를 고려하고 있습니다. 이러한 기계의 적절한 구현이 임박했다고 발표된 것은 단순한 추측 이상으로 선제적 주의가 필요하도록 만들 수 있습니다.
현대의 고전 암호화
대칭(또는 개인 키) 암호화는 발신자와 수신자가 동일한 키를 사용하는 암호화 유형입니다(또는 덜 일반적으로 키가 다르지만 쉽게 계산할 수 있는 방식으로 관련되고 비밀리에 비공개로 유지됩니다. ). 1976년 XNUMX월까지 이것은 공개적으로 알려진 유일한 암호화 유형이었습니다.
블록 암호와 스트림 암호는 모두 대칭 키 암호를 구현하는 데 사용됩니다. 블록 암호는 스트림 암호처럼 개별 문자가 아닌 일반 텍스트 블록으로 입력을 암호화합니다.
미국 정부는 DES(Data Encryption Standard)와 AES(Advanced Encryption Standard)를 암호화 표준으로 지정했습니다(AES가 설정되면 DES의 인증은 결국 철회되었지만). DES(특히 여전히 승인되고 훨씬 더 안전한 Triple-DES 변형)는 공식 표준으로의 사용 중단에도 불구하고 여전히 인기가 있습니다. ATM 암호화에서 전자 메일 개인 정보 보호 및 안전한 원격 액세스에 이르기까지 광범위한 응용 프로그램에서 사용됩니다. 다양한 수준의 성공으로 수많은 다양한 블록 암호가 발명 및 출시되었습니다. FEAL과 같은 자격을 갖춘 실무자가 설계한 것을 포함하여 많은 것이 광범위하게 손상되었습니다.
스트림 암호는 블록 암호와 달리 일회성 패드와 유사하게 일반 텍스트 비트별 또는 문자별로 결합된 무한히 긴 키 자료 스트림을 생성합니다. 스트림 암호의 출력 스트림은 암호 기능에 따라 변경되는 은폐된 내부 상태에서 생성됩니다. 비밀 키 자료는 처음에 해당 내부 상태를 설정하는 데 사용됩니다. 스트림 암호 RC4가 광범위하게 사용됩니다. 의사 난수 생성기 대신에 키스트림의 블록을 만들고 키스트림의 각 비트와 함께 일반 텍스트의 각 비트에 XOR 연산을 사용하여 블록 암호를 스트림 암호로 사용할 수 있습니다.
메시지 인증 코드(MAC)는 암호화 해시 기능과 유사하지만 수신 시 해시 값을 검증하는 데 비밀 키를 사용할 수 있다는 점을 제외하고는 다음과 같습니다. 이 추가 복잡성은 네이키드 다이제스트 알고리즘에 대한 공격을 방지하므로 가치가 있는 것으로 간주됩니다. 세 번째 종류의 암호화 기술은 암호화 해시 함수입니다. 예를 들어, 어떤 길이의 메시지라도 입력으로 사용하고 디지털 서명에 사용할 수 있는 작은 고정 길이 해시를 출력합니다. 공격자는 좋은 해시 알고리즘을 사용하여 동일한 해시를 생성하는 두 개의 메시지를 찾을 수 없습니다. MD4는 널리 사용되지만 지금은 잘못된 해시 함수입니다. MD5의 향상된 형태인 MD4도 마찬가지로 널리 사용되지만 실제로는 깨졌습니다. MD5 유사 해시 알고리즘의 보안 해시 알고리즘 시리즈는 미국 국가안보국(National Security Agency)에서 개발했습니다. 미국 표준 당국은 "NIST의 전체 해시 알고리즘의 견고성을 크게 향상시키기 위한 새로운 표준을 개발하는 것이 보안 관점에서 "신중한" 것이라고 결정했습니다. 툴킷.” SHA-1은 널리 사용되며 MD5보다 더 안전하지만 암호 분석가들은 이에 대한 공격을 식별했습니다. SHA-2 제품군은 SHA-1을 개선하지만 2011년 현재 충돌에 취약합니다. SHA-2 제품군은 SHA-1을 개선하지만 충돌에 취약합니다. 결과적으로 2012년까지 SHA-3으로 알려진 새로운 미국 국가 표준을 선택하기 위한 해시 함수 설계 경쟁이 열렸습니다. 경쟁은 2년 2012월 3일 NIST(National Institute of Standards and Technology)가 Keccak을 새로운 SHA-XNUMX 해시 알고리즘으로 발표하면서 종료되었습니다. 암호화 해시 함수는 가역 블록 및 스트림 암호와 달리 원래 입력 데이터를 복구하는 데 사용할 수 없는 해시된 출력을 제공합니다. 암호화 해시 함수는 신뢰할 수 없는 출처에서 얻은 데이터의 신뢰성을 확인하거나 보호 수준을 추가하는 데 사용됩니다.
메시지 또는 메시지 집합이 다른 키와 다른 키를 가질 수 있지만 대칭 키 암호 시스템은 암호화 및 암호 해독에 동일한 키를 사용합니다. 대칭 암호를 안전하게 사용하기 위해 필요한 키 관리는 큰 단점입니다. 통신 당사자의 각 개별 쌍은 이상적으로는 다른 키를 공유해야 하며 전송된 각 암호문에 대해 다른 암호문을 공유해야 합니다. 필요한 키의 수는 네트워크 참여자의 수에 정비례하여 증가하므로 모든 참여자를 일관되고 비밀로 유지하기 위해 복잡한 키 관리 기술이 필요합니다.
Whitfield Diffie와 Martin Hellman은 획기적인 1976년 작업에서 공개 키(비대칭 키라고도 함) 암호화 개념을 발명했습니다. 여기에서 두 개의 별개이지만 수학적으로 관련된 키(공개 키와 개인 키)가 사용됩니다. 그것들은 불가분의 관계에 있지만, 공개 키 시스템은 하나의 키('개인 키')를 다른 키('공개 키')에서 계산하는 것이 계산적으로 불가능하도록 구축되었습니다. 오히려 두 키 모두 연결된 쌍으로 비밀리에 생성됩니다. 역사가 데이비드 칸(David Kahn)에 따르면 공개 키 암호화는 "르네상스 시대에 다중 알파벳 대체가 발생한 이후 이 분야에서 가장 혁명적인 새로운 개념"입니다.
공개키 암호시스템에서 공개키는 자유롭게 전송할 수 있지만 결합된 개인키는 숨겨져 있어야 한다. 공개 키는 암호화에 사용되는 반면 개인 또는 비밀 키는 공개 키 암호화 방식에서 복호화에 사용됩니다. Diffie와 Hellman은 그러한 시스템을 만들 수 없었지만 Diffie-Hellman 키 교환 프로토콜을 제공함으로써 공개 키 암호화가 가능하다는 것을 보여주었습니다. 공개 키 인증서에 가장 널리 사용되는 형식은 X.509 표준에 의해 정의됩니다.
Diffie와 Hellman의 출판은 실용적인 공개 키 암호화 시스템 개발에 대한 광범위한 학문적 관심을 불러일으켰습니다. Ronald Rivest, Adi Shamir, Len Adleman은 결국 1978년 대회에서 우승했으며 그들의 답은 RSA 알고리즘으로 알려지게 되었습니다.
Diffie-Hellman 및 RSA 알고리즘은 고품질 공개 키 알고리즘의 가장 초기에 공개적으로 알려진 사례일 뿐만 아니라 가장 일반적으로 사용되는 알고리즘 중 하나입니다. Cramer–Shoup 암호 시스템, ElGamal 암호화 및 수많은 타원 곡선 접근 방식이 비대칭 키 알고리즘의 예입니다.
영국 정보 기관인 GCHQ(Government Communications Headquarters)에서 1997년에 발행한 문서에 따르면 GCHQ 암호학자들은 여러 학문적 발전을 예견했습니다. 전설에 따르면 비대칭 키 암호화는 1970년경 James H. Ellis에 의해 발명되었습니다. Clifford Cocks는 1973년에 설계 면에서 RSA와 매우 유사한 솔루션을 발명했습니다. Malcolm J. Williamson은 1974년 Diffie-Hellman 키 교환을 발명한 것으로 알려져 있습니다.
디지털 서명 시스템도 공개 키 암호화를 사용하여 구현됩니다. 디지털 서명은 사용자가 생성하기는 쉽지만 다른 사람이 위조하기 어렵다는 점에서 기존 서명과 유사합니다. 디지털 서명은 서명되는 통신 내용에 영구적으로 연결할 수도 있습니다. 즉, 감지되지 않고는 한 문서에서 다른 문서로 '이동'할 수 없습니다. 디지털 서명 체계에는 두 가지 알고리즘이 있습니다. 하나는 비밀 키를 사용하여 메시지(또는 메시지의 해시 또는 둘 다)를 처리하는 서명용이고 다른 하나는 메시지와 일치하는 공개 키를 사용하여 유효성을 검사하는 확인용입니다. 서명의 진정성. 가장 많이 사용되는 디지털 서명 방법 중 두 가지는 RSA와 DSA입니다. 공개 키 인프라와 많은 네트워크 보안 시스템(예: SSL/TLS, 많은 VPN)은 작동하기 위해 디지털 서명에 의존합니다.
수 이론에서 발생하는 것과 같은 "어려운" 문제의 계산 복잡성은 공개 키 방법을 개발하는 데 자주 사용됩니다. 정수 인수분해 문제는 RSA의 경도와 관련된 반면 이산 로그 문제는 Diffie-Hellman 및 DSA와 관련이 있습니다. 타원 곡선 암호화의 보안은 타원 곡선 수 이론 문제를 기반으로 합니다. 대부분의 공개 키 알고리즘에는 기본 문제의 어려움으로 인해 특히 일반 키 크기에서 대부분의 블록 암호에 사용되는 기술보다 계산 비용이 훨씬 많이 드는 모듈식 곱셈 및 지수와 같은 연산이 포함됩니다. 결과적으로 공개 키 암호 시스템은 메시지가 빠르고 고품질의 대칭 키 알고리즘으로 암호화되는 반면 관련 대칭 키는 메시지와 함께 전송되지만 공개 키 알고리즘으로 암호화되는 하이브리드 암호 시스템인 경우가 많습니다. 암호화 해시 함수가 계산되고 결과 해시만 디지털 서명되는 하이브리드 서명 체계도 일반적으로 사용됩니다.
암호화의 해시 함수
암호화 해시 함수는 대칭 또는 비대칭 암호화를 위해 데이터를 암호화하기 위해 특정 키를 생성하고 사용하는 암호화 알고리즘이며 키로 생각할 수 있습니다. 예를 들어, 어떤 길이의 메시지라도 입력으로 사용하고 디지털 서명에 사용할 수 있는 작은 고정 길이 해시를 출력합니다. 공격자는 좋은 해시 알고리즘을 사용하여 동일한 해시를 생성하는 두 개의 메시지를 찾을 수 없습니다. MD4는 널리 사용되지만 지금은 잘못된 해시 함수입니다. MD5의 향상된 형태인 MD4도 마찬가지로 널리 사용되지만 실제로는 깨졌습니다. MD5 유사 해시 알고리즘의 보안 해시 알고리즘 시리즈는 미국 국가안보국(National Security Agency)에서 개발했습니다. 미국 표준 당국은 "NIST의 전체 해시 알고리즘의 견고성을 크게 향상시키기 위한 새로운 표준을 개발하는 것이 보안 관점에서 "신중한" 것이라고 결정했습니다. 툴킷.” SHA-1은 널리 사용되며 MD5보다 더 안전하지만 암호 분석가들은 이에 대한 공격을 식별했습니다. SHA-2 제품군은 SHA-1을 개선하지만 2011년 현재 충돌에 취약합니다. SHA-2 제품군은 SHA-1을 개선하지만 충돌에 취약합니다. 결과적으로 2012년까지 SHA-3으로 알려진 새로운 미국 국가 표준을 선택하기 위한 해시 함수 설계 경쟁이 열렸습니다. 경쟁은 2년 2012월 3일 NIST(National Institute of Standards and Technology)가 Keccak을 새로운 SHA-XNUMX 해시 알고리즘으로 발표하면서 종료되었습니다. 암호화 해시 함수는 가역 블록 및 스트림 암호와 달리 원래 입력 데이터를 복구하는 데 사용할 수 없는 해시된 출력을 제공합니다. 암호화 해시 함수는 신뢰할 수 없는 출처에서 얻은 데이터의 진위를 확인하거나 추가 보호 수준을 추가하는 데 사용됩니다.
암호화 기본 요소 및 암호 시스템
암호화 이론 작업의 대부분은 기본 암호화 속성을 가진 알고리즘인 암호화 기본 요소와 이들이 다른 암호화 문제와 어떻게 관련되는지에 중점을 둡니다. 이러한 기본 기본 요소는 더 복잡한 암호화 도구를 만드는 데 사용됩니다. 이러한 기본 요소는 하나 이상의 높은 수준의 보안 속성을 보장하는 암호 시스템 또는 암호 프로토콜로 알려진 더 복잡한 도구를 만드는 데 사용되는 기본적인 품질을 제공합니다. 반면에 암호화 기본 요소와 암호 시스템 사이의 경계는 임의적입니다. 예를 들어, RSA 알고리즘은 때로는 암호 시스템으로, 때로는 원시적으로 간주됩니다. 의사 난수 함수, 단방향 함수 및 기타 암호화 기본 형식이 일반적인 예입니다.
암호화 시스템 또는 암호화 시스템은 하나 이상의 암호화 기본 요소를 결합하여 보다 복잡한 알고리즘을 생성함으로써 생성됩니다. 암호화 시스템(예: El-Gamal 암호화)은 특정 기능(예: 공개 키 암호화)을 제공하는 동시에 특정 보안 품질(예: 무작위 오라클 모델 선택 평문 공격 CPA 보안)을 보장하기 위한 것입니다. 시스템의 보안 품질을 지원하기 위해 암호 시스템은 기본 암호화 기본 요소의 속성을 활용합니다. 정교한 암호 체계는 원시 암호 체계와 암호 체계 사이의 구분이 다소 임의적이기 때문에 더 많은 기초 암호 체계의 조합에서 생성될 수 있습니다. 많은 상황에서 암호 시스템의 구조는 공간에서(예: 보안 메시지의 발신자와 수신자 간) 또는 시간에 따른(예: 보안 메시지의 발신자와 수신자 간) 둘 이상의 당사자 간의 양방향 통신으로 구성됩니다. (예: 암호로 보호된 백업 데이터).
인증 커리큘럼에 대해 자세히 알아보기 위해 아래 표를 확장하고 분석할 수 있습니다.
EITC/IS/CCF Classical Cryptography Fundamentals 인증 커리큘럼은 비디오 형식의 오픈 액세스 교육 자료를 참조합니다. 학습 과정은 관련 커리큘럼 부분을 다루는 단계별 구조(프로그램 -> 수업 -> 주제)로 나뉩니다. 도메인 전문가와의 무제한 컨설팅도 제공됩니다.
인증 절차 확인에 대한 자세한 내용은 어떻게 시작하나요?.
주요 강의 노트
Christof Paar 및 Jan Pelzl의 암호화 이해, PDF 슬라이드 형식의 온라인 과정
https://www.crypto-textbook.com/slides.php
Christof Paar와 Jan Pelzl의 암호화 이해, 비디오 형식의 온라인 과정
https://www.crypto-textbook.com/movies.php
주요 고전 암호 책 참조
Christof Paar 및 Jan Pelzl의 암호화 이해
https://www.crypto-textbook.com/index.php
추가 응용 고전 암호화 서적 참조
A. Menezes, P. van Oorschot 및 S. Vanstone의 응용 암호화 핸드북:
https://cacr.uwaterloo.ca/hac/
https://www.amazon.com/exec/obidos/ISBN=0849385237/7181-7381933-595174
EITC/IS/CCF 고전 암호화 기본 프로그램에 대한 전체 오프라인 자가 학습 준비 자료를 PDF 파일로 다운로드하세요.