Chủ Nhật, 12 tháng 6, 2011

Chương 9 : Mật mã - chữ ký số

MỤC LỤC


Giới thiệu về mật mã học............................................................................... Trang 1
Lịch sử của mật mã học................................................................................. Trang 3
            Mật mã học cổ điển............................................................................ Trang 3
            Thời trung cổ..................................................................................... Trang 4
            Mật mã học trong thế chiến thứ 2...................................................... Trang 4
            Mật mã học hiện đại........................................................................... Trang 6
Các thuật toán mã hóa cổ điển....................................................................... Trang 8
            Thuật toán mã hóa thay thế............................................................... Trang 8
            Thuật toán mã hóa chuyển vị............................................................. Trang  9
            Thuật toán mã hóa luồng và thuật toán mã hóa khối......................... Trang 10
Các thuật toán mã hóa hiện đại...................................................................... Trang 13
Mã hóa đối xứng................................................................................ Trang 13
Mã hóa bất đối xứng.......................................................................... Trang 14
Cơ chế chứng thực gói tin............................................................................. Trang 18
Phần trả lời câu hỏi của các nhóm phản biện................................................. Trang 22
Phần câu hỏi của giáo viên hướng dẫn ......................................................... Trang 24
















GIỚI THIỆU MẬT MÃ HỌC
Mật mã học là một lĩnh vực liên quan với các kỹ thuật ngôn ngữ và toán học để đảm bảo an toàn thông tin, cụ thể là trong thông tin liên lạc. Về phương diện lịch sử, mật mã học gắn liền với quá trình mã hóa; điều này có nghĩa là nó gắn với các cách thức để chuyển đổi thông tin từ dạng này sang dạng khác nhưng ở đây là từ dạng thông thường có thể nhận thức được thành dạng không thể nhận thức được, làm cho thông tin trở thành dạng không thể đọc được nếu như không có các kiến thức bí mật. Quá trình mã hóa được sử dụng chủ yếu để đảm bảo tính bí mật của các thông tin quan trọng, chẳng hạn trong công tác tình báo, quân sự hay ngoại giao cũng như các bí mật về kinh tế, thương mại. Trong những năm gần đây, lĩnh vực hoạt động của mật mã hóa đã được mở rộng: mật mã hóa hiện đại cung cấp cơ chế cho nhiều hoạt động hơn là chỉ duy nhất việc giữ bí mật và có một loạt các ứng dụng như: chứng thực khóa công khai, chữ ký số, bầu cử điện tử hay tiền điện tử. Ngoài ra, những người không có nhu cầu thiết yếu đặc biệt về tính bí mật cũng sử dụng các công nghệ mật mã hóa, thông thường được thiết kế và tạo lập sẵn trong các cơ sở hạ tầng của công nghệ tính toán và liên lạc viễn thông.
Mật mã học là một lĩnh vực liên ngành, được tạo ra từ một số lĩnh vực khác. Các dạng cổ nhất của mật mã hóa chủ yếu liên quan với các kiểu mẫu trong ngôn ngữ. Gần đây thì tầm quan trọng đã thay đổi và mật mã hóa sử dụng và gắn liền nhiều hơn với toán học, cụ thể là toán học rời rạc, bao gồm các vấn đề liên quan đến lý thuyết số, lý thuyết thông tin, độ phức tạp tính toán, thống kêtổ hợp. Mật mã hóa cũng được coi là một nhánh của công nghệ, nhưng nó được coi là không bình thường vì nó liên quan đến các sự chống đối ngầm có ác tâm (xem công nghệ mật mã hóacông nghệ an ninh). Mật mã hóa là công cụ được sử dụng trong an ninh máy tínhmạng.
Thám mã:
Mục tiêu của thám mã (phá mã) là tìm những điểm yếu hoặc không an toàn trong phương thức mật mã hóa. Thám mã có thể được thực hiện bởi những kẻ tấn công ác ý, nhằm làm hỏng hệ thống; hoặc bởi những người thiết kế ra hệ thống (hoặc những người khác) với ý định đánh giá độ an toàn của hệ thống.
Có rất nhiều loại hình tấn công thám mã, và chúng có thể được phân loại theo nhiều cách khác nhau. Một trong những đặc điểm liên quan là những người tấn công có thể biết và làm những gì để hiểu được thông tin bí mật. Ví dụ, những người thám mã chỉ truy cập được bản mã hay không? hay anh ta có biết hay đoán được một phần nào đó của bản rõ? hoặc thậm chí: Anh ta có chọn lựa các bản rõ ngẫu nhiên để mật mã hóa? Các kịch bản này tương ứng với tấn công bản mã, tấn công biết bản rõtấn công chọn lựa bản rõ.
Trong khi công việc thám mã thuần túy sử dụng các điểm yếu trong các thuật toán mật mã hóa, những cuộc tấn công khác lại dựa trên sự thi hành, được biết đến như là các tấn công side-channel. Nếu người thám mã biết lượng thời gian mà thuật toán cần để mã hóa một lượng bản rõ nào đó, anh ta có thể sử dụng phương thức tấn công thời gian để phá mật mã mà nếu không thì chúng chịu được các phép thám mã. Người tấn công cũng có thể nghiên cứu các mẫu và độ dài của thông điệp để rút ra các thông tin hữu ích cho việc phá mã; điều này được biết đến như là thám mã lưu thông.
Nếu như hệ thống mật mã sử dụng khóa xuất phát từ mật khẩu, chúng có nguy cơ bị tấn công kiểu duyệt toàn bộ (brute force), vì kích thước không đủ lớn cũng như thiếu tính ngẫu nhiên của các mật khẩu. Đây là điểm yếu chung trong các hệ thống mật mã. Đối với các ứng dụng mạng, giao thức thỏa thuận khóa chứng thực mật khẩu có thể giảm đi một số các giới hạn của các mật khẩu. Đối với các ứng dụng độc lập, hoặc là các biện pháp an toàn để lưu trữ các dữ liệu chứa mật khẩu và/hoặc các cụm từ kiểm soát truy cập thông thường được gợi ý nên sử dụng.
Thám mã tuyến tínhThám mã vi phân là các phương pháp chung cho mật mã hóa khóa đối xứng. Khi mật mã hóa dựa vào các vấn đề toán học như độ khó NP, giống như trong trường hợp của thuật toán khóa bất đối xứng, các thuật toán như phân tích ra thừa số nguyên tố trở thành công cụ tiềm năng cho thám mã.
















LỊCH SỬ MẬT MÃ HỌC
Mật mã học là một ngành có lịch sử từ hàng nghìn năm nay. Trong phần lớn thời gian phát triển của mình (ngoại trừ vài thập kỷ trở lại đây), lịch sử mật mã học chính là lịch sử của những phương pháp mật mã học cổ điển - các phương pháp mật mã hóa với bútgiấy, đôi khi có hỗ trợ từ những dụng cụ cơ khí đơn giản. Vào đầu thế kỷ 20, sự xuất hiện của các cơ cấu cơ khí và điện cơ, chẳng hạn như máy Enigma, đã cung cấp những cơ chế phức tạp và hiệu quả hơn cho việc mật mã hóa. Sự ra đời và phát triển mạnh mẽ của ngành điện tửmáy tính trong những thập kỷ gần đây đã tạo điều kiện để mật mã học phát triển nhảy vọt lên một tầm cao mới.
Sự phát triển của mật mã học luôn luôn đi kèm với sự phát triển của các kỹ thuật phá mã (hay thám mã). Các phát hiện và ứng dụng của các kỹ thuật phá mã trong một số trường hợp đã có ảnh hưởng đáng kể đến các sự kiện lịch sử. Một vài sự kiện đáng ghi nhớ bao gồm việc phát hiện ra bức điện Zimmermann khiến Hoa Kỳ tham gia Thế chiến I và việc phá mã thành công hệ thống mật mã của Đức Quốc xã góp phần làm đẩy nhanh thời điểm kết thúc thế chiến II.
Cho tới đầu thập kỷ 1970, các kỹ thuật liên quan tới mật mã học hầu như chỉ nằm trong tay các chính phủ. Hai sự kiện đã khiến cho mật mã học trở nên thích hợp cho mọi người, đó là: sự xuất hiện của tiêu chuẩn mật mã hóa DES và sự ra đời của các kỹ thuật mật mã hóa khóa công khai.
  1. Mật mã học cổ điển:
Những bằng chứng sớm nhất về sử dụng mật mã học là các chữ tượng hình không tiêu chuẩn tìm thấy trên các bức tượng Ai Cập cổ đại (cách đây khoảng 4500). Những ký hiệu tỏ ra không phải để phục vụ mục đích truyền thông tin bí mật mà có vẻ như là nhằm mục đích gợi nên những điều thần bí, trí tò mò hoặc thậm chí để tạo sự thích thú cho người xem. Ngoài ra còn rất nhiều ví dụ khác về những ứng dụng của mật mã học hoặc là những điều tương tự. Muộn hơn, các học giả về tiếng Hebrew có sử dụng một phương pháp mã hóa thay thế bảng chữ cái đơn giản chẳng hạn như mật mã Atbash (khoảng năm 500 đến năm 600). Mật mã học từ lâu đã được sử dụng trong các tác phẩm tôn giáo để che giấu thông tin với chính quyền hoặc nền văn hóa thống trị. Ví dụ tiêu biểu nhất là "số chỉ kẻ thù của Chúa" (tiếng Anh: Number of the Beast) xuất hiện trong kinh Tân Ước của Cơ đốc giáo. Ở đây, số 666 có thể là cách mã hóa để chỉ đến Đế chế La Mã hoặc là đến hoàng đế Nero của đế chế này. Việc không đề cập trực tiếp sẽ đỡ gây rắc rối khi cuốn sách bị chính quyền chú ý. Đối với Cơ đốc giáo chính thống thì việc che dấu này kết thúc khi Constantine cải đạo và chấp nhận đạo Cơ đốc là tôn giáo chính thống của đế chế.
Gậy mật mã của người Hy Lạp là một trong những dụng cụ đầu tiên trong ngành mật mã hoá
Người Hy Lạp cổ đại cũng được biết đến là đã sử dụng các kỹ thuật mật mã (chẳng hạn như gậy mật mã). Cũng có những bằng chứng rõ ràng chứng tỏ người La Mã nắm được các kỹ thuật mật mã (mật mã Caesar và các biến thể). Thậm chí đã có những đề cập đến một cuốn sách nói về mật mã trong quân đội La Mã; tuy nhiên cuốn sách này đã thất truyền.
Tại Ấn Độ, mật mã học cũng khá nổi tiếng. Trong cuốn sách Kama Sutra, mật mã học được xem là cách những người yêu nhau trao đổi thông tin mà không bị phát hiện
  1. Thời Trung cổ
