EITC/IS/ACC Advanced Classical Cryptography là chương trình Chứng nhận CNTT Châu Âu nâng cao trình độ chuyên môn về mật mã cổ điển, chủ yếu tập trung vào mật mã khóa công khai, với phần giới thiệu về mật mã khóa công khai thực tế, cũng như chữ ký số, cơ sở hạ tầng khóa công khai và chứng chỉ bảo mật được sử dụng rộng rãi trên Internet.
Chương trình giảng dạy của Mật mã cổ điển nâng cao EITC/IS/ACC tập trung vào mật mã khóa công khai (bất đối xứng), bắt đầu với phần giới thiệu về Trao đổi khóa Diffie-Hellman và vấn đề nhật ký rời rạc (bao gồm sự tổng quát hóa của nó), sau đó tiếp tục mã hóa với vấn đề nhật ký rời rạc, bao gồm Sơ đồ mã hóa Elgamal, đường cong elliptic và Mật mã đường cong Elliptic (ECC), chữ ký số (bao gồm các dịch vụ bảo mật và Chữ ký số Elgamal), hàm băm (bao gồm cả SHA-1 có chức năng), Mã xác thực thông báo (bao gồm MAC và HMAC), thiết lập khóa (bao gồm SKE thiết lập khóa đối xứng và Kerberos) để kết thúc với việc xem xét lớp tấn công trung gian, cùng với chứng chỉ mật mã và Cơ sở hạ tầng khóa công khai (PKI), trong cấu trúc sau , bao gồm nội dung giáo huấn video toàn diện làm tài liệu tham khảo cho Chứng nhận EITC này.
Mật mã đề cập đến các cách giao tiếp an toàn khi có kẻ thù. Mật mã, theo nghĩa rộng hơn, là quá trình tạo và phân tích các giao thức ngăn các bên thứ ba hoặc công chúng truy cập vào các thông điệp riêng tư (được mã hóa). Mật mã cổ điển hiện đại dựa trên một số tính năng chính của bảo mật thông tin như bảo mật dữ liệu, toàn vẹn dữ liệu, xác thực và không thoái thác. Trái ngược với mật mã lượng tử, dựa trên các quy tắc vật lý lượng tử hoàn toàn khác nhau đặc trưng cho tự nhiên, mật mã cổ điển đề cập đến mật mã dựa trên các quy luật vật lý cổ điển. Các lĩnh vực toán học, khoa học máy tính, kỹ thuật điện, khoa học truyền thông và vật lý đều gặp nhau trong mật mã cổ điển. Thương mại điện tử, thẻ thanh toán dựa trên chip, tiền tệ kỹ thuật số, mật khẩu máy tính và thông tin liên lạc quân sự là tất cả các ví dụ về ứng dụng mật mã.
Trước thời đại hiện tại, mật mã gần như đồng nghĩa với mã hóa, biến thông tin từ có thể đọc được thành vô nghĩa khó hiểu. Để ngăn những kẻ tấn công truy cập vào một tin nhắn được mã hóa, người gửi chỉ chia sẻ quy trình giải mã với những người nhận dự định. Tên Alice (“A”) cho người gửi, Bob (“B”) cho người nhận dự định và Eve (“người nghe trộm”) cho kẻ thù thường được sử dụng trong tài liệu mật mã.
Các phương pháp mật mã ngày càng trở nên phức tạp và các ứng dụng của nó cũng đa dạng hơn, kể từ sự phát triển của máy mật mã rôto trong Thế chiến thứ nhất và sự ra đời của máy tính trong Thế chiến thứ hai.
Mật mã hiện đại phụ thuộc nhiều vào lý thuyết toán học và thực hành khoa học máy tính; các phương pháp mật mã được xây dựng dựa trên các giả định về độ cứng tính toán, khiến chúng khó bị đối thủ phá vỡ trong thực tế. Mặc dù về mặt lý thuyết, việc đột nhập vào một hệ thống được thiết kế tốt là có thể thực hiện được, nhưng làm như vậy trên thực tế là không thể. Các chương trình như vậy được gọi là “an toàn về mặt tính toán” nếu chúng được xây dựng đầy đủ; tuy nhiên, những đột phá về mặt lý thuyết (ví dụ, những cải tiến trong phương pháp phân tích nhân tử số nguyên) và công nghệ tính toán nhanh hơn đòi hỏi phải đánh giá lại liên tục và nếu cần, phải điều chỉnh các thiết kế này. Có những hệ thống an toàn về mặt lý thuyết thông tin, chẳng hạn như bảng điều khiển một lần, có thể được chứng minh là không thể phá vỡ ngay cả với sức mạnh tính toán vô hạn, nhưng chúng khó sử dụng trong thực tế hơn đáng kể so với các phương án có khả năng phá vỡ tốt nhất về mặt lý thuyết nhưng an toàn về mặt tính toán.
Trong Thời đại Thông tin, sự tiến bộ của công nghệ mật mã đã tạo ra nhiều thách thức pháp lý. Nhiều quốc gia đã phân loại mật mã là một loại vũ khí, hạn chế hoặc cấm sử dụng và xuất khẩu nó do khả năng gián điệp và dụ dỗ của nó. Các nhà điều tra có thể buộc phải giao nộp các khóa mã hóa đối với các tài liệu liên quan đến cuộc điều tra ở một số nơi mà mật mã là hợp pháp. Trong trường hợp của phương tiện kỹ thuật số, mật mã cũng đóng một vai trò quan trọng trong việc quản lý quyền kỹ thuật số và các xung đột vi phạm bản quyền.
Thuật ngữ "mật mã" (trái ngược với "mật mã") lần đầu tiên được sử dụng vào thế kỷ XNUMX, trong truyện ngắn "Con bọ vàng" của Edgar Allan Poe.
Cho đến gần đây, mật mã gần như chỉ được gọi là “mã hóa”, là hành động biến dữ liệu thông thường (được gọi là bản rõ) thành một định dạng không thể đọc được (được gọi là bản mã). Giải mã ngược lại với mã hóa, tức là đi từ bản mã khó hiểu sang bản rõ. Mật mã (hay cypher) là một tập hợp các kỹ thuật thực hiện mã hóa và giải mã theo thứ tự ngược lại. Thuật toán và trong mỗi trường hợp, một “khóa” phụ trách việc thực thi chi tiết của mật mã. Chìa khóa là một bí mật (tốt nhất là chỉ những người giao tiếp mới biết) được sử dụng để giải mã bản mã. Nó thường là một chuỗi ký tự (lý tưởng là ngắn để người dùng có thể nhớ được). “Hệ thống mật mã” là tập hợp có thứ tự các phần tử của bản rõ tiềm năng hữu hạn, cyphertex, khóa và các thủ tục mã hóa và giải mã tương ứng với mỗi khóa theo các thuật ngữ toán học chính thức. Khóa rất quan trọng cả về mặt hình thức và thực tế, bởi vì mật mã có khóa cố định có thể dễ dàng bị phá vỡ nếu chỉ sử dụng thông tin của mật mã, khiến chúng trở nên vô dụng (hoặc thậm chí phản tác dụng) cho hầu hết các mục đích.
Trong lịch sử, mật mã thường được sử dụng mà không cần bất kỳ thủ tục bổ sung nào như xác thực hoặc kiểm tra tính toàn vẹn để mã hóa hoặc giải mã. Hệ thống mật mã được chia thành hai loại: đối xứng và không đối xứng. Cùng một khóa (khóa bí mật) được sử dụng để mã hóa và giải mã một thông điệp trong các hệ thống đối xứng, đây là những hệ thống duy nhất được biết đến cho đến những năm 1970. Bởi vì hệ thống đối xứng sử dụng độ dài khóa ngắn hơn, thao tác dữ liệu trong hệ thống đối xứng nhanh hơn trong hệ thống không đối xứng. Hệ thống không đối xứng mã hóa giao tiếp bằng “khóa công khai” và giải mã bằng “khóa riêng” tương tự. Việc sử dụng các hệ thống không đối xứng giúp cải thiện bảo mật thông tin liên lạc, do khó xác định mối quan hệ giữa hai khóa. RSA (Rivest – Shamir – Adleman) và ECC là hai ví dụ về hệ thống bất đối xứng (Mật mã đường cong Elliptic). AES (Tiêu chuẩn mã hóa nâng cao) được sử dụng rộng rãi, thay thế cho DES trước đó, là một ví dụ về thuật toán đối xứng chất lượng cao (Tiêu chuẩn mã hóa dữ liệu). Các kỹ thuật rối ngôn ngữ dành cho trẻ em khác nhau, chẳng hạn như Pig Latinh hoặc không thể khác, và thực sự là tất cả các lược đồ mật mã, dù có ý nghĩa nghiêm túc, từ bất kỳ nguồn nào trước khi ra mắt tập một lần vào đầu thế kỷ XX, là những ví dụ về chất lượng thấp các thuật toán đối xứng.
Thuật ngữ “mã” thường được sử dụng một cách thông tục để chỉ bất kỳ kỹ thuật mã hóa hoặc che giấu thông điệp nào. Tuy nhiên, trong mật mã, mã đề cập đến việc thay thế một từ mã cho một đơn vị văn bản rõ ràng (tức là một từ hoặc cụm từ có nghĩa) (ví dụ: “wallaby” thay thế “tấn công vào lúc bình minh”). Ngược lại, cyphertext được tạo ra bằng cách sửa đổi hoặc thay thế một phần tử dưới cấp độ như vậy (ví dụ: một chữ cái, một âm tiết hoặc một cặp chữ cái) để tạo thành một cyphertext.
Cryptanalysis là nghiên cứu về các cách giải mã dữ liệu được mã hóa mà không cần truy cập vào khóa cần thiết để làm như vậy; nói cách khác, nó là nghiên cứu về cách “phá vỡ” các lược đồ mã hóa hoặc việc triển khai chúng.
Trong tiếng Anh, một số người sử dụng thay thế cho nhau các thuật ngữ “cryptography” và “cryptology”, trong khi những người khác (bao gồm cả hoạt động quân sự của Hoa Kỳ nói chung) sử dụng “cryptography” để chỉ việc sử dụng và thực hành các kỹ thuật mật mã và “cryptology” để chỉ kết hợp nghiên cứu về mật mã và phân tích mật mã. Tiếng Anh dễ thích nghi hơn một số ngôn ngữ khác, trong đó “mật mã học” (như các nhà mật mã học thực hành) luôn được sử dụng theo nghĩa thứ hai. Mật mã đôi khi được bao gồm trong mật mã học, theo RFC 2828.
Cryptolinguistics là nghiên cứu về các thuộc tính ngôn ngữ có một số liên quan trong mật mã học hoặc mật mã học (ví dụ: thống kê tần số, kết hợp chữ cái, các mẫu phổ quát, v.v.).
Mật mã học và phân tích mật mã có lịch sử lâu đời.
Lịch sử của mật mã là bài viết chính.
Trước kỷ nguyên hiện đại, mật mã chủ yếu quan tâm đến tính bảo mật của thông điệp (tức là mã hóa) —chuyển đổi các thông điệp từ dạng dễ hiểu sang dạng khó hiểu và một lần nữa, khiến chúng không thể đọc được bởi những kẻ đánh chặn hoặc kẻ nghe trộm mà không có kiến thức bí mật (cụ thể là khóa cần thiết để giải mã của tin nhắn đó). Mã hóa được thiết kế để giữ bí mật các cuộc trò chuyện của các điệp viên, các nhà lãnh đạo quân sự và các nhà ngoại giao. Trong những thập kỷ gần đây, kỷ luật đã phát triển để kết hợp các kỹ thuật như kiểm tra tính toàn vẹn của thư, xác thực danh tính người gửi/người nhận, chữ ký số, bằng chứng tương tác và tính toán an toàn, cùng nhiều thứ khác.
Hai loại mật mã cổ điển phổ biến nhất là mật mã chuyển vị, thay thế một cách có hệ thống các chữ cái hoặc nhóm chữ cái bằng các chữ cái hoặc nhóm chữ cái khác (ví dụ: 'hello world' trở thành 'ehlol owrdl' trong một sơ đồ sắp xếp lại đơn giản tầm thường) và mật mã thay thế, có hệ thống thay thế các chữ cái hoặc nhóm chữ cái bằng các chữ cái hoặc nhóm chữ cái khác (ví dụ: 'bay ngay lập tức' trở thành 'gmz bu Các phiên bản đơn giản của một trong hai chưa bao giờ cung cấp nhiều quyền riêng tư khỏi những kẻ thù xảo quyệt. Mật mã Caesar là một mật mã thay thế sớm trong đó Mỗi chữ cái trong bản rõ được thay thế bằng một chữ cái với một số vị trí nhất định trong bảng chữ cái. Theo Suetonius, Julius Caesar đã sử dụng nó với sự thay đổi ba người để liên lạc với các tướng lĩnh của mình. Một ví dụ về mật mã tiếng Do Thái ban đầu, Atbash, là một ví dụ. Cách sử dụng mật mã lâu đời nhất được biết đến là một bản mã được chạm khắc trên đá ở Ai Cập (khoảng năm 1900 trước Công nguyên), tuy nhiên, có thể điều này được thực hiện vì sự thích thú của những khán giả biết chữ hơn là an để che giấu thông tin.
Các mật mã được cho là đã được người Hy Lạp Cổ điển biết đến (ví dụ, mật mã chuyển vị scytale được cho là đã được sử dụng bởi quân đội Spartan). Steganography (phương pháp che giấu sự hiện diện của một thông tin liên lạc để giữ bí mật) cũng đã được phát minh vào thời cổ đại. Theo Herodotus, một cụm từ được xăm trên đầu cạo trọc của nô lệ và ẩn bên dưới lớp lông mọc lại. Việc sử dụng mực in vô hình, các điểm nhỏ và hình mờ kỹ thuật số để che giấu thông tin là những trường hợp hiện nay của kỹ thuật in mật mã.
Kautiliyam và Mulavediya là hai loại mật mã được đề cập trong Kamasutra of Vtsyyana 2000 năm tuổi của Ấn Độ. Sự thay thế chữ cái mật mã trong Kautiliyam dựa trên mối quan hệ ngữ âm, chẳng hạn như các nguyên âm trở thành phụ âm. Bảng chữ cái mật mã trong Mulavediya bao gồm các chữ cái phù hợp và sử dụng các chữ cái tương hỗ.
Theo học giả Hồi giáo Ibn al-Nadim, Sassanid Persia có hai chữ viết bí mật: h-dabrya (nghĩa đen là "chữ viết của Vua"), được sử dụng cho thư tín chính thức, và rz-saharya, được sử dụng để trao đổi thông điệp bí mật với người khác. Quốc gia.
Trong cuốn sách Những người phá mã của mình, David Kahn viết rằng mật mã học đương đại bắt đầu từ người Ả Rập, những người đầu tiên ghi chép cẩn thận các quy trình phá mã. Cuốn sách Thông điệp mật mã được viết bởi Al-Khalil (717–786), và nó bao gồm việc sử dụng sớm nhất các phép hoán vị và kết hợp để liệt kê tất cả các từ Ả Rập có thể hình dung được có và không có nguyên âm.
Các mật mã được tạo bởi một mật mã cổ điển (cũng như một số mật mã hiện đại) tiết lộ thông tin thống kê về bản rõ, có thể được sử dụng để phá vỡ mật mã. Gần như tất cả các mật mã như vậy đều có thể bị phá vỡ bởi một kẻ tấn công thông minh sau khi phát hiện ra phân tích tần số, có thể là bởi nhà toán học và đa nhân Ả Rập Al-Kindi (còn được gọi là Alkindus) vào thế kỷ thứ 9. Mật mã cổ điển vẫn còn phổ biến ngày nay, mặc dù phần lớn là câu đố (xem mật mã). Risalah fi Istikhraj al-Mu'amma (Bản thảo giải mã thông điệp mật mã) được viết bởi Al-Kindi và ghi lại cách sử dụng đầu tiên được biết đến của kỹ thuật phân tích mật mã phân tích tần số.
Một số phương pháp mã hóa lịch sử mở rộng, chẳng hạn như mật mã đồng âm, có xu hướng làm phẳng phân bố tần số, có thể không được hưởng lợi từ tần số chữ cái ngôn ngữ. Các tần số nhóm chữ cái ngôn ngữ (hoặc n-gram) có thể gây ra một cuộc tấn công cho các mật mã đó.
Cho đến khi phát hiện ra mật mã đa pha, đáng chú ý nhất là bởi Leon Battista Alberti vào khoảng năm 1467, hầu như tất cả các mật mã đều có thể truy cập được để phân tích bằng phương pháp phân tích tần số, mặc dù có một số bằng chứng cho thấy rằng nó đã được Al-Kindi biết đến. Alberti đã nảy ra ý tưởng sử dụng các mật mã riêng biệt (hoặc các bảng chữ cái thay thế) cho các phần khác nhau của giao tiếp (có lẽ cho mỗi chữ cái rõ ràng liên tiếp ở mức giới hạn). Ông cũng tạo ra thứ được cho là thiết bị mã hóa tự động đầu tiên, một bánh xe thực hiện một phần thiết kế của mình. Mã hóa trong mật mã Vigenère, một mật mã đa pha, được điều khiển bởi một từ khóa chi phối việc thay thế chữ cái dựa trên chữ cái nào của từ khóa được sử dụng. Charles Babbage đã chứng minh rằng mật mã Vigenère dễ bị tổn thương trong phân tích Kasiski vào giữa thế kỷ XNUMX, nhưng Friedrich Kasiski đã công bố phát hiện của mình mười năm sau đó.
Mặc dù thực tế rằng phân tích tần số là một kỹ thuật mạnh mẽ và rộng rãi chống lại nhiều loại mật mã, mã hóa vẫn có hiệu quả trong thực tế vì nhiều nhà phân tích mật mã sẽ không biết về kỹ thuật này. Việc phá vỡ một thông điệp mà không sử dụng phân tích tần số cần có kiến thức về mật mã được sử dụng và có thể là khóa liên quan, khiến hoạt động gián điệp, hối lộ, ăn trộm, đào tẩu và các chiến thuật phá mã không được thông tin khác trở nên hấp dẫn hơn. Bí mật của thuật toán mật mã cuối cùng đã được thừa nhận vào thế kỷ 19 vì không phải là sự đảm bảo hợp lý và khả thi về bảo mật thông điệp; trên thực tế, bất kỳ lược đồ mật mã thích hợp nào (bao gồm cả mật mã) sẽ vẫn an toàn ngay cả khi đối thủ hoàn toàn hiểu chính thuật toán mật mã. Tính bảo mật của khóa phải đủ để một mật mã tốt có thể giữ được bí mật khi đối mặt với một cuộc tấn công. Auguste Kerckhoffs lần đầu tiên phát biểu nguyên tắc cơ bản này vào năm 1883, và nó được gọi là Nguyên tắc của Kerckhoffs; cách khác, và thẳng thắn hơn, Claude Shannon, người phát minh ra lý thuyết thông tin và các nguyên tắc cơ bản của mật mã lý thuyết, đã gọi nó là Maxim của Shannon - 'kẻ thù biết hệ thống.'
Để trợ giúp về mật mã, nhiều tiện ích và hỗ trợ vật lý đã được sử dụng. Scytale của Hy Lạp cổ đại, một chiếc que được cho là được người Sparta sử dụng như một công cụ mật mã chuyển vị, có thể là một trong những chiếc đầu tiên. Các công cụ hỗ trợ khác đã được phát minh ra vào thời trung cổ, chẳng hạn như lưới mật mã, cũng được sử dụng để in mật mã. Với sự phát triển của mật mã đa pha, các công cụ hỗ trợ phức tạp hơn như đĩa mật mã của Alberti, sơ đồ trực tràng tabula của Johannes Trithemius và mật mã bánh xe của Thomas Jefferson đã trở nên sẵn có (không được biết đến rộng rãi và được Bazeries phát minh lại một cách độc lập vào khoảng năm 1900). Nhiều hệ thống mã hóa/giải mã cơ học đã được phát minh và cấp bằng sáng chế vào đầu thế kỷ 1920, bao gồm cả máy rôto, vốn nổi tiếng được sử dụng bởi chính phủ và quân đội Đức từ cuối những năm XNUMX đến Thế chiến thứ hai. Sau Thế chiến I, các mật mã được thực hiện bởi các phiên bản chất lượng cao hơn của các thiết kế máy này đã dẫn đến sự gia tăng đáng kể về độ khó phân tích mật mã.
Mật mã học chủ yếu quan tâm đến các mẫu ngôn ngữ và từ vựng trước đầu thế kỷ XX. Kể từ đó, trọng tâm đã phát triển và mật mã hiện nay bao gồm các khía cạnh của lý thuyết thông tin, độ phức tạp tính toán, thống kê, tổ hợp, đại số trừu tượng, lý thuyết số và toán học hữu hạn nói chung. Mật mã là một loại kỹ thuật, nhưng nó độc đáo ở chỗ nó đối phó với sự phản kháng tích cực, thông minh và thù địch, trong khi các loại kỹ thuật khác (chẳng hạn như kỹ thuật dân dụng hoặc hóa học) chỉ đơn thuần là đối phó với các lực lượng tự nhiên trung lập. Mối liên hệ giữa những khó khăn trong mật mã và vật lý lượng tử cũng đang được điều tra.
Sự phát triển của máy tính kỹ thuật số và thiết bị điện tử đã hỗ trợ việc phân tích mật mã bằng cách cho phép tạo ra các mật mã phức tạp hơn đáng kể. Hơn nữa, không giống như mật mã truyền thống, chỉ mã hóa văn bản bằng ngôn ngữ viết, máy tính cho phép mã hóa bất kỳ loại dữ liệu nào có thể được biểu diễn ở bất kỳ định dạng nhị phân nào; điều này là mới lạ và quan trọng. Trong cả thiết kế mật mã và phân tích mật mã, máy tính đã thay thế mật mã ngôn ngữ. Không giống như các phương pháp cổ điển và cơ học, chủ yếu thao tác trực tiếp các ký tự truyền thống (nghĩa là chữ cái và chữ số), nhiều mật mã máy tính hoạt động trên chuỗi bit nhị phân (đôi khi theo nhóm hoặc khối). Mặt khác, máy tính có hỗ trợ phân tích mật mã, điều này đã bù đắp một phần cho sự gia tăng độ phức tạp của mật mã. Mặc dù vậy, các mật mã hiện đại tốt vẫn đi trước phân tích mật mã; Thông thường, việc sử dụng một mật mã tốt sẽ rất hiệu quả (tức là nhanh chóng và cần ít tài nguyên, chẳng hạn như bộ nhớ hoặc khả năng CPU), trong khi việc phá vỡ nó đòi hỏi nỗ lực nhiều bậc lớn hơn và lớn hơn rất nhiều so với yêu cầu đối với bất kỳ mật mã cổ điển, hiển thị hiệu quả không thể phá mã.
Mật mã hiện đại ra mắt lần đầu tiên.
Việc phân tích mật mã của các thiết bị cơ khí mới được chứng minh là đầy thách thức và tốn nhiều thời gian. Trong Thế chiến thứ hai, các hoạt động phân tích mật mã tại Công viên Bletchley ở Vương quốc Anh đã thúc đẩy việc phát minh ra các phương pháp hiệu quả hơn để thực hiện các nhiệm vụ lặp đi lặp lại. Colossus, chiếc máy tính điện tử, kỹ thuật số, có thể lập trình hoàn toàn đầu tiên trên thế giới, được phát triển để hỗ trợ việc giải mã mật mã do cỗ máy Lorenz SZ40/42 của Quân đội Đức tạo ra.
Mật mã học là một lĩnh vực nghiên cứu học thuật mở tương đối mới, chỉ mới bắt đầu vào giữa những năm 1970. Các nhân viên của IBM đã nghĩ ra thuật toán trở thành Tiêu chuẩn Mã hóa Dữ liệu của Liên bang (tức là Hoa Kỳ); Whitfield Diffie và Martin Hellman đã xuất bản thuật toán thỏa thuận chính của họ; và chuyên mục Khoa học Mỹ của Martin Gardner đã công bố thuật toán RSA. Mật mã học kể từ đó đã trở nên phổ biến như một kỹ thuật cho truyền thông, mạng máy tính và bảo mật máy tính nói chung.
Có mối quan hệ sâu sắc với toán học trừu tượng vì một số phương pháp mật mã hiện đại chỉ có thể giữ bí mật các khóa của chúng nếu một số vấn đề toán học khó giải, chẳng hạn như thừa số nguyên hoặc các vấn đề lôgarit rời rạc. Chỉ có một số ít hệ thống mật mã đã được chứng minh là an toàn 100%. Claude Shannon đã chứng minh rằng miếng đệm một thời là một trong số đó. Có một số thuật toán chính đã được chứng minh là an toàn trong các điều kiện nhất định. Ví dụ, không có khả năng nhân tố các số nguyên cực lớn là cơ sở để tin rằng RSA và các hệ thống khác là an toàn, nhưng bằng chứng về tính không thể phá vỡ là không thể đạt được vì vấn đề toán học cơ bản vẫn chưa được giải quyết. Trên thực tế, chúng được sử dụng rộng rãi và hầu hết các nhà quan sát có thẩm quyền tin rằng chúng không thể bị phá vỡ trong thực tế. Có những hệ thống tương tự như RSA, chẳng hạn như một hệ thống do Michael O. Rabin phát triển, có thể an toàn nếu không thể tính n = pq; tuy nhiên, chúng thực tế vô dụng. Vấn đề lôgarit rời rạc là nền tảng để tin rằng một số hệ thống mật mã khác là an toàn và có những hệ thống tương tự, ít thực tế hơn được bảo mật một cách rõ ràng về khả năng giải được hoặc không thể giải được của vấn đề lôgarit rời rạc.
Các nhà thiết kế hệ thống và thuật toán mật mã phải xem xét những tiến bộ có thể có trong tương lai khi thực hiện ý tưởng của họ, ngoài việc nhận thức được lịch sử mật mã. Ví dụ, khi sức mạnh xử lý của máy tính được cải thiện, phạm vi của các cuộc tấn công brute-force đã tăng lên, do đó độ dài khóa cần thiết cũng tăng theo. Một số nhà thiết kế hệ thống mật mã khám phá hậu mật mã lượng tử đã và đang xem xét các hậu quả tiềm ẩn của tính toán lượng tử; việc các máy này không được triển khai một cách khiêm tốn đã được công bố có thể khiến nhu cầu về sự thận trọng trước nhiều hơn là chỉ suy đoán.
Mật mã cổ điển trong thời hiện đại
Mật mã đối xứng (hoặc khóa riêng) là một loại mã hóa trong đó người gửi và người nhận sử dụng cùng một khóa (hoặc ít phổ biến hơn, trong đó các khóa của họ khác nhau, nhưng có liên quan theo cách dễ dàng tính toán và được giữ bí mật, riêng tư ). Cho đến tháng 1976 năm XNUMX, đây là loại mã hóa duy nhất được biết đến công khai.
Mật mã khối và mật mã dòng đều được sử dụng để triển khai mật mã khóa đối xứng. Mật mã khối mã hóa đầu vào trong các khối bản rõ thay vì các ký tự riêng lẻ, giống như mật mã dòng.
Chính phủ Hoa Kỳ đã chỉ định Tiêu chuẩn mã hóa dữ liệu (DES) và Tiêu chuẩn mã hóa nâng cao (AES) làm tiêu chuẩn mật mã (mặc dù chứng nhận của DES cuối cùng đã bị thu hồi sau khi AES được thành lập). DES (đặc biệt là biến thể ba DES vẫn được phê duyệt và an toàn hơn đáng kể) vẫn được ưa chuộng mặc dù nó không còn được coi là tiêu chuẩn chính thức; nó được sử dụng trong một loạt các ứng dụng, từ mã hóa ATM đến bảo mật email và truy cập từ xa an toàn. Đã có một loạt các mật mã khối khác nhau được phát minh và phát hành, với mức độ thành công khác nhau. Nhiều, bao gồm cả một số được thiết kế bởi những người thực hành có trình độ, chẳng hạn như FEAL, đã bị hỏng nhiều.
Mật mã luồng, không giống như mật mã khối, tạo ra một luồng tài liệu khóa dài vô hạn được ghép nối với văn bản rõ ràng từng bit hoặc từng ký tự, tương tự như bảng một lần. Luồng đầu ra của mật mã luồng được tạo ra từ một trạng thái bên trong được che giấu thay đổi khi mật mã hoạt động. Nguyên liệu khóa bí mật được sử dụng để thiết lập trạng thái bên trong lúc đầu. Mật mã dòng RC4 được sử dụng rộng rãi. Bằng cách tạo các khối của dòng khóa (thay vì trình tạo số giả ngẫu nhiên) và sử dụng phép toán XOR đối với từng bit của bản rõ với từng bit của dòng khóa, mật mã khối có thể được sử dụng làm mật mã dòng.
Mã xác thực tin nhắn (MAC) tương tự như các hàm băm mật mã, ngoại trừ một khóa bí mật có thể được sử dụng để xác thực giá trị băm khi nhận; sự phức tạp bổ sung này ngăn chặn một cuộc tấn công chống lại các thuật toán thông báo trần trụi và do đó được coi là đáng giá. Một loại kỹ thuật mật mã thứ ba là các hàm băm mật mã. Chúng lấy bất kỳ thông điệp độ dài nào làm đầu vào và đầu ra một băm nhỏ, độ dài cố định có thể được sử dụng trong chữ ký điện tử, chẳng hạn. Kẻ tấn công không thể xác định được hai thông điệp tạo ra cùng một hàm băm bằng cách sử dụng các thuật toán băm tốt. MD4 là một hàm băm được sử dụng rộng rãi nhưng hiện nay bị lỗi; MD5, một dạng nâng cao của MD4, cũng được sử dụng rộng rãi nhưng bị hỏng trong thực tế. Loạt Thuật toán băm an toàn gồm các thuật toán băm giống MD5 được phát triển bởi Cơ quan An ninh Quốc gia Hoa Kỳ: Cơ quan quản lý tiêu chuẩn Hoa Kỳ đã quyết định “thận trọng” từ quan điểm bảo mật để phát triển một tiêu chuẩn mới nhằm “cải thiện đáng kể tính mạnh mẽ của thuật toán băm tổng thể của NIST bộ công cụ. ” SHA-1 được sử dụng rộng rãi và an toàn hơn MD5, nhưng các nhà phân tích mật mã đã xác định được các cuộc tấn công chống lại nó; họ SHA-2 cải tiến trên SHA-1, nhưng dễ bị đụng độ vào năm 2011; và dòng SHA-2 cải tiến trên SHA-1, nhưng dễ bị đụng độ Do đó, vào năm 2012, một cuộc thi thiết kế hàm băm đã được tổ chức để chọn ra một tiêu chuẩn quốc gia mới của Hoa Kỳ, được gọi là SHA-3. Cuộc thi đi đến hồi kết vào ngày 2 tháng 2012 năm 3, khi Viện Tiêu chuẩn và Công nghệ Quốc gia (NIST) công bố Keccak là thuật toán băm SHA-XNUMX mới. Các hàm băm mật mã, không giống như mã hóa dòng và khối không thể đảo ngược, cung cấp đầu ra băm không thể sử dụng để khôi phục dữ liệu đầu vào ban đầu. Các hàm băm mật mã được sử dụng để kiểm tra tính xác thực của dữ liệu được lấy từ một nguồn không đáng tin cậy hoặc để thêm một mức độ bảo vệ bổ sung.
Mặc dù một thông điệp hoặc một tập hợp các thông điệp có thể có một khóa khác với những khóa khác, các hệ thống mật mã khóa đối xứng sử dụng cùng một khóa để mã hóa và giải mã. Việc quản lý khóa cần thiết để sử dụng mật mã đối xứng một cách an toàn là một bất lợi lớn. Mỗi cặp bên giao tiếp riêng lẻ, lý tưởng, nên chia sẻ một khóa khác nhau, cũng như có thể là một bản mã khác nhau cho mỗi bản mã được gửi. Số lượng khóa cần thiết tăng tỷ lệ thuận với số lượng người tham gia mạng, đòi hỏi các kỹ thuật quản lý khóa phức tạp để giữ cho tất cả chúng đều nhất quán và bí mật.
Whitfield Diffie và Martin Hellman đã phát minh ra khái niệm mật mã khóa công khai (còn được gọi là khóa bất đối xứng) trong một công trình năm 1976, trong đó sử dụng hai khóa riêng biệt nhưng có liên quan đến toán học - khóa công khai và khóa riêng tư. Ngay cả khi chúng được liên kết chặt chẽ với nhau, hệ thống khóa công khai được xây dựng theo cách mà việc tính toán một khóa ('khóa riêng') từ khóa kia ('khóa công khai') là không khả thi về mặt tính toán. Thay vào đó, cả hai khóa đều được sản xuất bí mật, như một cặp được liên kết. Mật mã khóa công khai, theo nhà sử học David Kahn, là "khái niệm mới mang tính cách mạng nhất trong lĩnh vực này kể từ khi thay thế đa pha xuất hiện trong thời kỳ Phục hưng."
Khóa công khai trong hệ thống mật mã khóa công khai có thể được truyền tự do, nhưng khóa riêng được ghép nối phải được giữ ẩn. Khóa công khai được sử dụng để mã hóa, trong khi khóa cá nhân hoặc khóa bí mật được sử dụng để giải mã trong sơ đồ mã hóa khóa công khai. Trong khi Diffie và Hellman không thể tạo ra một hệ thống như vậy, họ đã chứng minh rằng mật mã khóa công khai có thể hình dung được bằng cách cung cấp giao thức trao đổi khóa Diffie-Hellman, một giải pháp cho phép hai người đồng ý bí mật về một khóa mã hóa dùng chung. Định dạng được sử dụng rộng rãi nhất cho chứng chỉ khóa công khai được xác định theo tiêu chuẩn X.509.
Việc xuất bản của Diffie và Hellman đã khơi dậy mối quan tâm học tập rộng rãi trong việc phát triển một hệ thống mã hóa khóa công khai thực tế. Ronald Rivest, Adi Shamir và Len Adleman cuối cùng đã giành chiến thắng trong cuộc thi vào năm 1978, và câu trả lời của họ được gọi là thuật toán RSA.
Ngoài việc là các phiên bản công khai sớm nhất của thuật toán khóa công khai chất lượng cao, các thuật toán Diffie – Hellman và RSA là một trong những thuật toán được sử dụng phổ biến nhất. Hệ thống mật mã Cramer – Shoup, mã hóa ElGamal và nhiều phương pháp tiếp cận đường cong elliptic là những ví dụ về thuật toán khóa bất đối xứng.
Các nhà mật mã học của GCHQ đã thấy trước một số tiến bộ trong học thuật, theo một tài liệu được ban hành vào năm 1997 bởi Trụ sở Truyền thông Chính phủ (GCHQ), một tổ chức tình báo của Anh. Theo truyền thuyết, mật mã khóa bất đối xứng được phát minh bởi James H. Ellis vào khoảng năm 1970. Clifford Cocks đã phát minh ra một giải pháp vào năm 1973 cực kỳ giống RSA về mặt thiết kế. Malcolm J. Williamson được ghi nhận là người đã phát minh ra khóa trao đổi Diffie-Hellman vào năm 1974.
Hệ thống chữ ký điện tử cũng được thực hiện bằng cách sử dụng mật mã khóa công khai. Chữ ký điện tử tương tự như chữ ký truyền thống ở chỗ nó rất đơn giản để người dùng tạo ra nhưng rất khó để người khác giả mạo. Chữ ký điện tử cũng có thể được liên kết vĩnh viễn với nội dung giao tiếp được ký kết; điều này có nghĩa là chúng không thể được 'di chuyển' từ tài liệu này sang tài liệu khác mà không bị phát hiện. Có hai thuật toán trong lược đồ chữ ký điện tử: một thuật toán để ký, sử dụng khóa bí mật để xử lý thông báo (hoặc băm của thông báo hoặc cả hai) và một thuật toán để xác minh, sử dụng khóa công khai phù hợp với thông báo để xác thực tính xác thực của chữ ký. Hai trong số các phương pháp chữ ký số được sử dụng nhiều nhất là RSA và DSA. Cơ sở hạ tầng khóa công khai và nhiều hệ thống bảo mật mạng (ví dụ: SSL/TLS, nhiều VPN) dựa vào chữ ký số để hoạt động.
Độ phức tạp tính toán của các bài toán “khó”, chẳng hạn như các bài toán nảy sinh từ lý thuyết số, thường được sử dụng để phát triển các phương pháp khóa công khai. Bài toán thừa số nguyên liên quan đến độ cứng của RSA, trong khi bài toán logarit rời rạc liên quan đến Diffie – Hellman và DSA. Tính bảo mật của mật mã đường cong elliptic dựa trên các bài toán lý thuyết về số đường cong elliptic. Hầu hết các thuật toán khóa công khai bao gồm các phép toán như phép nhân mô-đun và phép lũy thừa, về cơ bản đắt hơn về mặt tính toán so với các kỹ thuật được sử dụng trong hầu hết các mật mã khối, đặc biệt là với kích thước khóa thông thường, do khó khăn của các vấn đề cơ bản. Do đó, các hệ thống mật mã khóa công khai thường là các hệ thống mật mã lai, trong đó thông điệp được mã hóa bằng thuật toán khóa đối xứng chất lượng cao, nhanh chóng, trong khi khóa đối xứng liên quan được gửi cùng với thông điệp nhưng được mã hóa bằng thuật toán khóa công khai. Các lược đồ chữ ký kết hợp, trong đó hàm băm mật mã được tính toán và chỉ hàm băm kết quả mới được ký điện tử, cũng thường được sử dụng.
Hàm băm trong mật mã
Hàm băm mật mã là các thuật toán mật mã tạo ra và sử dụng các khóa cụ thể để mã hóa dữ liệu cho mã hóa đối xứng hoặc không đối xứng và chúng có thể được coi là khóa. Chúng lấy bất kỳ thông điệp độ dài nào làm đầu vào và đầu ra một băm nhỏ, độ dài cố định có thể được sử dụng trong chữ ký điện tử, chẳng hạn. Kẻ tấn công không thể xác định được hai thông điệp tạo ra cùng một hàm băm bằng cách sử dụng các thuật toán băm tốt. MD4 là một hàm băm được sử dụng rộng rãi nhưng hiện nay bị lỗi; MD5, một dạng nâng cao của MD4, cũng được sử dụng rộng rãi nhưng bị hỏng trong thực tế. Loạt Thuật toán băm an toàn gồm các thuật toán băm giống MD5 được phát triển bởi Cơ quan An ninh Quốc gia Hoa Kỳ: Cơ quan quản lý tiêu chuẩn Hoa Kỳ đã quyết định “thận trọng” từ quan điểm bảo mật để phát triển một tiêu chuẩn mới nhằm “cải thiện đáng kể tính mạnh mẽ của thuật toán băm tổng thể của NIST bộ công cụ. ” SHA-1 được sử dụng rộng rãi và an toàn hơn MD5, nhưng các nhà phân tích mật mã đã xác định được các cuộc tấn công chống lại nó; họ SHA-2 cải tiến trên SHA-1, nhưng dễ bị đụng độ vào năm 2011; và dòng SHA-2 cải tiến trên SHA-1, nhưng dễ bị đụng độ Do đó, vào năm 2012, một cuộc thi thiết kế hàm băm đã được tổ chức để chọn ra một tiêu chuẩn quốc gia mới của Hoa Kỳ, được gọi là SHA-3. Cuộc thi đi đến hồi kết vào ngày 2 tháng 2012 năm 3, khi Viện Tiêu chuẩn và Công nghệ Quốc gia (NIST) công bố Keccak là thuật toán băm SHA-XNUMX mới. Các hàm băm mật mã, không giống như mã hóa dòng và khối không thể đảo ngược, cung cấp đầu ra băm không thể sử dụng để khôi phục dữ liệu đầu vào ban đầu. Các hàm băm mật mã được sử dụng để kiểm tra tính xác thực của dữ liệu được lấy từ một nguồn không đáng tin cậy hoặc để thêm một mức độ bảo vệ bổ sung.
Nguyên thủy mật mã và hệ thống mật mã
Phần lớn công việc lý thuyết của mật mã tập trung vào các nguyên thủy của mật mã — các thuật toán có các thuộc tính mật mã cơ bản — và cách chúng liên quan đến các thách thức mật mã khác. Những nguyên thủy cơ bản này sau đó được sử dụng để tạo ra các công cụ mật mã phức tạp hơn. Những nguyên bản này cung cấp những phẩm chất cơ bản được sử dụng để tạo ra các công cụ phức tạp hơn được gọi là hệ thống mật mã hoặc giao thức mật mã đảm bảo một hoặc nhiều thuộc tính bảo mật cấp cao. Mặt khác, ranh giới giữa nguyên thủy mật mã và hệ thống mật mã là tùy ý; ví dụ, thuật toán RSA đôi khi được coi là một hệ thống mật mã và đôi khi là một nguyên thủy. Các hàm giả ngẫu nhiên, các hàm một chiều và các nguyên thủy mật mã khác là những ví dụ phổ biến.
Một hệ thống mật mã, hay hệ thống mật mã, được tạo ra bằng cách kết hợp một hoặc nhiều gốc mật mã để tạo ra một thuật toán phức tạp hơn. Hệ thống mật mã (ví dụ: mã hóa El-Gamal) nhằm cung cấp chức năng cụ thể (ví dụ: mã hóa khóa công khai) đồng thời đảm bảo các phẩm chất bảo mật nhất định (ví dụ: mô hình tiên tri ngẫu nhiên được chọn-bảo mật CPA tấn công bản rõ). Để hỗ trợ chất lượng bảo mật của hệ thống, các hệ thống mật mã sử dụng các thuộc tính của các nguyên thủy mật mã cơ bản. Một hệ thống mật mã phức tạp có thể được tạo ra từ sự kết hợp của nhiều hệ thống mật mã thô sơ hơn, vì sự phân biệt giữa hệ thống nguyên thủy và hệ thống mật mã hơi tùy tiện. Trong nhiều trường hợp, cấu trúc của hệ thống mật mã bao gồm giao tiếp qua lại giữa hai hoặc nhiều bên trong không gian (ví dụ: giữa người gửi và người nhận một thông điệp an toàn) hoặc xuyên thời gian (ví dụ: giữa người gửi và người nhận một thông điệp an toàn) (ví dụ: dữ liệu sao lưu được bảo vệ bằng mật mã).
Để tìm hiểu chi tiết về chương trình giảng dạy chứng nhận, bạn có thể mở rộng và phân tích bảng bên dưới.
Chương trình giảng dạy chứng nhận mật mã học cổ điển nâng cao của EITC/IS/ACC tham khảo các tài liệu giáo khoa truy cập mở dưới dạng video. Quá trình học tập được chia thành cấu trúc từng bước (chương trình -> bài học -> chủ đề) bao gồm các phần chương trình học có liên quan. Tư vấn không giới hạn với các chuyên gia tên miền cũng được cung cấp.
Để biết chi tiết về kiểm tra thủ tục Chứng nhận Làm thế nào nó hoạt động.
Ghi chú bài giảng chính
Hiểu về mật mã của Christof Paar và Jan Pelzl, Khóa học trực tuyến dưới dạng Trang trình bày PDF
https://www.crypto-textbook.com/slides.php
Hiểu về mật mã của Christof Paar và Jan Pelzl, Khóa học trực tuyến dưới dạng Video
https://www.crypto-textbook.com/movies.php
Tài liệu tham khảo chính về mật mã cổ điển
Hiểu về mật mã của Christof Paar và Jan Pelzl
https://www.crypto-textbook.com/index.php
Tài liệu tham khảo sách mật mã cổ điển được áp dụng bổ sung
Sổ tay Mật mã Ứng dụng của A. Menezes, P. van Oorschot và S. Vanstone:
https://cacr.uwaterloo.ca/hac/
https://www.amazon.com/exec/obidos/ISBN=0849385237/7181-7381933-595174
https://notendur.hi.is/pgg/Handbook%20of%20Applied%20Cryptography.pdf
Tải xuống tài liệu chuẩn bị tự học ngoại tuyến hoàn chỉnh cho chương trình Mật mã cổ điển nâng cao EITC/IS/ACC dưới dạng tệp PDF
Tài liệu chuẩn bị EITC/IS/ACC – phiên bản tiêu chuẩn
Tài liệu chuẩn bị EITC/IS/ACC – phiên bản mở rộng với các câu hỏi ôn tập