Nguyên do xuất phát có thể là từ việc phân tích bản kinh Qur'an, do nhu cầu tôn giáo, mà kỹ thuật phân tích tần suất đã được phát minh để phá vỡ các hệ thống mật mã đơn ký tự vào khoảng năm 1000. Đây chính là kỹ thuật phá mã cơ bản nhất được sử dụng, mãi cho tới tận thời điểm của thế chiến thứ II. Về nguyên tắc, mọi kỹ thuật mật mã đều không chống lại được kỹ thuật phân tích mã (cryptanalytic technique) này cho tới khi kỹ thuật mật mã dùng nhiều bảng chữ cái được Alberti sáng tạo (năm 1465).
Mật mã học (tuy âm thầm) ngày càng trở nên quan trọng dưới tác động của những thay đổi, cạnh tranh trong chính trị và tôn giáo. Chẳng hạn tại châu Âu, trong và sau thời kỳ Phục hưng, các công dân của các thành bang thuộc Ý, gồm cả các thành bang thuộc giáo phậnCông giáo La Mã, đã sử dụng và phát triển rộng rãi các kỹ thuật mật mã. Tuy nhiên rất ít trong số này tiếp thu được công trình của Alberti (các công trình của họ không phản ảnh sự hiểu biết hoặc tri thức về kỹ thuật tân tiến của Alberti) và do đó hầu như tất cả những người phát triển và sử dụng các hệ thống này đều quá lạc quan về độ an toàn. Điều này hầu như vẫn còn đúng cho tới tận hiện nay, nhiều nhà phát triển không xác định được điểm yếu của hệ thống. Do thiếu hiểu biết cho nên các đánh giá dựa trên suy đoán và hy vọng là phổ biến.
Mật mã học, phân tích mã học và sự phản bội của nhân viên tình báo, của người đưa thư, đều xuất hiện trong âm mưu Babington diễn ra dưới triều đại của nữ hoàng Elizabeth I dẫn đến kết cục xử tử nữ hoàng Mary I của Scotland. Một thông điệp được mã hóa từ thời "người dưới mặt nạ sắt" (Man in the Iron Mask) (được giải mã vào khoảng 1900 bởi Étienne Bazeries) cho biết một số thông tin về số phận của tù nhân này (đáng tiếc thay là những thông tin này cũng chưa được rõ ràng cho lắm). Mật mã học, và những lạm dụng của nó, cũng là những phần tử liên quan đến mưu đồ dẫn tới việc xử tử Mata Hari và âm mưu quỷ quyệt dẫn đến trò hề trong việc kết án Dreyfus và bỏ tù hai người đầu thế kỷ 20. May mắn thay, những nhà mật mã học (cryptographer) cũng nhúng tay vào việc phơi bày mưu đồ dẫn đến các khúc mắc của Dreyfus; Mata Hari, ngược lại, đã bị bắn chết.
Ngoài các nước ở Trung Đông và châu Âu, mật mã học hầu như không được phát triển. Tại Nhật Bản, mãi cho tới 1510, mật mã học vẫn chưa được sử dụng và các kỹ thuật tiên tiến chỉ được biết đến sau khi nước này mở cửa với phương Tây (thập kỷ 1860).
  1. Mật mã học trong Thế chiến II
Description: http://upload.wikimedia.org/wikipedia/commons/thumb/a/ae/Enigma.jpg/220px-Enigma.jpg

Máy Enigma được Phát Xít Đức sử dụng rộng rãi; việc phá vỡ hệ thống này đã mang lại cho quân Đồng Minh những tin tức tình báo cực kỳ quan trọng
Trong thế chiến II, các hệ thống mật mã cơ khícơ điện tử được sử dụng rộng rãi mặc dù các hệ thống thủ công vẫn được dùng tại những nơi không đủ điều kiện. Các kỹ thuật phân tích mật mã đã có những đột phá trong thời kỳ này, tất cả đều diễn ra trong bí mật. Cho đến gần đây, các thông tin này mới dần được tiết lộ do thời kỳ giữ bí mật 50 năm của chính phủ Anh đã kết thúc, các bản lưu của Hoa Kỳ dần được công bố cùng với sự xuất hiện của các bài báo và hồi ký có liên quan.
Người Đức đã sử dụng rộng rãi một hệ thống máy rôto cơ điện tử, dưới nhiều hình thức khác nhau, có tên gọi là máy Enigma. Vào tháng 12 năm 1932, Marian Rejewski, một nhà toán học tại Cục mật mã Ba Lan (tiếng Ba Lan: Biuro Szyfrów), đã dựng lại hệ thống này dựa trên toán học và một số thông tin có được từ các tài liệu do đại úy Gustave Bertrand của tình báo quân sự Pháp cung cấp. Đây có thể coi là đột phá lớn nhất trong lịch sử phân tích mật mã trong suốt một nghìn năm trở lại. Rejewski cùng với các đồng sự của mình là Jerzy RóżyckiHenryk Zygalski đã tiếp tục nghiên cứu và bắt nhịp với những tiến hóa trong các thành phần của hệ thống cũng như các thủ tục mật mã hóa. Cùng với những tiến triển của tình hình chính trị, nguồn tài chính của Ba Lan trở nên cạn kiệt và nguy cơ của cuộc chiến tranh trở nên gần kề, vào ngày 25 tháng 7 năm 1939 tại Warszawa, cục mật mã Ba Lan, dưới chỉ đạo của bộ tham mưu, đã trao cho đại diện tình báo Pháp và Anh những thông tin bí mật về hệ thống Enigma.
Ngay sau khi Thế chiến II bắt đầu (ngày 1 tháng 9 năm 1939), các thành viên chủ chốt của cục mật mã Ba Lan được sơ tán về phía tây nam; và đến ngày 17 tháng 9, khi quân đội Liên Xô tiến vào Ba Lan, thì họ lại được chuyển sang Romania. Từ đây, họ tới Paris (Pháp). Tại PC Bruno, ở gần Paris, họ tiếp tục phân tích Enigma và hợp tác với các nhà mật mã học của Anh tại Bletchley Park lúc này đã tiến bộ kịp thời. Những người Anh, trong đó bao gồm những tên tuổi lớn của ngành mật mã học như Gordon WelchmanAlan Turing, người sáng lập khái niệm khoa học điện toán hiện đại, đã góp công lớn trong việc phát triển các kỹ thuật phá mã hệ thống máy Enigma.
Ngày 19 tháng 4 năm 1945, các tướng lĩnh cấp cao của Anh được chỉ thị không được tiết lộ tin tức rằng mã Enigma đã bị phá, bởi vì như vậy nó sẽ tạo điều kiện cho kẻ thù bị đánh bại cơ sở để nói rằng họ đã "không bị đánh bại một cách sòng phẳng" (were not well and fairly beaten)[1].
Các nhà mật mã học của Hải quân Mỹ (với sự hợp tác của các nhà mật mã học Anh và Hà Lan sau 1940) đã xâm nhập được vào một số hệ thống mật mã của Hải quân Nhật. Việc xâm nhập vào hệ thống JN-25 trong số chúng đã mang lại chiến thắng vẻ vang cho Mỹ trong trận Midway. SIS, một nhóm trong quân đội Mỹ, đã thành công trong việc xâm nhập hệ thống mật mã ngoại giao tối mật của Nhật (một máy cơ điện dùng "bộ chuyển mạch dịch bước" (stepping switch) được người Mỹ gọi là Purple) ngay cả trước khi thế chiến II bắt đầu. Người Mỹ đặt tên cho những bí mật mà học tìm được từ việc thám mã, có thể đặc biệt là từ việc phá mã máy Purple, với cái tên "Magic". Người Anh sau này đặt tên cho những bí mật mà họ tìm ra trong việc thám mã, đặc biệt là từ luồng thông điệp được mã hóa bởi các máy Enigma, là "Ultra". Cái tên Anh trước đó của UltraBoniface.
Quân đội Đức cũng cho triển khai một số thử nghiệm cơ học sử dụng thuật toán mật mã dùng một lần (one-time pad). Bletchley Park gọi chúng là mã Fish, và ông Max Newman cùng đồng nghiệp của mình đã thiết kế ra một máy tính điện tử số khả lập trình (programmable digital electronic computer) đầu tiên là máy Colossus để giúp việc thám mã của họ. Bộ ngoại giao Đức bắt đầu sử dụng thuật toán mật mã dùng một lần vào năm 1919; một số luồng giao thông của nó đã bị người ta đọc được trong Thế chiến II, một phần do kết quả của việc khám phá ra một số tài liệu chủ chốt tại Nam Mỹ, do sự bất cẩn của những người đưa thư của Đức không hủy thông điệp một cách cẩn thận.
Bộ ngoại giao của Nhật cũng cục bộ xây dựng một hệ thống dựa trên nguyên lý của "bộ điện cơ chuyển mạch dịch bước" (được Mỹ gọi là Purple), và đồng thời cũng sử dụng một số máy tương tự để trang bị cho một số tòa đại sứ Nhật Bản. Một trong số chúng được người Mỹ gọi là "Máy-M" (M-machine), và một cái nữa được gọi là "Red". Tất cả những máy này đều ít nhiều đã bị phía Đồng Minh phá mã.
Description: http://upload.wikimedia.org/wikipedia/commons/thumb/f/fb/SIGABA-patent.png/320px-SIGABA-patent.png
Description: http://bits.wikimedia.org/skins-1.17/common/images/magnify-clip.png
SIGABA được miêu tả trong Bằng sáng chế của Mỹ 6.175.625, đệ trình năm 1944 song mãi đến năm 2001 mới được phát hành
Các máy mật mã mà phe Đồng Minh sử dụng trong thế chiến II, bao gồm cả máy TypeX của Anh và máy SIGABA của Mỹ, đều là những thiết kế cơ điện dùng rôto trên tinh thần tương tự như máy Enigma, song với nhiều nâng cấp lớn. Không có hệ thống nào bị phá mã trong quá trình của cuộc chiến tranh. Người Ba Lan sử dụng máy Lacida, song do tính thiếu an ninh, máy không tiếp tục được dùng. Các phân đội trên mặt trận chỉ sử dụng máy M-209 và các máy thuộc họ M-94 ít bảo an hơn. Đầu tiên, các nhân viên mật vụ trong Cơ quan đặc vụ của Anh (Special Operations Executive - SOE) sử dụng "mật mã thơ" (các bài thơ mà họ ghi nhớ là những chìa khóa), song ở những thời kỳ sau trong cuộc chiến, họ bắt đầu chuyển sang dùng các hình thức của mật mã dùng một lần (one-time pad).

4.      Mật mã học hiện đại

A.    Shannon

Nhiều người cho rằng kỷ nguyên của mật mã học hiện đại được bắt đầu với Claude Shannon, người được coi là cha đẻ của mật mã toán học. Năm 1949 ông đã công bố bài Lý thuyết về truyền thông trong các hệ thống bảo mật (Communication Theory of Secrecy Systems) trên tập san Bell System Technical Journal - Tập san kỹ thuật của hệ thống Bell - và một thời gian ngắn sau đó, trong cuốn Mathematical Theory of Communication - Lý thuyết toán học trong truyền thông - cùng với tác giả Warren Weaver. Những công trình này, cùng với những công trình nghiên cứu khác của ông về lý thuyết về tin học và truyền thông (information and communication theory), đã thiết lập một nền tảng lý thuyết cơ bản cho mật mã học và thám mã học. Với ảnh hưởng đó, mật mã học hầu như bị thâu tóm bởi các cơ quan truyền thông mật của chính phủ, chẳng hạn như NSA, và biến mất khỏi tầm hiểu biết của công chúng. Rất ít các công trình được tiếp tục công bố, cho đến thời kỳ giữa thập niên 1970, khi mọi sự được thay đổi.

B.     Tiêu chuẩn mật mã hóa

Thời kỳ giữa thập niên kỷ 1970 được chứng kiến hai tiến bộ công chính lớn (công khai). Đầu tiên là sự công bố đề xuất Tiêu chuẩn mật mã hóa dữ liệu (Data Encryption Standard) trong "Công báo Liên bang" (Federal Register) ở nước Mỹ vào ngày 17 tháng 3 năm 1975. Với đề cử của Cục Tiêu chuẩn Quốc gia (National Bureau of Standards - NBS) (hiện là NIST), bản đề xuất DES được công ty IBM (International Business Machines) đệ trình trở thành một trong những cố gắng trong việc xây dựng các công cụ tiện ích cho thương mại, như cho các nhà băng và cho các tổ chức tài chính lớn. Sau những chỉ đạo và thay đổi của NSA, vào năm 1977, nó đã được chấp thuận và được phát hành dưới cái tên Bản Công bố về Tiêu chuẩn Xử lý Thông tin của Liên bang (Federal Information Processing Standard Publication - FIPS) (phiên bản hiện nay là FIPS 46-3). DES là phương thức mật mã công khai đầu tiên được một cơ quan quốc gia như NSA "tôn sùng". Sự phát hành bản đặc tả của nó bởi NBS đã khuyến khích sự quan tâm chú ý của công chúng cũng như của các tổ chức nghiên cứu về mật mã học.
Năm 2001, DES đã chính thức được thay thế bởi AES (viết tắt của Advanced Encryption Standard - Tiêu chuẩn mã hóa tiên tiến) khi NIST công bố phiên bản FIPS 197. Sau một cuộc thi tổ chức công khai, NIST đã chọn Rijndael, do hai nhà mật mã người Bỉ đệ trình, và nó trở thành AES. Hiện nay DES và một số biến thể của nó (như Tam phần DES (Triple DES); xin xem thêm trong phiên bản FIPS 46-3), vẫn còn được sử dụng, do trước đây nó đã được gắn liền với nhiều tiêu chuẩn của quốc gia và của các tổ chức. Với chiều dài khoá chỉ là 56-bit, nó đã được chứng minh là không đủ sức chống lại những tấn công kiểu vét cạn (brute force attack - tấn công dùng bạo lực). Một trong những cuộc tấn công kiểu này được thực hiện bởi nhóm "nhân quyền cyber" (cyber civil-rights group) tên là Tổ chức tiền tuyến điện tử (Electronic Frontier Foundation) vào năm 1997, và đã phá mã thành công trong 56 tiếng đồng hồ -- câu chuyện này được nhắc đến trong cuốn Cracking DES (Phá vỡ DES), được xuất bản bởi "O'Reilly and Associates". Do kết quả này mà hiện nay việc sử dụng phương pháp mật mã hóa DES nguyên dạng, có thể được khẳng định một cách không nghi ngờ, là một việc làm mạo hiểm, không an toàn, và những thông điệp ở dưới sự bảo vệ của những hệ thống mã hóa trước đây dùng DES, cũng như tất cả các thông điệp được truyền gửi từ năm 1976 trở đi sử dụng DES, đều ở trong tình trạng rất đáng lo ngại. Bất chấp chất lượng vốn có của nó, một số sự kiện xảy ra trong năm 1976, đặc biệt là sự kiên công khai nhất của Whitfield Diffie, chỉ ra rằng chiều dài khóa mà DES sử dụng (56-bit) là một khóa quá nhỏ. Đã có một số nghi ngờ xuất hiện nói rằng một số các tổ chức của chính phủ, ngay tại thời điểm hồi bấy giờ, cũng đã có đủ công suất máy tính để phá mã các thông điệp dùng DES; rõ ràng là những cơ quan khác cũng đã có khả năng để thực hiện việc này rồi.


CÁC THUẬT TOÁN MÃ HÓA CỔ ĐIỂN
  1. Thuật toán mã hóa thay thế
  1. Thuật toán mã hóa Caesar
Nổi tiếng là thuật toán thay thế theo cách đơn giản mà mỗi ký tự văn bản gốc sẽ được thay thể bởi ký tự thứ ba tính từ bên phải nó trong bảng 26 chữ cái (“A” được thay thế bởi “D,” “B” được thay thế bởi “E,”..., “W” được thay thế bởi “Z,” “X” được thay thế bởi “A,” “Y” được thay thế bởi “B,” and “Z” được thay thế bởi “C”).
Description: http://datasecurity.vn/images/stories/thumbnails/images-stories-symmetric3-179x176.gif
Một thuật toán mã hóa thay thế là loại thuật toán trong đó mỗi ký tự trong văn bản gốc được thay thế bởi một ký khác trong văn bản mật mã. Người nhận sẽ nghịch đảo sự thay thế đó trên văn bản mật mã để lấy lại văn bản gốc.  
Trong công nghệ mã hóa cổ điển, có bốn kiểu thuật toán mã hóa thay thế:
  1. Thuật toán mã hóa thay thế đơn giản hoặc thuật toán mã hóa một chữ cái
Là loại thuật toán mà mỗi ký tự của văn bản gốc được thay thế bởi một ký tự tương ứng của văn bản mật mã. Chương trình mã hóa như vậy được gọi là thuật toán mã hóa thay thế đơn giản.
  1. Thuật toán mã hóa thay thế đồng âm
Cũng giống như hệ thống mã hóa thay thế đơn giản, ngoại trừ một ký tự văn bản gốc có thể ứng với một trong số nhiều ký tự của văn bản mật mã. Ví dụ, “A” có thể ứng với 5, 13, 25, hoặc 56, “B” có thể ứng với 7, 19, 31, hoặc 42, và tương tự.
  1. Thuật toán mã hóa thay thế theo khối
Là thuật toán mà các khối ký tự được mã hóa thành từng nhóm. Ví dụ, “ABA” có thể ứng với “RTQ,” “ABB” có thể ứng với “SLL,” và tương tự.
  1. Thuật toán mã hóa thay thế nhiều chữ cái
Được tạo ra từ nhiều thuật toán mã hóa thay thế đơn giản. Ví dụ, có thể có năm thuật toán mã hóa thay thế đơn giản khác nhau được sử dụng; một thuật toán cụ thể sẽ thay đổi vị trí của mỗi ký tự văn bản gốc.
  1. Thuật toán mã hóa khóa liên tục
Đôi khi được gọi là thuật toán mã hóa sách—trong đó một văn bản được sử dụng để mã hóa một văn bản khác.
  1. Thuật toán mã hóa pad dùng một lần
Được giới thiệu bởi Gilbert Sandfort Vernam, ban đầu được đề xuất là thuật toán mã hóa teletype, trong đó một khóa được chuẩn bị trước sẽ được lưu giữ trên băng giấy, khóa đó sẽ kết hợp từng ký tự qua ký tự khác trong văn bản gốc để tạo ra văn bản mật mã.
Để giả mã văn bản mật mã, có thể sử dụng cùng khóa đó để kết hợp lại các ký tự, từ đó sẽ lấy được văn bản gốc.
Trong thuật toám mã hóa Vernam hiện đại, văn bản gốc là XORed với dòng dữ liệu ngẫu nhiên hoặc giả ngẫu nhiên có độ dài tương tự nhau để tạo ra văn bản mật mã. Nếu dòng dữ liệu thật sự là ngẫu nhiên và chỉ được sử dụng một lần thì đó chính là pad dùng một lần.
RC4 is một ví dụ của thuật toán mã hóa Vernam được sử dụng rộng rãi trên Internet.
  1. Thuật toán mã hóa chuyển vị
Đây là một phương pháp mã hóa mà những vị trí được tổ chức bởi các đơn vị của văn bản gốc (thường là các ký tự hoặc nhóm ký tự) được chuyển dịch theo một hệ thống có quy tắc, như vậy văn bản mã hóa tạo nên sự hoán vị của văn bản gốc. Đó chính là sự thay đổi thứ tự của các đơn vị.
Thuật toán mã hóa hàng rào đường ray (Rail Fence) là loại thuật toán mã hóa chuyển vị mà tên của nó bắt nguồn từ cách thức tiến hành mã hoá. Trong các thuật toán mã hóa Rail Fence, văn bản gốc được viết tiếp xuống "đường ray" của một hàng rào tưởng tượng, rồi di chuyển lên khi chúng ta viết xuống phía dưới. Sau đó các tin nhắn sẽ được đọc ra theo hàng. Ví dụ, bằng cách sử dụng bốn "đường ray"
Description: http://datasecurity.vn/images/stories/symmetric4.gif
Trong một phương pháp chuyển vị hình cột tinh vi hơn, ban đầu tin nhắn sẽ được viết vào sáu cột:
Description: http://datasecurity.vn/images/stories/symmetric5.gif
Sau đó các cột này sẽ được xáo trộn theo một từ khoá đã thoả thuận trước. Tiếp theo, các chữ cái của từ khóa này được xếp theo thứ tự bảng chữ cái để xác định thứ tự cột, ví dụ như, từ khóa “DARKLY”  sẽ được sắp xếp là "ADKLRY," sau khi thực hiện điều đó, thứ tự của sáu cột là 2, 1, 4, 5, 3, 6: 
Description: http://datasecurity.vn/images/stories/symmetric6.gif
Tiếp theo, các cột sẽ được sao chép (theo chiều dọc) theo thứ tự đó. Sau đó cần phân chia văn bản mật mã tạo được thành các nhóm năm chữ cái để làm cho kẻ xâm nhập không thể phân tích cú pháp của thông tin (như cần phá vỡ cột hoặc từ). Ví dụ, chúng tôi sẽ mã hóa thành:
Description: http://datasecurity.vn/images/stories/symmetric7.gif
  1. Thuật toán mã hóa luồng với Thuật toán mã hóa khối
Công nghệ mã hóa đối xứng được chia thành thuật toán mã hóa khối và luồng, ahi thuật toán này rất dễ để phân biệt.
  1. Thuật toán mã hóa luồng
Mã hóa từng bit, hết bít này đến bít khác.. Có thể thực hiện điều này bằng cách thêm một bit từ luồng khóa vào một bit văn bản gốc. Những loại thuật toán mã hóa luồng đồng bộ là luồng khóa chỉ phụ thuộc vào khóa đó và loại không đồng bộ là luồng khóa còn phụ thuộc vào văn bản mật mã.
Description: http://datasecurity.vn/images/stories/thumbnails/images-stories-symmetric8-589x279.gif
Thuật toán mã hóa luồng cũng tương tự như thuật toán mã hõa pad dùng một lần. Để mã hóa dữ liệu, thuật toán này tạo ra một pad dựa trên khóa. Pad đó có thể lớn nhỏ theo nhu cầu. Thuật toán sẽ chuyển vị (XOR) văn bản gốc với pad đó.
Trong công nghệ mã hóa, “pad” được gọi là luồng khóa. Một pad đúng phải mang tính ngẫu nhiên; thuật toán mã hóa luồng sẽ tạo ra giá trị giả ngẫu nhiên.
  1. Thuật toán mã hóa khối
Mã hóa cả khối bit của văn bản thường cùng một lúc và với cùng một khóa. Điều này có nghĩa là sự mã hóa bất kỳ bit nào trong khối đã cho cũng phụ thuộc vào mọi bit khác trong cùng khối.
Description: http://datasecurity.vn/images/stories/thumbnails/images-stories-symmetric9-628x279.gif
Trong thực tế, đa số các thuật toán mã hóa khối đều có độ dài khối là 128 bit (16 byte) như thiêu chuẩn mã hóa cao cấp (AES), hoặc độ dài khối 64 bit (8 byte) như tiêu chuẩn mã hóa dữ liệu (DES) hoặc thuật toán 3 DES (3DES).
Khối văn bản gốc đầu tiên, không có khối bản mã nào dẫn trước, được gọi là vetor khởi đầu. Khối cuối cùng chưa hoàn thành được gọi là khối đệm để hoàn thành kích cỡ tiêu chuẩn.
Thuật toán mã hóa khối sử dụng nhiều phương pháp mã hóa khác nhau, những phương pháp này được gọi là chế độ hoạt động. Các chế độ phổ biến nhất bao gồm:
n  Chế Độ Sách Mã Điện Tử (ECB).
n  Chế Độ Tạo Khối Chuỗi Mật Mã (CBC).
n  Chế Độ Hồi Tiếp Mật Mã (CFB).
n  Chế Độ Hồi Tiếp Đầu Ra (OFB).
n  Chế Độ Counter (CTR). 
Trong thực tế, cụ thể đối với mã hóa thông tin liên lạc trên Internet, thuật toán mã hóa khối thường được sử dụng nhiều hơn thuật toán mã hóa luồng.
Bởi vì thuật toán mã hóa luồng có xu hướng nhỏ và nhanh, chúng đặc biệt thích hợp cho các trình ứng dụng có ít nguồn tài nguyên tính toán, ví dụ như điện thoại di động hoặc các thiết bị nhúng có kích thước nhỏ khác.
Thuật toán mã hóa luồng luôn nhanh hơn và thường sử dụng ít mã hơn so với các thuật toãn mã hóa khối. Thuật toán mã hóa luồng phổ biến nhất, RC4, có lẽ nhanh hơn ít nhất là hai lần so với thuật toán mã hóa hóa khối được cho là nhanh nhất.
Mặt khác, với thuật toán mã hóa khối, bạn có thể sử dụng lại khóa. Như vậy việc quản lý khóa dễ dàng hơn nhiều khi chỉ cần quản lý một khóa.
Một yếu tố khác là sự tiêu chuẩn hóa. Mọi người đều sử dụng hai thuật toán tiêu chuẩn là DES và AES, cả hai đều là thuật toán mã hóa khối.
Không có loại nào trong cả hai loại được cho là tốt hơn. Nếu bạn cần sử dụng lại khóa thì hãy dùng thuật toán mã hóa khối. Nếu bạn phải đảm bảo cho khả năng tương tác thì tốt nhất là hãy sử dụng thuật toán mã hóa khối AES, nếu không thì có thể dùng thuật toán mã hóa luồng.
Cơ sở dữ liệu – sử dụng thuật toán mã hóa khối – Khả năng tương tác với phần mềm khác không phải là vấn đề nhưng bạn sẽ cần sử dụng lại khóa.
E-mail – sử dụng thuật toán mã hóa khối (AES) – AES đóng vai trò quan trọng trong việc cung cấp khả năng tương tác với tất cả các gói e-mail.
SSL/TLS – sử dụng thuật toán mã hóa luồng (RC4) – Tốc độ của RC4 cực kỳ nhanh, mỗi kết nối có thể có một khóa mới và hầu như tất cả các trình duyệt Web và máy chủ đều có RC4.
Mã hóa file – sử dụng thuật toán mã hóa khối – bạn có thể mã hóa mọi file với cùng một khóa rồi bảo vệ khóa đó – việc quản lý khóa đơn giản và không tốn kém.


CÁC THUẬT TOÁN MÃ HÓA HIỆN ĐẠI
  1. mã hóa đối xứng
1.      Tiêu chuẩn mã hóa cao cấp (AES)
Là một tiêu chuẩn mã hóa khóa đối xứng được thông qua bởi chính phủ Hoa Kỳ. tiêu chuẩn này bao gồm ba thuật toán mã hóa khối, AES-128, AES-192 và AES-256, được thông qua từ một bộ sưu tập hợp thuật toán lớn hơn ban đầu được công bố bởi Rijndael. Mỗi thuật toán mã hóa trong số đó có kích thước khối 128-bit với kích thước khóa tương ứng là 128, 192 và 256 bit, tương ứng. Các thuật toán mã hóa AES đã được phân tích rộng rãi và hiện đang được sử dụng trên toàn thế giới.
2.      Tiêu chuẩn mã hóa dữ liệu (DES)
Là một thuật toán mã hóa khối được lựa chọn bởi Cục Tiêu chuẩn Quốc gia làm Tiêu chuẩn Xử lý Thông tin Liên bang Chính thức (FIPS) cho Hoa Kỳ vào năm 1976 và sau đó đã được toàn thế giới ưa dùng. Thuật toán này dựa trên thuật toán khóa đối xứng sử dụng khóa 56-bit. Ban đầu thuật toán này gây nhiều tranh cãi với các thành phần thiết kế được phân loại, độ dài khóa tương đối ngắn.
3.      Triple DES (3DES)
Áp dụng thuật toán mã hóa theo Tiêu chuẩn Mã hóa Dữ liệu (DES) ba lần cho mỗi khối dữ liệu. Do khả năng gia tăng công suất tính toán có sẵn, kích thước khóa của thuật toán mã hóa DES ban đầu đã trở thành đối tượng của các cuộc tấn công vét cạn; Triple DES được thiết kế để cung cấp phương pháp gia tăng khóa tương đối đơn giản.
4.      CAST-128 (hoặc CAST5)
Là một thuật toán mã hóa khối được sử dụng trong nhiều sản phẩm, đáng chú ý là nó được mặc định trong một số phiên bản của PGP và GPG. Thuật toán này cũng đã được phê duyệt để sử dụng trong chính phủ Canada bởi Tổ chức Bảo Mật Thông Tin Liên Lạc. CAST-256 (là trình ứng cử AES cũ) được bắt nguồn từ CAST-128.
5.      RC4
Là thuật toán mã hóa luồng phần mềm được sử dụng rộng rãi nhất và được dùng trong các giao thức phổ biến như Secure Sockets Layer (SSL) (để bảo vệ lưu lượng truy cập Internet) và WEP (để bảo vệ an toàn mạng không dây). Do nhược điểm đáng chú ý về tính đơn giản và tốc độ trong phần mềm, RC4 đã bị tranh luận, phản đối việc sử dụng nó trong các hệ thống mới. Nó đặc biệt dễ bị tổn thương khi đoạn đầu của luồng khóa đầu ra không bị loại bỏ, các khóa có liên quan hay không ngẫu nhiên được sử dụng, hoặc một luồng khóa được dùng hai lần.
6.      RC5
Được thiết kế bởi Ronald Rivest vào năm 1994. Ứng cử RC6 của Tiêu chuẩn Mã hóa Cao Cấp (AES) là dựa trên RC5. Không giống như nhiều chương trình khác, RC5 có kích thước khối biến có thể biến đổi (32, 64 hoặc 128 bit), kích thước khóa (từ 0 đến 2.040 bit) và số lượng vòng (từ 0 đến 255). Lựa chọn tham số được đề xuất ban đầu là kích thước khối 64 bit, một khóa 128-bit và 12 vòng. Đặc điểm chính của RC5 là sử dụng các phép quay phụ thuộc vào dữ liệu.
7.      Blowfish
Được thiết kế bởi Bruce Schneier vào năm 1993 và cho tốc độ mã hóa tốt trong phần mềm. Cho đến nay vẫn chưa thấy có phương pháp nào phân tích được mật mã của nó.
Blowfish không có bằng sáng chế và nó vẫn tồn tại  như vậy tại tất cả các nước. Nhờ đó, thuật toán có thể được sử dụng rộng rãi mọi nơi và miễn phí đối với tất cả mọi người.
8.      Twofish
Là một thuật toán mã hóa khối khóa đối xứng với kích thước khối là 128 bit và kích thước khóa lên đến 256 bit. Đó là một trong năm chương trình lọt vào vòng cuối của cuộc thi Tiêu chuẩn Mã hóa Cao cấp nhưng đã không được chọn làm tiêu chuẩn. Thuật toán Twofish có liên quan đến thuật toán mã hóa trước đó là Blowfish. Thuật toán Twofish miễn phí cho tất cả mọi người sử dụng mà không có bất kỳ hạn chế nào. Nó là một trong số ít thuật toán nằm trong tiêu chuẩn OpenPGP.
9.      Serpent
Là một thuật toán mã hóa khối khóa đối xứng với kích thước khối 128 bit và hỗ trợ kích thước khóa 128, 192 hoặc 256 bit. Thuật toán này là một mạng lưới thay thế-hoán vị 32 vòng, nó hoạt động trên khối của bốn từ có kích thước 32-bit. Thuật toán mã hóa Serpent vẫn chưa được cấp bằng sáng chế. Đó là nằm hoàn toàn trong miền công cộng và có thể được tự do sử dụng bởi bất cứ ai.
10.  Thuật toán Mã hóa Dữ liệu Quốc tế (IDEA)
Là một thuật toán mã hóa khối được thiết kế bởi James Massey của ETH Zurich và Xuejia Lai và được mô tả lần đầu tiên vào năm 1991.
IDEA, được sử dụng trong Pretty Good Privacy (PGP) phiên bản 2.0, là một thuật toán tùy chọn trong tiêu chuẩn OpenPGP.
B.     Mã hóa bất đối xứng:
Với xu thế hội nhập cùng với sự phát triển không ngừng của ngành Công nghệ thông tin như:  Internet, các chương trình ứng dụng, các công cụ xử lý multimedia đã mang lại nhiều thuận lợi trong việc lưu trữ dữ liệu, trao đổi thông tin, sao chép dữ liệu v.v…Tuy nhiên, bên cạnh các điều kiện thuận lợi đó, sự phát triển này cũng tạo ra nhiều thử thách trong vấn đề tìm ra giải pháp bảo mật dữ liệu, qua đó chứng nhận quyền sở hữu thông tin của các đơn vị, cá nhân trong quá trình trao đổi thông tin. Nội dung bài báo sẽ trình bày các khái niệm, mô hình, phân tích ưu, khuyết điểm của hệ mã khoá công khai và giải pháp an toàn cho hệ thống thông tin dựa trên cấu trúc hạ tầng mã khoá công cộng (PKI - Public Key Infrastructure).
1.      Đặt vấn đề
Trong thế kỷ này giấy không còn là phương tiện duy nhất để chứng nhận thoả thuận giữa các đối tác. Tại nhiều nước, các thoả thuận thông qua hệ thống thông tin điện tử giữa các bên đã được hợp pháp hoá và có giá trị tương đương với các thoả thuận thông thường mang tính pháp lý. Sự kiện này đã đánh dấu một bước nhảy vọt bởi các dự án về hệ thống chính phủ điện tử, thương mại điện tử của các Quốc gia và Doanh nghiệp. Tuy nhiên cho đến nay các dự án này vẫn chưa được triển khai rộng rãi, do nhiều nguyên nhân khác nhau. Một trong những nguyên nhân quan trọng là người dùng vẫn luôn cảm thấy không an toàn khi sử dụng hệ thống. Chẳng hạn khi gửi một mẫu tin có thể là: văn bản, giọng nói, hình ảnh, phim video… Người nhận có quyền nghi ngờ: thông tin đó có phải là của đối tác không, nó có bị ai xâm phạm, và những người khác có thể giải mã nó được… Những thử thách này đã thu hút sự chú ý của nhiều nhà khoa học trong lĩnh vực nghiên cứu bảo mật thông tin.

2.      Các khái niệm
Bảo mật thông tin là khoa học nghiên cứu các nguyên lý và phương pháp cho phép mã hoá thông tin sao cho chỉ người có khoá giải mã (bí mật) mới có thể giải để hiểu đuợc thông tin gốc.[1]
Ví dụ: Nếu một người bạn gửi cho tôi một mật mã bắt đầu bằng "ULFW NZFXZ", dựa vào khoá đã có tôi dể dàng giải mã được thông tin đó "DEAR THANH" vì chữ U thay chữ D, chữ L thay chữ E, chữ F thay chữ A...
Trong bảo mật thông tin hai vấn đề cần nghiên cứu về mặt nguyên lý lẫn phương pháp là:
n  Bảo mật (Encryption): Nhằm ngăn cản không cho người lạ trích chọn thông tin từ các thông điệp được gửi trên các kênh truyền phổ biến.
n  Chứng thực (CA – Certification Authorit): Nhằm đảm bảo chỉ có người nhận đúng mới có thể đọc thông điệp, đồng thời người gửi không thể phủ nhận thông điệp mình gửi.
Có thể chia các hệ mã thành 2 loại chính:
2.1.Hệ mã khoá bí mật: Quá trình mã hoá và giải mã đều sử dụng một khoá gọi là khoá bí mật, hay còn gọi là hệ mã đối xứng.
Trong quá trình trao đổi thông tin giữa A với B nếu dùng hệ mã khoá bí mật ek. Thì A người gửi sẽ mã hoá thông điệp của họ bằng ek này. Về phía B người nhận, sau khi nhận thông điệp thì giải mã thông điệp đó cũng bằng khoá ek. Như vậy một người khác đánh cắp đuợc khoá ek thì họ sẽ có thể giải mã và xem được nội dung thông điệp của người gửi. Điển hình thuật toán khóa bí mật là mã hoá khối với n Byte đầu vào thành một khối Byte ở đầu ra, các phương pháp mã hoá khối đã được đưa vào ứng dụng như: RC2 (8Byte), DES (8Byte), TRIPPLE DES (24 Byte), RIJINDAEL (32 Byte),…thuật toán mã hoá bí mật có tốc độ nhanh hơn so với hệ mã khoá công khai.
2.2. Hệ mã khoá công khai: Quá trình mã hoá sử dụng một khoá có thể công khai và khi giải mã thì sử dụng một khoá khác. Vì sử sụng 1 cặp khoá trong đó có một khoá có thể được công bố nên gọi là hệ khoá công khai, hay còn gọi là hệ phi đối xứng.Thực chất hệ mã khoá công khai sử dụng 2 khoá có liên quan với nhau:
-          Khoá công khai (Public key) được sử dụng để mã hoá những thông tin mà bạn muốn chia sẽ với bất cứ ai. Chính vì vậy bạn có thể tự do phân phát nó cho bất cứ ai mà bạn cần chia sẻ thông tin ở dạng mã hoá.
-          Khoá riêng (Private key) khoá này thuộc sở hữu riêng tư của người được cấp và nó được sử dụng để giải mã thông tin.

3.      Nguyên lý và mô hình hoạt động
Nguyên lý hoạt động của hệ mã hoá công cộng do các ông Whitfield Diffie và Martin Hellman nghĩ vào ra năm 1977. Khi hai bên trao đổi thông tin phải  biết khoá công khai (ek) của nhau. Việc biết khoá công khai (ek) không cho phép tính ra được khoá riêng (dk). Như vậy trong hệ thống mỗi cá thể k khi đăng ký vào hệ thống được cấp 1 cặp khóa (ek,dk). Trong đó ek là chìa khóa lập mã, dk là chìa khoá giải mã [2].
Mô hình hoạt động khi bên A muốn gửi cho bên B một văn bản m (hình 1) thì Bên A phải dùng khoá công khai của bên B để mã hoá thông tin, văn bản đã mã hóa được ký hiệu là T= ek(m). Khi bên B nhận được thì dùng khoá riêng dk (của cặp ek, dk) để giải mã khi đó: dk(T)= dk(ek(m))= m. Như vậy có thể nhiều cá nhân C, D... cùng thực hiện giao dịch và có khoá công khai của B, nhưng C,D... không thể giải mã được m vì không có khoá dk  dù cho đã chặn bắt được các gói thông tin gửi đi trên mạng.[2]
Thực ra mô hình này đã sử dụng trong thực tế giao dịch là sử dụng chứng minh nhân dân để nhận quà, tiền hoặc hàng qua bưu điện, khoá công khai đóng vai trò như: Tên trên giấy chứng minh thư, còn khoá cá nhân là ảnh và dấu vân tay. Nếu xem bưu phẩm là thông tin truyền đi, được "mã hoá" bởi tên người nhận, dù có dùng chứng minh thư nhặt được vẫn không được nhân viên bưu cục giao bưu kiện vì ảnh mặt và dấu vân tay không giống.

4.      Chữ ký điện tử với hệ mã khóa công khai
Trong các giao dịch thông qua phương tiện điện tử, các yêu cầu về đặc trưng của chữ ký tay có thể đáp ứng bằng hình thức chữ ký điện tử.
Chữ ký điện tử (Digital Signatures) không phải là nét vẽ ngoằn ngèo mà là một dãy số được tạo nên bằng các phép mã hoá.
Chữ ký điện tử trở thành một thành tố quan trọng trong văn bản điện tử. Một trong những vấn đề cấp thiết đặt ra là về mặt công nghệ và pháp lý thì chữ ký điện tử phải đáp ứng được sự an toàn và thể hiện ý chí rõ ràng của các bên về thông tin chứa đựng trong văn bản điện tử.

Description: http://www.dsp.vn/HinhDuLieu/11132010%2065909%20PMUntitled-1.jpg
Hình 1: Mô hình mã hóa văn bản theo hệ mã khoá công khai

Với khả năng bảo mật cao của hệ mã khoá công khai nó được ứng dụng trong việc mã hoá tạo ra chữ ký điện tử. Như vậy chữ ký điện tử được lưu trữ dưới dạng tập tin và được gửi kèm với các văn bản hoặc các thông điệp. Nó xác nhận văn bản, thông điệp  trên các hệ thống thông tin điện tử thực sự được gửi bởi chính người gửi mà không phải là do một kẻ khác giả mạo.
Hệ mã hoá công khai đã phát triển thành chuẩn công nghiệp, được chia thành 3 loại dựa trên 3 thuật toán:[5]
-         Phân tích thừa số nguyên tố (IFP - Integer Factorization Problem)
-         Logarit rời rạc (DLP – Discrete Logarithm Problem)
-         Logarit trên đường cong Elip (ECC – Elliptic Curve Cryptography)
Các thuật toán trên đã được đưa vào ứng dụng cho chữ ký điện tử và thương mại hoá bằng các sản phẩm như: Hệ thống RSA (viết tắt từ 3 nhà toán học Rivest, Shamir và Adleman giảng dạy tại MIT) dựa trên thuật toán IFP, hệ thống  DSA (Digital Signature Algorithm) dựa trên thuật toán DLP đã được đưa vào ứng dụng rộng rãi trong công tác: chuyển tiền điện tử, thư điện tử, phân phối phần mềm…, hệ thống ECDSA (Elliptic Curve Digital Signature Algorithm) dựa trên thuật toán ECC, do có kích thước khoá nhỏ nên  đã được đưa vào ứng dụng để mã hoá cho các mạng không dây, thiết bị cầm tay, điện thoại, máy nhắn tin…

5.      Các ứng dụng hệ RSA trong chữ ký điện tử

Việc ứng dụng hệ RSA trong công tác mã hoá chữ ký điện tử đã có nhiều chương trình ứng dụng như :

5.1.PGP (Pretty Good Privacy) for Personal Privacy 9.0:
Đây là phần mềm Freeware, phiên bản mới nhất phần mềm PGP Desktop for Windows do Phil Zimmerman phát triển có nhiều cải tiến lớn so với những ấn bản PGP trước đây. Chương trình chuyển đổi mọi tài liệu sang dạng được mã hóa để truyền đi trên mạng Internet. Ngoài việc cung cấp bảo mật nhằm chống lại việc xem lén nội dung, một văn bản được mã hóa cũng có thể là bằng chứng xác báo cho người nhận biết rằng người gửi tài liệu là người gửi thực. PGP 9.0 rất dễ dùng do nó tự động đưa những chức năng cơ bản của chương trình vào thực đơn của các chương trình thư điện tử (PGPmail), xử lý văn bản (PGPKey), bảo vệ dữ liệu trên đĩa (PGPdisk).
 Không giống như những phiên bản trước đây, bạn không cần phải dừng lai và chạy toàn bộ ứng dụng PGP. Chức năng bên trong bảo đảm tính bảo mật PGP chính là Khóa mã công khai (Public Key Cryptography). Bao giờ người dùng cũng tạo ra hai khóa, một là khóa công khai và thứ hai là khóa riêng. PGP 9.0 giúp đơn giản hóa quá trình này bằng cách hướng dẫn người dùng đi từng bước một. Quản lý những khóa này là một phần quan trọng của hệ thống PGP. Tất nhiên sẽ có người lo lắng liệu các khóa công khai chúng ta đang giữ có phải là khóa thật từ các chủ nhân chính thức không. PGP sẽ hiển thị cho thấy những khóa nào thuộc quyền sở hữu của người sử dụng đã được xác thực.
5.2. Phần mềm Digital Signature:
Đây là chương trình của nhóm tác giả Phạm Huy Điển và Đinh Hữu Toàn công tác tại Viện Toán thuộc Viện Khoa học và Công nghệ Việt Nam. Phần mềm này được đóng gói dưới 2 dạng Plugins trong MS Word (Hình 2) và phiên bản dành cho các ứng dụng khác trên môi trường Windows

Description: http://www.dsp.vn/HinhDuLieu/11132010%2065631%20PMUntitled-1.jpg
Hình 2: Plugins của Digital Signature trên MS Word

Description: http://www.dsp.vn/HinhDuLieu/11132010%2065434%20PMUntitled-1.jpg 
Hình 3: Digital Signature cho các văn bản khác
CƠ CHẾ CHỨNG THỰC GÓI TIN
  1. Khái niệm chữ ký điện tử và chứng chỉ điện tử.
Trong cuộc sống hàng ngày, ta cần dùng chữ ký để xác nhận các văn bản tài liệu nào đó và có thể dùng con dấu với giá trị pháp lý cao hơn đi kèm với chữ ký.
Cùng với sự phát triển nhanh chóng của công nghệ thông tin, các văn bản tài liệu được lưu dưới dạng số, dễ dàng được sao chép, sửa đổi. Nếu ta sử dụng hình thức chữ ký truyền thống như trên sẽ rất dễ dàng bị giả mạo chữ ký. Vậy làm sao để có thể ký vào các văn bản, tài liệu số như vậy?
Câu trả lời đó là sử dụng chữ ký điện tử! Chữ ký điện tử đi kèm với các thông tin chủ sở hữu và một số thông tin cần thiết khác sẽ trở thành Chứng chỉ điện tử.
Vậy chữ ký điện tử và chứng chỉ điện tử hoạt động như thế nào?
Chữ ký điện tử hoạt động dựa trên hệ thống mã hóa khóa công khai. Hệ thống mã hóa này gồm hai khóa, khóa bí mật và khóa công khai (khác với hệ thống mã hóa khóa đối xứng, chỉ gồm một khóa cho cả quá trình mã hóa và giải mã). Mỗi chủ thể có một cặp khóa như vậy, chủ thể đó sẽ giữ khóa bí mật, còn khóa công khai của chủ thể sẽ được đưa ra công cộng để bất kỳ ai cũng có thể biết. Nguyên tắc của hệ thống mã hóa khóa công khai đó là, nếu ta mã hóa bằng khóa bí mật thì chỉ khóa công khai mới giải mã thông tin được, và ngược lại, nếu ta mã hóa bằng khóa công khai, thì chỉ có khóa bí mật mới giải mã được.
Quá trình ký văn bản tài liệu ứng dụng hệ thống mã hóa trên diễn ra như thế nào?
Trước hết, giả sử anh A có tài liệu TL cần ký. Anh A sẽ mã hóa tài liệu đó bằng khóa bí mật để thu được bản mã TL. Như vậy chữ ký trên tài liệu TL của anh A, chính là bản mã TL.
Sau khi ký như vậy, làm sao để xác nhận chữ ký?
Giả sử anh B muốn xác nhận tài liệu TL là của anh A, với chữ ký là bản mã TL. Anh B sẽ dùng khóa công khai của anh A để giải mã bản mã TL của anh A. Sau khi giải mã, anh B thu được một bản giải mã TL, anh ta so sánh bản giải mã TL này mới tài liệu TL. Nếu bản giải mã TL giống với tài liệu TL thì chữ ký là đúng của anh A.
Những vấn đề có thể xảy ra là gì?
Một số trường hợp xảy ra với chữ ký điện tử, cũng giống như các trường hợp xảy ra với chữ ký truyền thống. Ví dụ, khi tài liệu TL của A bị thay đổi (dù chỉ một ký tự, một dấu chấm, hay một ký hiệu bất kỳ), khi B xác nhận, anh ta sẽ thấy bản giải mã TL khác với tài liệu TL của anh A. B sẽ kết luận rằng tài liệu đó đã bị thay đổi, không phải là tài liệu anh A đã ký.
Trường hợp khác, nếu anh A để lộ khóa bí mật, nghĩa là văn bản tài liệu của anh có thể ký bởi người khác có khóa bí mật của A. Khi một ai đó xác nhận tài liệu được cho là của A ký, chữ ký vẫn là hợp lệ, mặc dù không phải chính A ký. Như vậy, chữ ký của A sẽ không còn giá trị pháp lý nữa. Do đó, việc giữ khóa bí mật là tuyệt đối quan trọng trong hệ thống chữ ký điện tử.


Chứng chỉ số là gì?
Trong trường hợp ví dụ trên, anh A có một cặp khóa để có thể ký trên văn bản, tài liệu số. Tương tự như vậy, anh B hay bất cứ ai sử dụng chữ ký điện tử, đều có một cặp khóa như vậy. Khóa bí mật được giữ riêng, còn khóa công khai được đưa ra công cộng. Vậy vấn đề đặt ra là làm thế nào để biết một khóa công khai thuộc về A, B hay một người nào đó?
Hơn nữa, giả sử trong môi trường giao dịch trên Internet, cần sự tin cậy cao, A muốn giao dịch với một nhân vật X. X và A cần trao đổi thông tin cá nhân cho nhau, các thông tin đó gồm họ tên, địa chỉ, số điện thoại, email… Vậy làm sao để A có thể chắc chắn rằng mình đang giao dịch với nhân vật X chứ không phải là ai khác giả mạo X?
Chứng chỉ số được tạo ra để giải quyết vấn đề này!
Chứng chỉ số có cơ chế để xác nhận thông tin chính xác về các đối tượng sử dụng chứng chỉ số.
Thông tin giữa A và X sẽ được xác nhận bằng một bên trung gian mà A và X tin tưởng.
Bên chung gian đó là nhà cung cấp chứng chỉ số CA (Certificate Authority).
CA có một chứng chỉ số của riêng mình, CA sẽ cấp chứng chỉ số cho A và X cũng như những đối tượng khác.
Trở lại vấn đề trên, A và X sẽ có cách kiểm tra thông tin của nhau dựa trên chứng chỉ số như sau: khi A giao dịch với X, họ sẽ chuyển chứng chỉ số cho nhau, đồng thời họ cũng có chứng chỉ số của CA, phần mềm tại máy tính của A có cơ chế để kiểm tra chứng chỉ số của X có hợp lệ không, phần mềm sẽ kết hợp chứng chỉ số của nhà cung cấp CA và chứng chỉ của X để thông báo cho A về tính xác thực của đối tượng X.
Nếu phần mềm kiểm tra và thấy chứng chỉ của X là phù hợp với chứng chỉ CA, thì A có thể tin tưởng vào X.
Cơ chế chữ ký điện tử và chứng chỉ số sử dụng các thuật toán mã hóa đảm bảo không thể giả mạo CA để cấp chứng chỉ không hợp pháp, mọi chứng chỉ giả mạo đều có thể dễ dàng bị phát hiện.
Trở lại tình huống trên, với cơ chế chứng chỉ số, mọi chứng chỉ đều được công khai để bất kỳ ai cũng có thể truy cập được.
Vậy trong chứng chỉ số có những tham số gì? Theo cơ chế chữ ký điện tử như đã đề cập ở trên thì trong chứng chỉ, một tham số quan trọng phải có đó là khóa công khai. Ngoài ra chứng chỉ số còn chứa các thông tin về danh tính của đối tượng được cấp chứng chỉ, bao gồm thông tin về chủ sở hữu chứng chỉ như email, số điện thoại… các thông tin này là tùy chọn theo qui định của nhà cung cấp chứng chỉ số.
Vậy còn một tham số quan trọng trong sử dụng chứng chỉ số, đó là khóa bí mật? Khóa bí mật sẽ không được lưu trong chứng chỉ số. Nó được lưu tại máy tính của chủ sở hữu, chủ sở hữu cần chịu trách nhiệm giữ an toàn khóa bí mật này.
Trở lại với việc ký văn bản, tài liệu, khóa bí mật sẽ dùng để ký các văn bản, tài liệu của chủ sở hữu. Như đã đề cập trong ví dụ ở trên, giả sử A muốn gửi một văn bản kèm với chữ ký của mình trên văn bản đó, A sẽ dùng khóa bí mật để mã hóa thu được bản mã văn bản, bản mã đó chính là chữ ký điện tử của A trên văn bản.
Khi A gửi văn bản và chữ ký, để người khác có thể xác nhận văn bản của mình với thông tin đầy đủ về chủ sở hữu, A sẽ gửi cả chứng chỉ của mình đi kèm với văn bản.
Giả sử X nhận được văn bản A gửi kèm với chứng chỉ, khi đó X có thể dễ dàng xác nhận tính hợp pháp của văn bản đó.
Làm thế nào để có một chứng chỉ số?
Để có một chứng chỉ số, trước hết cần có một cơ quan cung cấp chứng chỉ số, tên tiếng anh là CA (Certificate Authority). Các cá nhân, tổ chức muốn có chứng chỉ số, cần đăng ký với tổ chức này, và khi đăng ký, đương nhiên họ chấp nhận uy tín của tổ chức này. Trên thế giới, hiện có nhiều tổ chức CA như vậy, một số tổ chức lớn như Verisign, RSA, Entrust… được sử dụng chứng chỉ số rất phổ biến.
Sau khi đăng ký với CA, CA sẽ kiểm tra thông tin của người đăng ký và sẽ cấp một chứng chỉ cho họ. Thông thường chứng chỉ được lưu dưới dạng file để cài đặt vào thiết bị (PC, Server,…), hoặc đặc biệt hơn, với mức độ bảo mật cao, nó có thể lưu trong các Token (loại thẻ lưu dữ liệu), sử dụng giống như một USB lưu trữ chứng chỉ số.
Ví dụ thực tế trong việc sử dụng chứng chỉ số
Ta có thể xem xét một số ví dụ điển hình, phổ biến, đó là trường hợp truy cập vào các trang web sử dụng chứng chỉ số để bảo mật thông tin.
Thông thường, khi truy cập web bình thường(http protocol), nghĩa là ta đang truy cập một trang web không có cơ chế mã hóa dữ liệu truyền đi giữa người dùng và trang web đó (web server). Điều đó có nghĩa là mọi dữ liệu truyền đi giữa người sử dụng đến trang web đó, có thể bị nghe lén giữa đường đi. Đây là điểm không an toàn.
Vậy một trang web bảo mật có gì khác? Điểm khác ở đây chính là trang web đó sử dụng chứng chỉ số, khi truy cập vào trang web đó, ta không dùng địa chỉ thông thường mà sử dụng giao thức https. Khi truy cập vào đây, ta có thể yên tâm là dữ liệu truyền đi giữa người dùng và trang web đó được bảo mật cao, nghĩa là khó có thể lộ thông tin giao dịch.
Sử dụng Internet Explorer để truy cập vào trang web, ta có thể thấy các thông tin về bảo mật, chứng chỉ số được chỉ ra cụ thể:
Khi sử dụng Internet Explore (IE) để truy cập vào một trang web sử dụng chứng chỉ số để bảo mật, ta thấy dấu hiệu bảo mật ở Khóa vàng góc dưới. Nếu kích chuột vào đây, IE sẽ hiển thị chứng chỉ số của trang web này.
Trên đây là cách thức sử dụng chứng chỉ số ở mức đơn giản. Cách thức sử dụng này mới chỉ là bảo mật một phía, người dùng tin cậy chứng chỉ của trang web (web server) mà họ truy cập, trong khi đó.
Cách thức bảo mật cao hơn là trường hợp người dùng phải có chứng chỉ để truy cập trang web. Khi đó, để người dùng và web (web server) có thể xác thực được nhau, chứng chỉ của người dùng và của web (web server) phải được cung cấp từ một CA. Ví dụ: chứng chỉ của người dùng cũng phải được cung cấp bởi ‘Thawte SGC CA’ ( thuộc ‘VeriSign Class 3 Public Primary CA’).
Việc sử dụng chứng chỉ số không chỉ áp dụng cho trường hợp giao dịch web như trên, ngoài ra còn có nhiều hình thức sử dụng khác, ví dụ, sử dụng chứng chỉ số cho email, cho các thiết bị di động…
  1. Hiện trạng sử dụng chứng chỉ số trên thế giới và ở Việt Nam
Việc sử dụng chứng chỉ số trên thế giới hiện nay rất phổ biến, chủ yếu nhằm bảo mật các giao dịch điện tử như bảo mật email, website, thanh đoán điện tử…
Các đơn vị chứng thực (CA) được xây dựng ở nhiều qui mô, cấp độ khác nhau. Từ các cơ quan chính phủ đến các tổ chức doanh nghiệp, cá nhân đều có thể xây dựng CA, tùy thuộc vào yêu cầu sử dụng.
Các CA có thể được xây dựng với mục đích chuyên dụng hoặc thương mại. CA chuyên dụng được áp dụng trong phạm vi một cơ quan nhà nước, một tổ chức, một doanh nghiệp hoặc có thể là do cá nhân tự xây dựng. Những đối tượng sử dụng CA chuyên dụng được cấp chứng chỉ bởi CA đó và qui định tin tưởng nhau trong phạm vi CA.
CA thương mại được xây dựng nhằm mục đích thương mại, kinh doanh dịch vụ xác thực điện tử. Những đối tượng sử dụng chứng chỉ của CA thương mại phải có thỏa thuận pháp lý tin tưởng CA thương mại đó và tin tưởng những đối tượng khác được cấp chứng chỉ bởi CA.
Hiện trên thế giới có một số CA lớn, được thành lập vào những năm 90, với mục đích thương mại như Verisign, Entrust, RSA…
Các quốc gia phát triển chính phủ điện tử được coi là hàng đầu thế giới như USA, Canada, Anh, Thụy sĩ, Hàn Quốc, Nhật Bản… có những đơn vị chứng thực (CA) lớn mạnh.
Ở Châu Á, Hàn Quốc được coi là quốc gia áp dụng Chính phủ điện tử hiệu quả cao. Một trong những yếu tố giúp cho thành công của Chính phủ điện tử đó là chứng thực điện tử. Hàn Quốc có một hệ thống mạng lưới thông tin thông suốt từ Chính phủ đến các thành phố, quận huyện, làng mạc. Thông tin cá nhân thống nhất trên nhiều lĩnh vực, do đó việc áp dụng chứng thực điện tử tại Hàn Quốc có hiệu quả cao.
Ở Việt Nam, việc xây dựng Hệ thống Chứng thực điện tử là một trong số các nhân tố quan trọng của Chính phủ điện tử cũng như trong giao dịch thương mại.
Chúng ta đang từng bước xây dựng hệ thống này. Về luật pháp, hiện ta đã có Luật giao dịch điện tử (2005), Nghị định 26 (Quy định chi tiết thi hành Luật Giao dịch điện tử về chữ ký số và dịch vụ chứng thực chữ ký số), Nghị định 27 (Về giao dịch điện tử trong hoạt động tài chính). Các đơn vị nhà nước, tổ chức doanh nghiệp cũng đã và đang xây dựng hệ thống chứng thực chuyên dùng, đáp ứng cho yêu cầu nội bộ.

PHẦN TRẢ LỜI CÂU HỎI CỦA CÁC NHÓM PHẢN BIỆN
Câu 1: Để tạo ra một chữ ký số cần làm như thế nào ? Dùng thuật toán gì ?
Để tạo ra 1 chữ ký số chúng ta cần đăng ký thông tin cá nhân với một trong các nhà cung cấp Chứng chỉ số đã được bảo đảm trên toàn thế giới như : Verisign,Entrust..vv. Các nhà cung cấp này sẽ xác minh các thông tin cá nhân của người dùng . Nếu các thông tin trên là chính xác thì nhà cung cấp sẽ cấp cho người dùng chứng chỉ số dưới dạng file để người dùng có thể add vào các trình duyệt web của mình.
Các thuật toán thường được sử dụng là RSA,DSA..v.v
Câu 2: So với DES thì 3DES nâng cao như thế nào ?
Áp dụng thuật toán mã hóa theo Tiêu chuẩn Mã hóa Dữ liệu (DES) ba lần cho mỗi khối dữ liệu. Về độ an toàn thì triple DES đã khắc phục hầu hết các yếu điểm của DES: độ dài password ngắn. Với 2 password khác nhau thì Triple DES sẽ có độ an toàn gấp 2^56 lần DES: nếu có thể phá DES trong 1 s thì phải tốn vài tỉ năm để phá triple DES.Tuy nhiên đo phải nhớ ít nhất là 2 password và mỗi password phải có 64 bit, điều đó gây nhiều khó khăn cho người dùng.
Câu 3: Do độ bảo mật vượt trội của các thuật toán mã hóa công khai thì ngày nay các thuật toán DES và 3DES còn được sử dụng hay không ? Và độ an toàn của thuật toán RSA
            DES thường được dùng để mã hoá bảo mật các thông tin trong quá trình truyền tin cũng như  lưu trữ thông tin. Một ứng dụng quan trọng khác của DES là kiểm tra tính xác thực của mật khẩu truy nhập vào một hệ thống (hệ thống quản lý bán hàng, quản lý thiết bị viễn thông…), hay tạo và kiểm tính hợp lệ của một mã số bí mật (thẻ internet, thẻ điện thoại di động trả trước), hoặc của một thẻ thông minh (thẻ tín dụng, thẻ payphone…).
Độ an toàn của hệ thống RSA dựa trên 2 vấn đề của toán học: bài toán phân tích ra thừa số nguyên tố các số nguyên lớnbài toán RSA.
Bài toán RSA là bài toán tính căn bậc e môđun n (với n là hợp số): tìm số m sao cho me=c mod n, trong đó (e, n) chính là khóa công khai và c là bản mã
Tại thời điểm năm 2005, số lớn nhất có thể được phân tích ra thừa số nguyên tố có độ dài 663 bít với phương pháp phân tán trong khi khóa của RSA có độ dài từ 1024 tới 2048 bít. Một số chuyên gia cho rằng khóa 1024 bít có thể sớm bị phá vỡ (cũng có nhiều người phản đối việc này). Với khóa 4096 bít thì hầu như không có khả năng bị phá vỡ trong tương lai gần. Do đó, người ta thường cho rằng RSA đảm bảo an toàn với điều kiện n được chọn đủ lớn. Nếu n có độ dài 256 bít hoặc ngắn hơn, nó có thể bị phân tích trong vài giờ với máy tính cá nhân dùng các phần mềm có sẵn. Nếu n có độ dài 512 bít, nó có thể bị phân tích bởi vài trăm máy tính tại thời điểm năm 1999. Một thiết bị lý thuyết có tên là TWIRL do Shamir và Tromer mô tả năm 2003 đã đặt ra câu hỏi về độ an toàn của khóa 1024 bít. Vì vậy hiện nay người ta khuyến cáo sử dụng khóa có độ dài tối thiểu 2048 bít.

Câu 4 : 3DES có thể bị bẻ gẫy hay không ?
Năm 1998, một nhóm nghiên cứu đã chi phí 220.000USD để chế tạo một thiết bị có thể thử toàn bộ số chìa khoá DES 56 bit trong trung bình 4,5 ngày. Tháng 7 năm 1998 họ thông báo đã phá chìa khoá DES trong 56 giờ. Thiết bị này  gọi là Deep Crack gồm 27 board mạch, mỗi board chứa 64 chip và có khả năng thử 90 tỷ chìa khoá trong một giây.
Tuy nhiên, việc phá khóa Triple DES là điều rất khó khăn, một chuyên gia về bảo mật đã cho rằng " Không có đủ silic trong giải ngân hà (để chế tạo chip-TG) cũng như không đủ thời gian trước khi mặt trời bị phá huỷ để phá khoá Triple DES". 
Câu 5 : Có phần mềm nào cho phép người dùng tự tạo ra chữ ký số không ?
            Bạn có thể tự tạo cho mình một CKS bằng rất nhiều phần mềm sẵn có như OpenSSL, hoặc đăng ký với một tổ chức cấp CA nào đó. Việc đăng ký này có tính phí, và chữ ký được cấp đó sẽ được tổ chức CA chứng thực. Định dạng file *.PFX hay *.P12 sau khi tạo ra sẽ bao gồm PrivateKey, PublicKey và chứng thư của bạn. Nếu sử dụng Windows, chỉ cần tiến hành cài đặt và làm theo chỉ dẫn. Kết thúc quá trình, chứng thư của bạn sẽ được cài đặt trong máy tính, nếu bạn cài lại máy phải cài lại chứng thư đó. Tuy nhiên, việc lưu CKS của bạn trong máy tính cũng có thể phát sinh rủi ro do có thể bị sao chép và vô tình bị lộ mật khẩu bảo vệ PrivateKey. Để giải quyết vấn đề này, người ta thường dùng thẻ thông minh để lưu CKS, nhằm nâng cao tính bảo mật và duy nhất của CKS đó.
Câu 6 : Như ta đã thấy lợi ích của mã hóa bất đối xứng thật sự vượt trội so với mã hóa đối xứng , vậy tại sao ngày nay vẫn sử dụng thuật toán mã hóa đối xứng ?
Do các thuật toán mã hóa bất đối xứng cần thời gian mã hóa và giải mã lâu hơn các thuật toán mã hóa đối xứng nên người ta đã Hiện nay người ta phổ biến dùng các thuật toán bất đối xứng có tốc độ chậm hơn để phân phối chìa khóa đối xứng khi một phiên giao dịch bắt đầu, sau đó các thuật toán khóa đối xứng tiếp quản phần còn lại.
Câu 7 : Ứng dụng chữ ký số tại Việt Nam ?
Hiện tại công nghệ chữ ký số tại Việt Nam có thể sử dụng trong các giao dịch để mua bán hàng trực tuyến, đầu tư chứng khoán trực tuyến, chuyển tiền ngân hàng, thanh toán trực tuyến. Ngoài ra, Bộ Tài chính cũng đã áp dụng chữ ký số vào kê khai, nộp thuế trực tuyến qua mạng Internet và các thủ tục hải quan điện tử như khai báo hải quan và thông quan trực tuyến mà không phải in các tờ khai, đóng dấu đỏ của công ty và chạy đến cơ quan thuế xếp hàng và ngồi đợi vài tiếng đồng hồ, có khi đến cả ngày để nộp tờ khai này.
Trong tương lai tại Việt Nam chữ ký số có thể sử dụng với các ứng dụng chính phủ điện tử bởi các cơ quan nhà nước sắp tới sẽ làm việc với người dân hoàn toàn trực tuyến và một cửa. Khi cần làm thủ tục hành chính hay một sự xác nhận của cơ quan nhà nước, người dân chỉ cần ngồi ở nhà khai vào mẫu đơn và ký số để gửi là xong.
Đối với dịch vụ chứng thực chữ ký số công cộng chỉ có thể sử dụng trong các giao dịch điện tử liên quan đến người sử dụng cá nhân và tổ chức, doanh nghiệp, trong các giao dịch giữa người dân, doanh nghiệp với các cơ quan nhà nước. Riêng các giao dịch nội bộ của các cơ quan nhà nước hoặc giữa các cơ quan nhà nước với nhau là các giao dịch đặc thù, không dùng được hệ thống chứng thực công cộng mà phải dùng hệ thống riêng.

PHẦN TRẢ LỜI CÂU HỎI CỦA GIÁO VIÊN HƯỚNG DẪN

Sinh viên hãy trình bày cách ứng dụng chữ ký số vào 1 ứng dụng cụ thể như : Yahoo mail , Gmail , truyền tải file..v.v
PHẦN 1 : ỨNG DỤNG CHỮ KÝ SỐ VÀO GMAIL
Chúng ta hãy bắt tay vào ứng dụng cụ thể sau đây để hiễu rõ hơn về cách thức dùng chũ ký điện tử trong một giao dịch thông thường.
Trong ví dụ này, chúng ta cần 2 tài khoản e-mail dạng POP3 ở đây là Tùng (tungnns@gmail.com) và Mai (tungnns89@gmail.com) .
Lưu ý : Các thiết lập về account của Mai đều làm tương tự thiết lập của Tùng, kể cả việc đăng ký chứng chỉ sô ( dùng để demo phần Encrypt email )
Tài khoản e-mail POP3 thứ nhất được xác lập cho Tùng (trong ví dụ này Tùng sẽ dùng để gửi email và tài khoản thứ hai xác lập cho Mai (Mai sẽ dùng để nhận e-mails và kiểm tra chữ ký điện tử nhằm xác định các mails này đúng là đến từ Tùng ) 
Cấn kiểm tra kết nối Internet đã sẵn sàng cho việc gửi và nhận e-mails. Xin nhắc lại, Tùng chính là người gửi (sender) và Mai sẽ là người nhận mails (receiver). Trong ví dụ này, website của công ty cổ phần Storks và các tài khoản emails của họ được một nhà cung cấp dịch vụ/lưu trữ Web (web hosting service) trên Internet duy trì. Nhà cung cấp dịch vụ Web cung cấp cho công ty Storks các thông tin về tài khoản email cho Tùng và Mai, những tài khoản sẽ được sử dụng trong ví dụ này. Tất cả nhân viên dùng e-mail tại Storks đều dùng Outlook Express hoặc Microsoft Outlook là chương trình Mail client mặc định của mình. 
Cài đặt một tài khoản email  POP3  
  1.  Tùng sử dụng Outlook Express là chương trình mail client mặc định của mình. Đăng nhập vào Windows XP Computer của mình (Pro-1).
  2. Mở Outlook Express từ menu chọn Tools, chọn Accounts
  3. Click vào Mail tab sau đó chọn Add, chọn tiếp Mail. Sau đó wizard sẽ hướng dẫn Tùng từng bước để điền name, email address và thông tin về tài khoản POP3. các thông tin về tài khoản mail được cung cấp bởi ISAP hoặc nhà cung cấp dịch vụ Web (web hosting). 







Các bước config Outlook Express
Lưu ý: Bạn cần cài đặt thêm một tài khoản POP3 thứ hai dành cho Mai theo cùng cách thức trên để kiểm tra chữ ký điện tử của các tài liệu nhận được từ email của Tùng. 
Thuê chứng chỉ số cá nhân (personal certificate) từ một nhà cung cấp chứng chỉ số công cộng (public CA) 
Bước kế tiếp, để có thể gửi mail với chũ ký điện tử, Tùng cần liên hệ và thuê chứng chỉ số cá nhân từ một nhà cung cấp chứng chỉ số tin cậy (trusted public CA), chẳng hạn như Verisign hay Thawte. Ở đây mình sẽ hướng dẫn các bạn đăng ký 1 chứng chỉ số cá nhân miễn phí của nhà cung cấp comodo.
    1. Các bạn truy nhập địa chỉ http://www.comodo.com/home/email-security/free-email-certificate.php
    1. Điền các thông tin như trong hình vẽ , sau đó tick vào ô I ACCEPT the terms of this Subscriber Agreement. Sau đó bấm Next.
Lưu ý: phần Revocation Password là password export , import và hủy bỏ chứng chỉ số mà ta đã đăng ký
    1. Một hộp thoại hiện ra thông báo rằng chúng ta có muốn đăng ký chứng chỉ số hay không ? Chúng ta chọn Yes

    1. Trang web hiện ra thông báo đã đăng ký thành công chứng chỉ số.
    1. Kiểm tra hộp mail ta sẽ thấy 1 email mới , mở email sẽ có nội dung như hình dưới .Click vào SIGN UP để tiếp tục

    1. Kiểm tra lại hộp mail ta sẽ thấy tiếp tục 1 email mới, mở email lên sẽ có nội dung như hình dưới . Click vào button “Click & install Comodo Email Certificate”
    1. Một hộp thoại hiện lên thông báo script sẽ add 1 chứng chỉ số vào máy tính . Click vào Yes để tiếp tục

    1. Một trang web hiện ra thông báo đã add chứng chỉ số vào máy tính thành công
Config Outlook Express
  1. Từ giao diện của Outlook Express chọn Tool à Account sẽ xuất hiện hộp thoại. chọn pop.gmail.com , sau đó chọn tiếp Properties

  1. Hộp thoại sau sẽ xuất hiện , chọn tab Security à Select..
  1. Click vào chứng chỉ số vừa import lúc nãy chọn Ok à Ok. Vậy là ta đã cấu hình xong Outlook Express để sẵn sàng gửi mail có kèm chữ ký số.

  1. Chọn vào tab Advanced và điều chỉnh các thông số như sau à Ok
  1. Chọn vào tab General , Click chọn vào mục My server requires Authentication à Ok

Xác nhận điện tử cho các emails 
Một khi chứng chỉ số cá nhân cho email đã được cài đặt , bạn có thể dùng nó làm chữ ký số và mã hóa các email gửi đi. 
  1. Mở Outlook Express dùng tài khoản email POP3 đầu tiên đã tạo ở trên. Chọn Tools, chọn Options và chọn Security tab. Trên tab này, chúng ta sẽ có một tùy chọn encrypt and digitally sign your outgoing messages. Click ApplyOK
  1. Click vào Create Mail và bạn sẽ thấy biểu tượng ruy băng đỏ ở góc trên bên phải. Điều này có nghĩa là email mà bạn gửi đi sẽ được xác nhận với chữ ký số. điền vào To: người nhận địa chỉ email là Mai (email POP3 thứ 2 bạn tạo)
  1. Sau đó click Send
  2. Chuyển đến tài khoản email POP3 của Mai và mở email nhận được từ Tùng. Bạn sẽ thấy message mà Mai(tungnns89@gmail.com) nhận sẽ tương tự màn hình bên dưới. Click vào Continue để xem thông điệp thực sự .
Bạn hãy để ý ruy băng màu đỏ góc phải trên của mail. Điều này cho Mai biết rằng Tùng đã tiến hành gửi mail này dùng chữ ký số. Click vào biểu tượng ruy băng Đỏ để xem chữ ký số từ người gửi (sender). Kiểm tra và thấy rằng nội dung mail đã không bị thay đổi và chữ ký số này là đáng tin cậy. Có thể xem thông tin về chứng chỉ số cá nhân của sender bằng cách click View Certificate
Mã hóa Emails 
Mã hóa là một phương pháp bảo mật thực hiện việc chuyển đổi dữ liệu từ dạng thông thường (plain text) thành dạng không thể đọc theo cách thông thường (unreadable text) nhằm đảm bảo sự cẩn mật (confidentiality), tính tích hợp (integrity) và tính chất xác thực (authenticity) của dữ liệu . Khi bạn mã hóa email, thì toàn bộ email sẽ được mã hóa bao gồm phần thông điệp và các file đính kèm (attachments). Một chữ ký số sẽ đảm bảo tính chất xác thực (đúng là người gửi) và tính tích hợp (dữ liệu đã không bị thay đổi) nhưng không đảm bảo được tính chất bí mật (confidentiality) vì nội dung mail đã không được mã hóa. 
  1. Mở Outlook Express dùng tài khoản mail POP3 thứ 2 tức của Mai’. Chọn
  2. Tools, chọn Options. Click vào Security tab. Đánh dấu vào hộp Encrypt contents and attachments for all outgoing messages. Click ApplyOK. 
  3. Click vào Create Mail và sẽ thấy xuất hiện biểu tượng ổ khóa lock ở góc trên bên phải. Điều này có nghĩa là email của bạn sẽ được mã hóa khi gửi. Điền vào địa chỉ  email người nhận là tài khoản POP3 của Tùng và click Send
  4. Quay trở lai tài khoản mail POP3 của Tùng và mở email mà Mai vừa gửi. khi bạn mở email, bạn sẽ nhận được một thông điệp An application is requesting access to a protected item
  5. Click OK và sau đó chọn Continue để đọc nội dung email đã mã hóa. 
  6. Bạn có thể click biểu tượng ổ khóa màu xanh để xem thông tin chi tiết hơn về email đã mã hóa . Mai  đã không xác nhận chữ ký số cho message này nên tại Digital Signature tất cả các dòng đều xác nhận không sử dụng n/a (not available). 

  7. Nếu Mai đăng nhập vào mail của mình bằng máy đã cài chứng chỉ số của mình thì có thể đọc được email của Tùng gửi và có thể xem các thông tin về chữ ký số của Tùng kèm theo email này
  1. Nếu Mai đăng nhập bằng 1 máy chưa được cài chứng chỉ số của mình thì Mai sẽ k thể đọc được email mà Tùng đã gửi mà chỉ thấy 1 file đã được mã hóa smime.p7m


2 nhận xét:

  1. bạn ơi các hình ảnh đều ko xem đc rồi, bài viết rất hữu ích, cảm ơn nhiều lắm!

    Trả lờiXóa
  2. Why gamblers are so afraid of gambling | DrmC
    Even before gambling 과천 출장샵 became a crime, the chances of criminals committing crimes were small. 창원 출장안마 There were many 경산 출장안마 other gambling options, What are the 안산 출장샵 best casinos that 전라남도 출장마사지 offer free money to gamblers?

    Trả lờiXóa