Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.48 MB, 70 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<small>------ </small>
<b>Quảng Nam, tháng 04 năm 2017 </b>
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2"><i><b>Tên đề tài: </b></i>
Sinh viên thực hiện:
<b>HUỲNH THỊ CHI MSSV: 2113021042 </b>
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3"><b>LỜI CẢM ƠN </b>
Đầu tiên cho em xin gửi lời cảm ơn đến tất cả các thầy cô trong khoa Công Nghệ Thông Tin trường Đại học Quảng Nam đã cho em những kiến thức trong 4 năm qua và lấy kiến thức để thực hiện khóa luận này.
Đặc biệt em xin gửi lời cảm ơn đến Th.S Hồ Tuấn Anh – người đã trực tiếp hướng dẫn em hồn thành khóa luận này. Bên cạnh đó là những ý kiến đóng góp của bạn bè, đã cho em nguồn động viên lớn để hoàn thành nhiệm vụ của khóa luận. Qua đó, em đã đạt được nhiều tiến bộ về kiến thức cũng như những kĩ năng làm việc bổ ích.
Em chân thành gửi lời cảm ơn sâu sắc đến tồn thể thầy cơ và các bạn!
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4"><b>MỤC LỤC </b>
LỜI CẢM ƠN MỤC LỤC
DANH MỤC CÁC KÝ HIỆU VÀ CÁC TỪ VIẾT TẮT DANH MỤC CÁC HÌNH
MỞ ĐẦU ... 1
1.1. Lý do chọn đề tài ... 1
1.2. Mục tiêu của đề tài ... 2
1.3. Đối tượng và phạm vi nghiên cứu ... 2
1.3.1. Đối tượng nghiên cứu ... 2
NỘI DUNG NGHIÊN CỨU ... 5
Chương 1: MỘT SỐ HỆ MẬT MÃ HĨA THƠNG DỤNG ... 5
1.1.Giới thiệu về các hệ mật mã ... 5
1.2.Hệ mã khóa bí mật ... 7
1.2.1 Hệ mã DES ... 11
1.2.2. Hệ mã AES ... 11
1.3. Hệ mã khóa cơng khai RSA ... 12
1.3.1. Giới thiệu về hệ mã khóa cơng khai ... 12
1.3.2. Các khái niệm cơ bản ... 15
1.3.3. Các ngun lý của hệ mã khóa cơng khai ... 16
1.3.4. Các thuật tốn của hệ mã khóa cơng khai ... 18
1.3.5. Hệ mã khóa cơng khai RSA ... 19
1.3.6. Hệ Elgamal ... 22
1.3.6.1 Hệ Elgamal là hệ mật mã công khai ... 22
1.3.6.2 Mã hóa và giải mã hệ Elgamal... 23
1.4. Đánh giá hệ mã khóa cơng khai RSA ... 23
1.4.1. Độ an toàn của RSA ... 23
1.4.2. Hiệu suất thực hiện của thuật toán RSA ... 24
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">1.5. Một số phương pháp tấn công hệ mã RSA ... 25
1.5.1 Phương thức thứ nhất ... 26
1.5.2. Phương thức thứ hai ... 26
<b>1.6. Ứng dụng của hệ mật mã RSA ... Error! Bookmark not defined. 1.7. Thuật toán RSA ... Error! Bookmark not defined. </b>1.8. Kết luận chương ... 26
Chương 2: CHỮ KÝ SỐ ... 26
2.1. Giới thiệu chung ... 27
2.1.1. Khái niệm và các ưu điểm của chữ ký số ... 28
2.1.1.1 Khái niệm ... 28
2.1.2. So sánh chữ ký số và chữ ký thông thường ... 30
2.1.2.1 Sự khác nhau giữa chữ ký số và chữ ký thường (chữ ký <b>viết tay) ... Error! Bookmark not defined. 2.1.2.2 Sự khác nhau giữa chữ điện tử và chữ ký thông thườngError! Bookmark no</b>2.1.4. Phân loại chữ ký số ... 31
2.1.5. Sơ đồ tổng quan của một hệ thống chữ ký số điện tử ... 31
2.1.6. Điều kiện đảm bảo an toàn cho chữ ký số ... 32
2.4.2. Yêu cầu của một hệ thống chữ ký điện tử ... 45
2.4.3. Phân loại các lược đồ chữ ký số ... 45
2.4.3.1. Lược đồ RSA. ... 46
2.4.3.2. Lược đồ Elgamal ... 46
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">2.5. Các kiểu tấn công vào lược đồ chữ ký số ... 48
3.3.1 Các yêu cầu của ứng dụng : ... 51
3.3.2 Môi trường xây dựng ứng dụng : ... 52
3.4. Chương trình demo ... 53
3.5. Kết luận chương ... 58
DANH MỤC TÀI LIỆU THAM KHẢO ... 61
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7"><b>DANH MỤC CÁC KÝ HIỆU VÀ CÁC TỪ VIẾT TẮT </b>
AES Advance Encryption Standard DES Data Encryption Standard MAC Message Authentication Code MD4 Message Digest 4
<i>M</i> Không gian bản rõ P Bản tin rõ.
(n; e) Cặp số : n, e là các số nguyên dương.
(e, d) Ước chung lớn nhất của hai số nguyên dương e và d.
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">Hình 2.4(b) Mã hố khố cơng khai: xác thực và chữ kí ... 37
Hình 2.4(c) Mã hố khố cơng khai: Bí mật, xác thực và chữ kí ... 37
Hình 2.5: Xác định thơng tin dùng hàm băm ... 38
Hình 2.6 : Giải thuật MD5 ... 41
Hình 3.1: Giao diện demo kết quả chữ ký số ... 54
Hình 3.2: Giao diện lúc tạo khóa thành cơng ... 55
Hình 3.3: Giao diện khi tạo chữ ký thành cơng ... 56
Hình 3.4: Giao diện khi giãi mã chữ ký thành cơng ... 57
Hình 3.5: Giao diện khi giãi mã chữ ký không thành công ... 58<small> </small>
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9"><b>MỞ ĐẦU 1.1. Lý do chọn đề tài </b>
Trong xu thế phát triển của thế giới, với sự bùng nổ của mạng Internet hiện nay. Các ứng dụng của cơng nghệ thơng tin đang ngày càng đóng vai trò thiết yếu trong mọi lĩnh vực hoạt động của tồn xã hội, kinh tế, chính trị, qn sự và khi đó trở thành phương tiện điều hành các hệ thống truyền dữ liệu được sử dụng phổ biến trên tồn thế giới. Nó được sử dụng truyền thư điện tử, truy cập đến các Website, kết nối các trường học, công sở, giám sát các hệ thống từ xa, truyền tệp liên lạc với các khách hàng và sử dụng các dịch vụ ngân hàng, các giao dịch điện tử… Trong tương lai Internet sẽ trở thành môi trường truyền thơng phổ cập cho tồn thế giới.
Rõ ràng tiềm năng của mạng Internet là rất lớn nhưng nó lại bị hạn chế bởi thiết kế mở của mình. Như ta biết giao tiếp qua Internet chủ yếu sử dụng giao thức TCP/IP. Các gói tin truyền từ điểm nguồn tới điểm đích sẽ đi qua rất nhiều máy tính trung gian, vì vậy nó rất dễ bị xâm phạm, can thiệp, theo dõi và giả mạo trên đường truyền và biện pháp bảo mật bằng mật khẩu là khơng đảm bảo và có thể bị nghe trộm hoặc bị dị ra nhanh chóng, vì thế đã chuyển sang xu hướng mã hóa.
Nhờ thơng tin được người gửi mã hóa trước khi truyền qua mạng Internet nên dù kẻ trộm có “chặn” cũng khơng thể đọc. Khi tới đích người chặn sẽ sử dụng một cơng cụ đặc biệt để giải mã. Mật mã học là một trong những vấn đề quan trọng trong lĩnh vực bảo mật và an tồn thơng tin. Trong mật mã vấn đề bảo mật luôn đi đôi với vấn đề xác thực thông tin, đặt biệt là trong mã hóa khóa cơng khai, vấn đề xác thực là vô cùng quan trọng. Để giải quyết vấn đề trên người ta đưa ra một cách giải quyết hiệu quả đó là phương pháp mã hóa và bảo mật phổ biến nhất đang được thế giới áp dụng đó là chữ ký số. Với chữ ký số, người sử dụng có thể mã hóa thơng tin một cách hiệu quả, chống giả mạo, xác thực danh tính người gửi. Ngồi ra, chữ ký số cịn là bằng chứng giúp chống chối cải nguồn gốc, ngăn chặn người gửi chối cải nguồn gốc tài liệu của mình đã gửi.
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">Đối với các hoạt động môi trường mạng ngày càng phát triển như hiện nay, chữ ký số là một hình thức để bảo đảm tính pháp lý của các cam kết. Mặt khác, việc giao dịch bằng các thơng điệp điện tử nói chung và các giao dịch ở dạng số nói riêng đã được luật hóa bằng luật giao dịch điện tử. Vì vậy, cần tìm hiểu, nghiên cứu về chữ ký số để tham mưu cho lãnh đạo trong việc bảo mật văn bản điện tử.
Nhận thấy tính thiết thực của vấn đề này và được sự gợi ý của giáo viên hướng
<b>dẫn, nên em đã chọn đề tài “ CHỮ KÝ SỐ VÀ ỨNG DỤNG TRONG GIAO </b>
<b>DỊCH HÀNH CHÍNH ĐIỆN TỬ ” để làm đề tài nghiên cứu cho khóa luận tốt </b>
nghiệp của mình.
<b>1.2. Mục tiêu của đề tài </b>
Nghiên cứu các giải pháp mã hóa để bảo mật thơng tin và những phương pháp kỹ thuật tạo chữ ký số trên các tài liệu, văn bản điện tử để xác thực nguồn gốc tài liệu hay văn bản của người gửi.
Xây dựng một chương trình ứng dụng có khả năng bảo mật nội dung thông tin dưới dạng văn bản điện tử, tạo chữ ký trên văn bản điện tử cần thiết và chứng thực chữ ký số trên văn bản điện tử góp phần phục vụ những người quản lý đơn vị trao
<b>đổi thông tin mật với các đối tác, điều hành công việc từ xa. </b>
<b>1.3. Đối tượng và phạm vi nghiên cứu 1.3.1. Đối tượng nghiên cứu </b>
Tìm hiểu những cơ sở tốn học, độ phức tạp của thuật toán và các thuật toán thường được sử dụng trong các hệ mã khóa cơng khai.
Nghiên cứu tìm hiểu lý thuyết chung về nguyên lý, hoạt động và ứng dụng của hệ mã khóa cơng khai.
Nghiên cứu tìm hiểu cụ thể các hệ mã khóa công khai đang được sử dụng nhiều nhất hiện nay bao gồm các hệ sau:
+ Hệ mật mã bí mật
+ Hệ mật mã công khai RSA
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">Nghiên cứu tìm hiểu mơ hình chữ ký số và ứng dụng trong việc ký các tài liệu, văn bản điện tử.
Tìm hiểu các ngơn ngữ lập trình Java phục vụ cho công việc lập trình ứng dụng.
Nghiên cứu về mật mã khóa cơng khai RSA, chữ ký số và ứng dụng thuật toán RSA.
<b>1.3.2.Phạm vi nghiên cứu </b>
Tập trung nghiên cứu và làm rõ hơn về ý tưởng, cơ sở toán học, thuật toán và độ phức tạp của mã hóa nói chung và của mã hóa khóa cơng khai nói riêng.
<b>1.4. Phương pháp nghiên cứu </b>
Nghiên cứu các tài liệu về mã hóa, mật mã của các tác giả trong và ngoài nước, các bài báo trên các tạp chí khoa học và các tài liệu trên mạng Internet.
<b>Nghiên cứu ngôn ngữ lập trình Java để viết một ứng dụng nhỏ về chữ ký số. </b>
<b>1.5. Lịch sử nghiên cứu </b>
Con người đã sử dụng các hợp đồng dưới dạng điện tử từ hơn 100 năm nay với việc sử dụng mã Morse và điện tín. Vào năm 1889, tòa án tối cao bang New Hampshire (Hoa kỳ) đã phê chuẩn tính hiệu lực của chữ ký số. Tuy nhiên, chỉ với những phát triển của khoa học kỹ thuật gần đây thì chữ ký số ưmới đi vào cuộc sống một cách rộng rãi.
Vào thập kỷ 1980, các công ty và một số cá nhân bắt đầu sử dụng máy fax để truyền đi các tài liệu quan trọng. Mặc dù chữ ký trên các tài liệu này vẫn thể hiện trên giấy nhưng quá trình truyền và nhận chúng hồn tồn dựa trên tín hiệu điện tử.
Hiện nay, chữ ký số có thể bao hàm các cam kết gửi bằng email, nhập các số định dạng cá nhân (PIN) vào các máy ATM, ký bằng bút điện tử với thiết bị màn hình cảm ứng tại các quầy tính tiền, chấp nhận các điều khoản người dùng (EULA) khi cài đặt phần mềm máy tính, ký các hợp đồng điện tử online.
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">Danh mục các chữ viết tắt Danh mục các bảng
Danh mục các hình vẽ MỞ ĐẦU
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13"><b>NỘI DUNG NGHIÊN CỨU </b>
<b>Chương 1: MỘT SỐ HỆ MẬT MÃ HĨA THƠNG DỤNG 1.1.Giới thiệu về các hệ mật mã </b>
Mật mã là một mơn khoa học nghiên cứu cách viết bí mật. Về phương diện lịch sử, mật mã gắn liền với q trình mã hóa, điều này có nghĩa là nó gắn với cách thức để chuyển đổi thông tin từ dạng này sang dạng khác, 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 thơng tin bí mật. Q trình mã hóa chủ yếu được sử dụng để đảm bảo được 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.
Mật mã được dùng để bảo vệ bí mật thơng tin khi thơng tin được truyền đi. Giả sử có hai người muốn trao đổi thơng tin với nhau A và B. Khi đó chẳng hạn A muốn gửi thông tin là một văn bản nào đó dưới dạng điện tử, gọi là bản rõ cho B, muốn được bảo mật thì A phải mã hóa cho bản rõ đó, được bản mã và gửi cho B. Như vậy giữa A và B phải có sự thỏa thuận nào đó về việc dùng khóa để A có thể mã hóa thơng tin để được bản mã và B giải mã thông tin từ bản mã nhằm thu được bản rõ. Khi đó, một người nào đó khơng có khóa thì dù họ có lấy được bản mã trên đường truyền thì cũng khơng thể dịch ngược thành bản rõ.
Người ta chia hệ mã làm hai loại chính là hệ mã khóa bí mật và hệ mã khóa cơng khai. Các hệ mã khóa bí mật thực hiện việc bảo mật đều dựa trên cơ sở là có một khóa để dùng chung cho việc lập mã và giải mã. Các hệ mã khóa cơng khai là trong đó mỗi người tham gia vào quá trình truyền tin sẽ có hai khóa khác nhau, một khóa cơng khai để lập mã và một khóa bí mật dùng để giải mã. Khóa cơng khai được cơng khai hóa cho mọi người, cịn khóa mật của mỗi người được giữ bí mật. Thơng tin trước khi gửi được mã hóa bởi khóa cơng khai của người nhận. Chỉ có người nhận mới có khả năng giải mã bản mã bằng khóa mật của mình. Độ bảo mật
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">của các hệ mã cơng khai rất cao vì được đảm bảo bằng độ phức tạp tính tốn của thao tác tìm các số nguyên tố lớn và phân tích một số nguyên tố lớn thành tích các thừa số.
Một hệ mật mã là một bộ năm (P, C, K, E, D) thỏa mãn các điều kiện sau: ▪ P là một tập hợp các bản rõ (chứa thông tin cần mã hóa).
▪ C là tập hữu hạn các bản mã (chứa thơng tin đã được mã hóa từ bản rõ). ▪ K là tập hữu hạn các khóa.
▪ Với mỗi khóa k<small></small>K tồn tại luật mã hóa <i><small>e</small><sub>k</sub></i><small></small> E và luật giải mã <i><small>d</small><sub>k</sub></i><small></small> D tương ứng. Luật mã hóa <i><small>e</small><sub>k</sub></i>: P → C và luật giải mã <i><small>e</small><sub>k</sub></i>: C → P là hai ánh xạ thỏa mãn <i><small>d</small><sub>k</sub></i> (
<i><small>e</small></i> (x)) = x, <small></small>x <small></small> P.
Có 2 phương pháp mã hóa khóa, đó là phương pháp mã hóa khóa đối xứng và phương pháp mã hóa khóa không đối xứng. Những hệ mật mã dựa trên phương pháp mã hóa khóa đối xứng gọi là hệ mật mã khóa đối xứng (Symmetric Key Cryptography) hay hệ mật mã khóa bí mật. Ngược lại, các hệ mật mã dựa trên phương pháp mã hóa khóa khơng đối xứng gọi là hệ mật mã khóa khơng đối xứng (Asymmetric Key Cryptography) hay hệ mật mã khóa cơng khai (Public Key Cryptography).
Mã hóa là q trình chuyển thơng tin có thể đọc được (gọi là Bản rõ) thành thơng tin “khó” có thể đọc được theo cách thơng thường (gọi là Bản mã). Giải mã là quá trình chuyển thông tin ngược lại: từ Bản mã thành Bản rõ. Thuật tốn mã hóa hay giải mã là thủ tục tính tốn để thực hiện mã hóa hay giải mã. Khóa mã hóa là một giá trị làm cho thuật tốn mã hóa thực hiện theo cách riêng biệt và sinh ra bản rõ riêng. Thơng thường khóa càng lớn thì bản mã càng an tồn. Phạm vi các giá trị có thể của khóa được gọi là khơng gian khóa. Hệ mã hóa là tập các thuật tốn, các khóa nhằm che giấu thơng tin, cũng như làm cho rõ nó.
Mật mã hóa được sử dụng phổ biến để đảm bảo an tồn cho thơng tin liên lạc. Các thuộc tính được yêu cầu là:
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">▪ Bí mật: Chỉ có người nhận đã xác thực có thể lấy ra được nội dung của thông tin chứa đựng trong dạng đã mật mã hóa của nó. Nói khác đi, nó không thể cho phép thu lượm được bất kỳ thông tin đáng kể nào về nội dung của thơng điệp.
▪ Ngun vẹn: Người nhận cần có khả năng xác định được thơng tin có bị thay đổi trong q trình truyền thơng hay khơng.
▪ Xác thực: Người nhận cần có khả năng xác định người gửi và kiểm tra xem người gửi đó có thực sự gửi thơng tin đi hay khơng.
Thuật tốn mã hóa: Là một thuật tốn nhằm mã hóa thơng tin của chúng ta, biến đổi thông tin từ dạng rõ sang dạng mờ, để ngăn cản việc đọc trộm nội dung của thơng tin.
Thơng thường các thuật tốn sử dụng một hoặc nhiều khóa để giải mã. Bạn có thể coi khóa này như một password để có thể đọc được nội dung mã hóa. Người gửi sẽ dùng khóa mã hóa để mã hóa thơng tin sang dạng mở, và người nhận sẽ dùng khóa giải mã thơng tin sang dạng rõ. Chỉ có những người nào có khóa giải mã mới có thể đọc được nội dung.
Nhưng đơi khi “ kẻ thứ ba” khơng có khóa giải mã vẫn có thể đọc được thơng tin, bằng cách phá vỡ thuật tốn. Và có một ngun tắc là bất kỳ thuật tốn mã hóa nào cũng đều có thể bị phá vỡ. Do đó khơng có bất kỳ thuật tốn mã hóa nào được coi là an tồn mãi mãi. Độ an tồn của thuật tốn được dựa vào nguyên tắc:
▪ Nếu chi phí để giải mã một khối lượng thông tin lớn hơn giá trị của khối lượng thơng tin đó thì thuật tốn đó được tạm coi là an toàn.
▪ Nếu thời gian để phá vỡ một thuật tốn là q lớn thì thuật tốn được coi là an tồn.
<b>1.2.Hệ mã khóa bí mật (Secrete Key Gryposystem - SKG) </b>
Hệ thống mã hoá khóa bí mật là hệ thống mã hóa trong đó q trình mã hóa và giải mã đều được sử dụng chung một khóa gọi là khóa bí mật (Secret key).
Q trình thực hiện cơ chế mã hố như sau:
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16"><b>Hình 1.1 Quá trình thực hiện cơ chế mã hố </b>
Hình 1.1 mơ tả q trình trao đổi thơng tin giữa bên gửi và bên nhận thông qua việc sử dụng phương pháp mã hoá đối xứng. Trong quá trình này, thì thành phần quan trọng nhất cần phải được giữ bí mật chính là khố. Việc trao đổi, thoả thuận về thuật toán được sử dụng trong việc mã hố có thể tiến hành một cách cơng khai, nhưng bước thoả thuận về khoá trong việc mã hoá và giải mã phải tiến hành bí mật. Chúng ta có thể thấy rằng thuật tốn mã hố đối xứng sẽ rất có lợi khi được áp dụng trong các cơ quan hay tổ chức đơn lẻ. Nhưng nếu cần phải trao đổi thông tin với một bên thứ ba thì việc đảm bảo tính bí mật của khố phải được đặt
<b>lên hàng đầu. </b>
Để thực hiện mã hóa thơng tin giữa hai bên thì:
Đầu tiên bên gửi và bên nhận bằng cách nào đó sẽ phải thỏa thuận khóa bí mật được dùng để mã hóa và giải mã. Vì chỉ cần biết được khóa bí mật này thì bên thứ ba có thể giải mã được thơng tin, thơng tin cần được bí mật truyền đi.
Sau đó bên gửi sẽ dùng một thuật tốn mã hóa với khóa bí mật tương ứng để mã hóa dữ liệu sắp được truyền đi. Khi bên nhận nhận được sẽ dùng chính khóa bí mật đó để giải mã dữ liệu.
Vấn đề lớn nhất của phương pháp mã hóa đối xứng là làm sao để “thỏa thuận” khóa bí mật giữa bên gửi và bên nhận, vì nếu truyền khóa bí mật từ bên gửi sang bên nhận mà không dùng một phương pháp bảo vệ nào thì bên thứ ba cũng có thể dễ dàng lấy được khóa bí mật này.
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17"><b>Hình 1.2: Mã hóa dữ liệu </b>
Việc bảo mật thơng tin phụ thuộc vào việc bảo mật khóa.
Nguyên lý cơ bản của hệ thống mã hoá khoá đối xứng được chỉ ra. Có thể thấy rằng bản chất của mã hố đối xứng là cả phía thu và phía phát đều sử dụng cùng một khố bí mật (SK), và thuật tốn ở cả hai phía cũng đều giống nhau. Mã hoá đối xứng như trên dựa vào việc phân phối khoá một cách bảo mật giữa cả hai phía. Nhưng thực tế là khố chung đó lại phân phối tới tất cả mọi người trong mạng, và vấn đề “kênh bảo mật” đã làm đau đầu những nhà quản trị mạng. Điều nguy hiểm nhất là bất cứ ai chiếm được khố trong q trình phân phối cũng có tồn quyền truy nhập tới dữ liệu do khố đó bảo vệ. Do đó, q trình phân phối khố phải trên “kênh bảo mật”, bất kể là kênh logic hay kênh vật lý.
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18"><b>Hình 1.3: Quy trình mã hóa </b>
▪ Đặc điểm của hệ mã khóa bí mật:
▪ Ưu điểm: + Hệ mã hóa khóa đối xứng mã hóa và giải mã nhanh hơn hệ mã hóa khóa bất đối xứng.
▪ Hạn chế: + Hệ mã hóa khóa đối xứng chưa thật an tồn với lý do sau: Khóa phải được giữ bí mật tuyệt đối vì biết được khóa này dễ tính được khóa kia và ngược lại.
+ Vấn đề thỏa thuận khóa và quản lý khóa chung là khó khăn và phức tạp. Người gửi và người nhận phải ln thống nhất về khóa. Việc thay đổi khóa là rất khó và dễ bị lộ. Khóa chung phải được gửi cho nhau trên kênh an tồn.
▪ Ứng dụng: Hệ mã hóa khóa đối xứng thường được sử dụng trong môi trường mà khóa chung có thể dễ dàng trao chuyển bí mật, chẳng hạn trong cùng một mạng nội bộ. Hệ mã hóa khóa đối xứng thường được sử dụng để mã hóa những bản tin lớn, vì tốc độ mã hóa và giải mã nhanh hơn hệ mã hóa bất đối xứng.
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">+ Áp dụng phép tốn thay thế lên một phần, phần cịn lại giữ nguyên + Hoán vị 2 phần cho nhau (trái↔ phải)
+ Hoán vị dữ liệu (Final Permutation) ▪ Đặc điểm của thuật toán DES:
+ DES là thuật tốn mã hóa khối, độ dài mỗi khối là 64bits
+ Khóa dùng trong DES có độ dài tồn bộ là 64bits. Tuy nhiên chỉ có 56bits thực hiện được sử dụng, 8bits còn lại chỉ dùng cho việc kiểm tra
+ DES xuất ra bản mã 64bits + Thuật tốn thực hiện 16 vịng
+ Mã hóa và giải mã được sử dụng cùng một khóa + DES được thiết để chạy trên phần cứng .
<b>1.2.2. Hệ mã AES </b>
AES là một hệ mã hóa khóa bí mật. Chuẩn mã hóa AES cho phép xử lý các khối dữ liệu input có kích thước 128bits sử dụng các khóa có độ dài 128, 192, hoặc 256bits. Hệ mã hóa AES được thiết kế để có thể làm việc với các khóa và khối dữ liệu có độ dài lớn hơn, tuy nhiên khi được chọn là chuẩn do ủy ban tiêu chuẩn của Hoa Kỳ đưa ra vào năm 2001, nó được quy định chỉ làm việc với khối dữ liệu 128bits và các khóa có độ dài 128, 192 hoặc 256bits ( do đó cịn đặt cho nó các tên AES-128, AES-192 hoặc AES 256 tương ứng với độ dài khóa sử dụng).
<b>Ưu điểm : </b>
+ AES có độ an tồn cao và được sử dụng trong thông tin mật
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">+ AES sử dụng bảng tra và phép thuế có tính chất phi tuyến mạnh dẫn đến mức độ phân tán thông tin phức tạp làm tăng độ an tồn cho thuật tốn
+ AES có mơ tả toán học đơn giản, cấu trúc rõ ràng đơn giản.
<b>Nhược điểm : </b>
+ Cấu trúc toán học của AES có mơ tả tốn học khá đơn giản. Tuy điều này chưa dẫn đến mối nguy hiểm nào nhưng một số nhà nghiên cứu cho rằng sẽ có người lợi dụng được cấu trúc này trong tương lai.
+ Mã hóa AES được sử dụng như một hàm băm
+ Xây dựng các hàm băm, ví dụ như hàm băm Whilrpool.
<b>1.3. Hệ mã khóa cơng khai RSA </b>
<b>1.3.1. Giới thiệu về hệ mã khóa cơng khai </b>
Nhằm khắc phục các nhược điểm quan trọng của phương pháp mật mã khóa bí mật đã nêu ở trên, năm 1976 Diffie và Hellman ở trường đại học Stanford công bố một phát kiến mới trong mật mã. Hệ thống được dùng cập khóa như vậy được gọi là hệ mật mã khóa cơng khai hay hệ mật mã bất đối xứng. Phương pháp mã hóa này đã giải quyết được những nhược điểm của phương pháp mã hóa đối xứng. Đây chính là phương pháp mã hóa mà khóa luận này sẽ đi sâu nghiên cứu chi tiết, để giải quyết vấn đề đã đặt ra.
Ngược lại với mã hoá đối xứng, thuật toán bất đối xứng hoạt động theo ít nhất là hai khố, hay chính xác hơn là một cặp khoá. Khoá sử dụng được biết đến như là khố bí mật và khố cơng khai, do đó có khái niệm mã hố khố cơng khai. Mỗi
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">khoá được sử dụng để mã hoá hay giải mã, nhưng khác với thuật toán đối xứng, giá trị của khố ở mỗi phía là khác nhau. Trong hệ thống RSA, dữ liệu được mã hố bằng khố bí mật (KX u) và chỉ có thể giải mã được bằng khố cơng khai của cặp khố đó. Cặp khố này được tạo ra cùng nhau và do đó có liên quan trực tiếp với nhau. Mặc dù có quan hệ với nhau nhưng nếu biết hay truy nhập được khố cơng khai thì cũng khơng thể tính tốn được giá trị của khố bí mật.
Do đó, cơng khai khố mã cũng khơng làm ảnh hưởng tới tính bảo mật của hệ thống, nó cũng chỉ như một địa chỉ thư tín cịn khố bí mật vẫn ln được giữ kín. Bản chất của mã hố khố cơng khai RSA là bất cứ bản tin mật mã nào đều có thể được nhận thức nếu như nó được mã hố bằng khố bí mật cịn giải mã bằng khố cơng khai. Từ đó, phía thu cịn xác định được cả nguồn gốc của bản tin. Bất cứ người nào giữ khố cơng khai đều có thể nghe trộm bản tin mật mã bằng cách tính tốn với kho bí mật, khơng chỉ đảm bảo tính tin cậy của bản tin (trong một nhóm) mà cịn được nhận thức, hay còn gọi là không thể từ chối, ví dụ như người gửi khơng thể từ chối rằng chính họ là tác giả của bản tin đó. Nó hồn tồn trái ngược với hoạt động của khố đối xứng, trong đó bản tin mật mã được đảm bảo tính tồn vẹn giữa phía mã hố và giải mã, nhưng bất kỳ ai có được khố chung đều có thể phát bản tin và từ chối rằng chính mình đã phát nó, cịn phía thu thì khơng thể biết được đâu là tác giả của bản tin đó.
Thuật tốn đối xứng u cầu khả năng tính tốn lớn hơn và do đó tốc độ q trình mã hố chậm hơn so với mã hố đối xứng. Đó cũng là trở ngại chính trong các hệ thống cho phép tỷ lệ lỗi lớn như trong truyền thơng thoại. Do đó, mã hố khố cơng khai khơng phù hợp với các bản tin có chiều dài thông thường, tuy nhiên khi kết hợp cả hai chế độ với nhau lại có thể đảm bảo tính nhận thức, tin cậy và toàn vẹn của bản tin. Nói chung, các ứng dụng sử dụng thuật tốn bất đối xứng là:
o Sử dụng một giá trị “băm” nhỏ làm chữ ký số.
o Mã hố các khố bí mật được sử dụng trong thuật toán đối xứng.
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">o Thỏa thuận mã khóa bí mật giữa các phía trong truyền thơng.
<i><b>Các bước trong hệ mã khóa cơng khai </b></i>
o Hệ thống cuối trong mạng tạo ra một cập khóa để dùng cho mã hóa và giải mã thơng điệp mà nó sẽ nhận.
o Mỗi hệ thống cơng bố rộng rãi khóa mã hóa đây là khóa cơng khai, khóa cịn lại được giữ bí mật.
+ Khả năng lộ khóa bí mật khó hơn vì chỉ có một người giữ.
+ Nếu thám mã biết khóa cơng khai và bản mã C, thì việc tìm ra bản rõ P là một bài tốn “khó”, số phép thử là vơ cùng lớn, khơng khả thi.
<i>Hạn chế: </i>
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23"><i>Mã hóa và giải mã chậm hơn hệ mã hóa khóa đối xứng. </i>
<i>Ứng dụng: </i>
Hệ mã hóa khóa công khai được sử dụng chủ yếu trên mạng công khai như internet, khi mà việc trao chuyển khóa bí mật tương đối khó khăn. Đặc trưng nổi bật của hệ mã hóa khóa cơng khai là cả khóa cơng khai và bản mã C đều có thể gửi đi trên một kênh thơng tin khơng an tồn.
Hệ mã hóa RSA được 3 nhà tốn học R.L.Rivesrt, A.Shamir và L.M.Adleman tìm ra năm 1977, cơng bố năm 1978. Tính an tồn của mã RSA dựa trên độ phức tập của thuật tốn phân tích số ngun thành thừa số nguyên tố.
Cũng giống như các hệ mã hóa khóa cơng khai, thuật tốn RSA có 2 khóa là khóa cơng khai và khóa bí mật. Thường thì khóa công khai được công bố rộng rãi và dùng để giải mã, thơng tin được mã hóa bằng khóa cơng khai chỉ có thể được giải mã bằng khóa bí mật tương ứng.
<b>1.3.2. Các khái niệm cơ bản </b>
Chữ ký số (Digital Signature) là một chuỗi dữ liệu liên kết với một thông điệp và thực thể tạo ra thông điệp.
Giải thuật tạo ra chữ ký số (Digital Signature generation algorithm) là một phương pháp sinh chữ ký số.
Giải thuật kiểm tra chữ ký số (Digital Signature verification algorithm) là một phương pháp xác minh tính xác thực của chữ ký số, có nghĩa là nó được thực sự tạo ra bởi một bên chỉ định.
Một hệ chữ ký số (Figital Signature Scheme) bao gồm giải thuật tạo chữ ký số và giải thuật kiểm tra chữ ký số.
<i>“Chữ ký số” là thông tin đi kèm theo dữ liệu (văn bản,hình ảnh , video...) </i>
nhằm mục đích xác định người chủ của dữ liệu đó.
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">Chữ ký số được sử dụng trong các giao dịch điện tử. Xuất phát từ thực tế, chữ ký số cũng cần đảm bảo các chức năng: xác định được người chủ của một dữ liệu nào đó như văn bản, ảnh, video, ... dữ liệu đó có bị thay đổi hay khơng.
Q trình tạo chữ ký số (Digital Signature signing process) bao gồm: + Giải thuật tạo chữ ký số.
+ Phương pháp chuyển dữ liệu thông điệp thành dạng có thể ký được.
Q trình kiểm tra chữ ký số (Digital Signature verification process) bao gồm: + Giải thuật kiểm tra chữ ký số
+ Phương pháp khôi phục dữ liệu từ thông điệp
Hàm băm là hàm tốn học chuyển đổi thơng điệp có độ dài bất kỳ thành một dãy bít có độ dài cố định. Dãy bits này được gọi là thông điệp rút gọn hay giá trị băm đại diện cho thông điệp ban đầu.
+ Hàm băm SHA-1: Thuật tốn SHA-1 nhận thơng điệp ở đầu vào có chiều dài k < 2<small>64 </small> bits, thực hiện xử lý và đưa ra thông điệp thu gọn có chiều dài cố định 160 bits. Q trình tính tốn cũng thực hiện theo từng khối 512 bits, nhưng bộ đệm xử lý dùng 5 thanh ghi 32 bits. Thuật toán này chạy tốt với các bộ vi xử lý có cấu trúc 32 bits.
<b>1.3.3. Các nguyên lý của hệ mã khóa cơng khai </b>
<b>Năm 1976, Diffie và Hellman công bố một phát triển mới mang tên “các </b>
phương hướng mới trong mật mã” . Cơng trình đề xuất một dạng mới của hệ thống mật mã, trong đó người gửi và người nhận sử dụng các khố mã khác nhau nhưng có mối liên hệ với nhau, và một trong hai khố đó được giữ bí mật. Bên nhận dữ liệu giữ một khố bí mật cho phép giải mã với khố đó, cịn bên gửi sử dụng một khố khác tương ứng với khố bí mật trên để mã hố dữ liệu, khố đó gọi là khố cơng khai. Hệ thống dùng khoá như vậy gọi là hệ thống “bất đối xứng” bởi vì nó bảo đảm bí mật cho việc truyền tin chỉ một chiều, muốn thiết lập bí mật truyền tin theo chiều ngược lại phải sử dụng một cặp khoá khác. Để dùng một hệ thống mật
</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">mã khố cơng khai trong một hệ thống có n cá thể cùng trao đổi các thơng tin mật. Mỗi cá thể chọn cho mình một khố lập mã k<small>i</small><i> và một hàm mã hố E<small>ki</small></i> được thơng báo cơng khai. Như vậy có n khố lập mã được công khai k<small>1</small>, k<small>2</small>,…,k<small>n</small>. Khi cá thể thứ i muốn gửi thông điệp cho cá thể thứ j: mỗi chữ trong thơng điệp được số hố, nhóm thành từng “khối” với độ dài nào đó. Mỗi khối P trong văn bản được mã hoá bằng khoá lập mã k<small>j</small> của cá thể thứ j (đã được thông báo công khai) dùng hàm mã hoá E<small>j</small><i>, và gửi đi dưới dạng: C = E<small>kj</small></i> (P).
Để giải mã thông điệp này, cá thể thứ j chỉ cần dùng khoá riêng của mình (chỉ
<i>một mình cá thể j biết khố này) với hàm giải mã D<small>kj</small></i> :
<i>D<small>kj</small> (C) = D<small>kj</small> ( E<small>kj</small> (P)) = P </i>
<i>Bộ ( E<small>kj</small> , D<small>kj</small></i> ) là cặp khoá của cá thể j, trong đó:
<i>E<small>kj</small> : là khố lập mã. (khố cơng khai) </i>
<i>D<small>kj</small> : là khố giải mã (khố riêng hay cịn gọi là khố bí mật) </i>
Như vậy, các thuật tốn khố cơng khai sử dụng một khoá riêng để mã hoá và một khoá chung khác để giải mã (tạo thành một cặp khố), chúng có các tính chất và đặc điểm quan trọng sau:
(i) Không cần phải thiết lập một kênh bảo vệ với những thể thức phức tạp, rườm rà để truyền khố như trong hệ mã bí mật (mật mã đối xứng).
(ii) Cặp khố cơng khai được tạo ra theo một phương pháp đặc biệt có quan hệ với nhau và được chọn trong nhiều khố có thể (trong đó nếu khố này dùng để mã
<i>hố thì khố kia dùng để giải mã). Hình 1.5 mơ tả rõ ràng mối quan hệ đó. </i>
</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26"><b>Hình 1.5: Sơ đồ khối nguyên lý hoạt động của mật mã khố cơng khai. </b>
<small>o</small> P là bản tin rõ, C là bản mã.
<i>E<small>ke</small> : thuật toán mã hố với khố cơng khai k</i><small>e</small><i>, D<small>kd</small> : thuật tốn giải mã với </i>
khố bí mật k<small>d</small> (hai thuật toán E và D là đồng nhất, sở dĩ các kết quả mà chúng đưa ra khác nhau là vì khoá mã k<small>e</small> và k<small>d</small> khác nhau).
<b>1.3.4. Các thuật tốn của hệ mã khóa cơng khai </b>
<i><b>Thuật tốn sinh khóa : </b></i>
Để sử dụng được hệ mật mã khóa cơng khai RSA trước tiên mỗi người phải tạo riêng cho mình một cặp khóa gồm khóa cơng khai, và khóa bí mật. Việc tạo ra khóa cơng khai và khóa bí mật thực hiện theo các bước sau:
+ Sinh ra 2 số nguyên tố lớn p và q ngẫu nhiên (p và q). + Tính n = p*q.
<i><b>Thuật tốn mã hóa : </b></i>
Hệ RSA là một hệ mật mã điển hình về kiểu mã hóa khối. Nghĩa là, thông điệp được chia thành nhiều khối (hoặc chuỗi) có chiều dài cố định, và mỗi khối sẽ
</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">được mã hóa riêng. Giả sử để gửi thông điệp bí mật M cho người nhận B trong nhóm gửi thơng tin an tồn, người gửi A phải thực hiện các bước như sau:
+ Thu nhận khóa cơng khai (e,n) của người nhận B.
+ Thực hiện một thuật tốn để biến đổi thơng điệp M thành những số nguyên m<small>i</small> tương ứng sao cho m<small>i</small> < n, (i = 1,…, k).
<i><b>Thuật toán giải mã : </b></i>
Để thực hiện quá trình giải mã, khôi phục lại nội dung của thông điệp M từ bản mã C nhận được, người nhận B sẽ thực hiện các bước như sau:
+ Tính m<small>i</small>= C<small>d</small>
<small>i</small> (mod n) với 0 ≤ m<small>i</small> ≤ n.
+ Thực hiện phép biến đổi ngược từ các số m<small>i</small> thành chuỗi ký tự tương ứng chứa thông tin M ban đầu.
<b>1.3.5. Hệ mã khóa cơng khai RSA </b>
Hệ mật mã khóa cơng khai RSA là hệ thống mật mã do các giáo sư Ronald Rivest, Adi Sharmir và Leonard Adleman phát mình năm 1978 tại học viện Công nghệ Massachusetts (MIT). Hệ mã RSA được xây dựng trên cơ sở mã hóa khối trong đó khóa mã hóa là cặp (e,n) gồm số mũ e và module n. Với n là tích số của 2 số nguyên tố rất lớn nào đó, n = p*q còn (e, φ(n)) = 1, với φ (n) là giá trị hàm Euler của n, trong trường hợp này φ(n) = (p - 1)*(q - 1).
<i>Các bước chủ yếu khi thực hiện mã hố khố cơng khai: </i>
Bước 1: Mỗi user tạo ra một cặp khoá được sử dụng cho việc mã hố và giải mã thơng điệp.
Bước 2: Mỗi user đặt một trong hai khoá trong một đăng ký cơng cộng. Đây là khố cơng khai. Khố cịn lại được giữ kín.
Bước 3: Muốn gửi một tin nhắn bí mật cho mã hoá tin nhắn bằng cách sử dụng khố cơng khai.
</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">Bước 4: Khi nhận được tin nhắn, muốn giải mã nó bằng cách sử dụng khố riêng của mình. Khơng có ai khác có thể giải mã thơng điệp bởi vì chỉ có người biết khố riêng.
<b>Ứng dụng của hệ mật mã RSA </b>
Trên cơ sở mức độ phức tạp của thuật tốn phân tích số ngun thành thừa số, có thể đảm bảo tính an tồn cao của giải pháp bảo mật sử dụng thuật toán RSA. Giải pháp bảo mật sử dụng thuật toán RSA thỏa mãn 5 yêu cầu:
Độ mật cao (để giải mã được mà khơng biết khóa thì phải tốn rất nhiều thời gian).
Thực hiện nhanh (mã hóa và giải mã tốn ít thời gian). Có thể dùng chung.
Chống từ chối (xác định rõ người thực hiện, dùng làm chữ kí điện tử).
Hiện nay, trên thị trường có nhiều giải pháp bảo mật để tăng cường tính an tồn cho hệ thống cơng nghệ thơng tin đặc biệt cho ngành Tài chính – Ngân hàng. Tuy nhiên, xét về mức độ an tồn dựa trên thuật tốn, thì giải pháp sử dụng thuật tốn RSA ln có độ tin cậy cao. Đây là điểm đáng lưu tâm trong bối cảnh nguy cơ rủi ro an ninh an tồn thơng tin như hiện nay.
Theo đánh giá của Công ty Forrester Research ( Theo đánh giá của Cơng ty Forrester Research(www.forrester.com)) , một cơng ty tồn cầu chuyên nghiên cứu thị trường và đánh giá các sản phẩm cơng nghệ thì giải pháp xác thực hai yếu tố RSA đạt mức an toàn rất cao và đáng tin cậy.
Nhận thức được tầm quan trọng và bảo mật thông tin, Ngân hàng Đầu tư và Phát triển Việt Nam (BIDV) đã nghiên cứu và đầu tư về bảo mật hệ thống công nghệ thông tin, đặc biệt, là giải pháp xác thực hai yếu tố RSA cho hệ thống ngân hàng cốt lõi corebanking và một số giải pháp bảo mật khác cho các ứng dụng phục vụ bảo mật cho các giao dịch của ngân hàng.
</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">Thực tiễn cho thấy tốc độ thực hiện của RSA là chậm. Tuy nhiên, người ta tìm thấy ở hệ mã RSA những khả năng ứng dụng độc đáo khác, thay vì trực tiếp mã hoá văn bản.
+ Tạo vỏ bọc an toàn cho văn bản. + Tạo chữ ký số cho văn bản.
<b>Thuật tốn RSA </b>
Hệ mã hóa RSA được mơ tả như sau:
Tính số ngun n = p.q từ 2 số nguyên tố ngẫu nhiên p,q Tính Φ (n) = (p – 1)(q -1)
Chọn một số e sao cho e và Φ (n) là hai số nguyên tố cùng nhau Tính số d sao cho e.d ≡ 1 mod Φ (n)
Khi đó: khóa cơng khai là cặp số (e,n) và khóa mật là cặp số (d,n) Mã hóa một văn bản m theo phương pháp mã hóa RSA như sau: C = Encrypt(m) = m<small>e </small> mod n
c: văn bản đã được mã hóa
Giải mã từ văn bản mã hóa c như sau: m = Decyrpt(c) = c<small>d</small> mod n
<i>Thuật toán phân tích một số nguyên n thành thừa số lại cần đến một thời gian tăng theo cấp số lũy thừa so với chiều dài của n. Nghĩa là, độ dài của số nguyên n tăng thêm vài kí tự thì thời gian cần để phân tích n thành thừa số sẽ tăng </i>
gấp đôi. Về lý thuyết, việc phân tích này khơng phải là không thể, tuy nhiên, số nguyên tố đã được các nhà toán học nghiên cứu từ rất lâu mà vẫn chưa có phương
<i>pháp nào phân tích số nguyên n thành thừa số nguyên tố trong khoảng thời gian đủ </i>
ngắn.
RSA là thuật toán đầu tiên phù hợp với việc tạo ra chữ kí điện tử, đồng thời với việc mã hóa, đánh dấu sự phát triển vượt bậc của lĩnh vực mật mã học trong
</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">việc sử dụng khóa công khai. RSA đang được sử dụng phổ biến trong thương mại điện tử và được cho là đảm bảo an tồn với điều kiện độ dài khóa đủ lớn.
Hệ mã hóa RSA được sử dụng rất rộng rãi trong các ứng dụng: bảo mật xác thực người sử dụng, chữ kí số,…
Thuật tốn RSA
Xây dựng: Chọn các tham số
1. Chọn hai số nguyên tố lớn p và q. Tính n = p x q và m = (n) = (p = 1) x (q-1).
2. Chọn e, 1 e m -1, sao cho gcd (e, m) = 1.
3. Tìm d sao cho e * d = 1 (mod m), tức là tính d = e<small>-1</small> (mod m), giải theo thuật tốn gcd mở rộng đã trình bày ở phần trước.
Khóa cơng khai (Public key) là (e, n) Khố dùng riêng (Private key) là d, p, q)
Giả sử X là một khối tin gốc (plaintext), Y là một khối mã tương ứng của X, và ( z<small>A</small>,Z<small>A</small>) là các thành phần cơng khai và riêng của khố
Mã hố: Muốn gửi một thơng báo mã hố ta chỉ việc dùng khố cơng khai Giải mã: Muốn giải mã Y, ta chỉ việc dùng khoá riêng z<small>A</small> = d để thực hiện.
<b>1.3.6. Hệ Elgamal </b>
<b>1.3.6.1 Hệ Elgamal là hệ mật mã công khai </b>
+ Hệ Elgamal dựa trên logarit bài tốn rời rạc. Tính an tồn của nó tùy thuộc vào độ phức tạp của bài toán logarit.
+ Hệ Elgamal là một biến thể của sơ đồ phân phối khóa Diffie-Hellman đưa ra năm 1985.
+ So với RSA hệ Elgamal khơng có nhiều rắc rối về bản quyền sử dụng.
</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31"><b>1.3.6.2 Mã hóa và giải mã hệ Elgamal </b>
Ban đầu người ta sẽ cho ̣n mô ̣t số nguyên tố lớn p và hai số nguyên tuỳ ý nhỏ hơn p là a (a là 1 phần tử nguyên thủy của Z * P) và x (x là của người nhận, bí mật) sau đó tính: y= a<small>x</small> mod p
Để mã hóa một thông điệp M (là một số nguyên trên ZP) thành bản mã C người gửi cho ̣n mô ̣t số ngẫu nhiên k nhỏ hơn p và tı́nh khóa mã hóa K: K = y<small>k</small> mod p
Sau đó tı́nh cặp bản mã: C1 = a<small>k</small> mod p, C2 = (K.M)mod p Và gửi bản mã C = (C1, C2) (chú ý là sau đó k sẽ bị huỷ).
Để giải mã thơng điệp đầu tiên ta cần tı́nh lại khóa mã hóa thơng điệp K: K = (C1<small>(p-1-x)</small>) mod p = (a<small>k.(p-1-x)</small>)mod p
Sau đó tı́nh M bằng cách giải phương trình sau đây: M = (C2 . K)mod p
Việc giải mã bao gồm việc tı́nh lại khóa ta ̣m thời K (rất giống với mơ hình của Diffie - Hellman đưa ra). Khóa cơng khai của hệ mã là (p, a, y), khóa bí mật là x.
<i><b>1.3.6.3 Ưu điểm và nhược điểm: </b></i>
Ưu điểm:
+ Độ phức tạp của bài toán logarit lớn nên độ an toàn cao.
+ Bản mã phụ thuộc vào bản rõ x và giá trị ngẫu nhiên nên từ 1 bản rõ ta có thể có nhiều bản mã khác nhau.
Nhược điểm:
+ Tốc độ chậm( do phải xử lý số nguyên lớn)
+ Dung lượng bộ nhớ dành cho việc lưu trữ khóa cũng lớn.
<b>1.4. Đánh giá hệ mã khóa cơng khai RSA 1.4.1. Độ an toàn của RSA </b>
Độ an toàn của RSA được thiết kế dựa trên độ khó giải bài tốn phân tích ra thừa số ngun tố n = p*q với 2 số nguyên tố bí mật lớn p, q. Nếu ta chọn các số p, q khoảng 100 chữ số thập phân thì nó sẽ có khoảng 200 chữ số thập phân. Để phân
</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">tích một số nguyên cỡ lớn như thế với các thuật toán nhanh nhất hiện nay cùng với những máy tính hiện đại nhất cũng mất hàng triệu năm. Như vậy việc phân tích số nguyên n thành các thừa số nguyên tố p, q nhằm mục đích bẻ gãy hệ mật mã RSA là điều khó có thể tính tốn nổi nếu như trong q trình thiết kế hệ RSA ta chọn số nguyên N lớn.
<b>1.4.2. Hiệu suất thực hiện của thuật toán RSA </b>
Tốc độ thực hiện của hệ RSA là một trong những điểm yếu so với các hệ mật mã khóa đối xứng. Theo ước tính, thực hiện mã hóa và giải mã bằng hệ mật mã RSA chậm hơn 100 lần so với hệ mật mã khóa đối xứng DES (khi thực hiện bằng phần mềm). Và chậm hơn 1000 lần so với DES (khi thực hiện bằng phần cứng).
<b>1.4.3. Một số tính chất của hệ RSA </b>
Trong các hệ mật mã RSA, một bản tin có thể được mã hóa trong thời gian tuyến tính. Đối với các bản tin dài, độ dài của các số được dùng cho các khóa có thể được coi như là hằng. Tương tự như vậy, nâng một số lên lũy thừa được thực hiện trong thời gian hằng, các số không được phép dài hơn một độ dài hằng. Thực ra tham số này che dấu nhiều chi tiết cài đặt có liên quan đến việc tính tốn với các số dài, chi phí của một phép tốn thực sự là một yếu tố ngăn cản sự phổ biến ứng dụng của phương pháp này. Phần quan trọng nhất của việc tính tốn có liên quan đến việc mã hóa bản tin. Nhưng chắc chắn là sẽ khơng có hệ mã hóa nào hết nếu khơng tính ra được các khóa của chúng là các số lớn.
Các khóa cho hệ mã hóa RSA có thể được tạo ra mà khơng phải tính tốn q nhiều. Một lần nữa, ta lại nói đến các phương pháp kiểm tra số nguyên tố. Mỗi số nguyên tố lớn có thể được phát sinh bằng cách đầu tiên tạo ra một số ngẫu nhiên lớn, sau đó kiểm tra các số kế tiếp cho tới khi tìm được số nguyên tố. Một phương pháp đơn giản thực hiên một phép tính trên một con số ngẫu nhiên, với xác suất ½ sẽ chứng minh rằng số được kiểm tra không phải nguyên tố. Bước cuối cùng tính p dựa vào thuật tốn Euclid.
</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">Như phần trên đã trình bày, trong hệ mã khóa cơng khai thì khóa giải mã KB và các thừa số p.q là được giữ bí mật và sự thành công của phương pháp là tùy thuộc vào kẻ địch có khả năng tìm ra được giá trị của KB hay khơng, nếu cho trước N và KB. Rất khó có thể tìm ra được KB từ KB cần biết từ p và q, như vậy cần phân tích N ra thành thừa số để tính p và q.
Nhưng việc phân tích ra một thừa số là một việc làm tốn rất nhiều thời gian, với kỹ thuật hiện đại ngày nay thì cần đến hàng triệu năm để phân tích một số có 200 chữ số ra thừa số.
Độ an tồn của thuật tốn RSA dựa trên cơ sở những khó khăn của việc xác định các thừa số nguyên tố của một số lớn. Bảng dưới đây cho biết các thời gian dự đoán, giả sử rằng mỗi phép toán thực hiện trong một micro giây.
<b>Bảng 1.1: Thời gian dự đoán của mỗi phép toán thực hiện trong một micro giây. </b>
Số các chữ số trong số được phân tích
Thời gian phân tích
<b>1.5. Một số phương pháp tấn công hệ mã RSA </b>
Một nhận định chung là tất cả các cuộc tấn công giải mã đều mang mục đích khơng tốt. Trong phần độ an toàn của hệ mã hoá RSA sẽ đề cập đến một vài phương thức tấn công điển hình của kẻ địch nhằm giải mã trong thuật toán này. Chúng ta xét đến trường hợp khi kẻ địch nào đó biết được modulo N, khố cơng khai KB và bản tin mã hố C, khi đó kẻ địch sẽ tìm ra bản tin gốc (Plaintext) như
</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">thế nào. Để làm được điều đó kẻ địch thường tấn vào hệ thống mật mã bằng hai phương thức sau đây:
<b>1.5.1 Phương thức thứ nhất </b>
Trước tiên dựa vào phân tích thừa số modulo N. Tiếp theo sau chúng sẽ tìm cách tính tốn ra hai số nguyên tố p và q, và có khả năng thành cơng khi đó sẽ tính được λ(N) và khố bí mật kB. Ta thấy N cần phải là tích của hai số ngun tố, vì nếu N là tích của hai số ngun tố thì thuật tốn phân tích thừa số đơn giản cần tối đa N bước, bởi vì có một số ngun tố nhỏ hơn N. Mặt khác, nếu N là tích của n số nguyên tố, thì thuật tốn phân tích thừa số đơn giản cần tối đa N 1/n bước.
Một thuật toán phân tích thừa số có thể thành phức tạp hơn, cho phép phân tích một số N ra thành thừa số trong O (P) bước, trong đó p là số chia nhỏ nhất của N, việc chọn hai số nguyên tố là cho thuật toán tăng hiệu quả.
<b>1.5.2. Phương thức thứ hai </b>
Phương thức tấn công thứ hai vào hệ mã hố RSA là có thể khởi đầu bằng cách giải quyết trường hợp thích hợp của bài toán logarit rời rạc. Trường hợp này kẻ địch đã có trong tay bản mã C và khố cơng khai KB tức là có cặp (KB,C). Cả hai phương thức tấn công đều cần một số bước cơ bản, đó là :
O(exp lnNln lnN , trong đó N là số modulo.
<b>1.6. Kết luận chương </b>
Chương này đã thể hiện những nội dung sau:
- Trình bày khát quát về mật mã, khái niệm về hệ mật mã khố bí mật và hệ mật mã hố khố cơng khai.
- Trình bày một số thuật tốn và định lý tốn học dùng trong các hệ mã công khai.
- Trình bày chi tiết hệ mật mã hố khố cơng khai, thuật tốn mã hố, giải mã và một số phương pháp tấn công hệ mã RSA.
</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">Chương 2: CHỮ KÝ SỐ
<b>2.1. Giới thiệu chung </b>
Trong đời sống hằng ngày, chữ ký (viết tay) trên một văn bản là một minh chứng về “bản quyền” hoặc ít nhất cũng là sự “tán đồng, thừa nhận” các nội dung trong văn bản. Chẳng hạn như trên việc ký vào phiếu nhận tiền từ ngân hàng, hợp đồng mua bán, chuyển nhượng, thừa kế, tố tụng…Chữ ký viết tay được chính tay người ký nên không thể sao chụp được. Thông thường chữ ký viết tay trên văn bản thì được dùng để xác nhận người ký nó. Về mặt lý tưởng thì:
o Chữ ký là bằng chứng thể hiện người ký có chủ định khi ký văn bản.
o Chữ ký thể hiện “chủ quyền”, nó làm cho người nhận văn bản biết rằng ai đích thị là người đã ký văn bản.
o Chữ ký khơng thể “ tái sử dụng”, tức là nó là một phần của văn bản mà không thể sao chép sang các văn bản khác.
o Văn bản đã ký không thể thay đổi được.
o Chữ ký không thể giả mạo và cũng là thứ không thể chối bỏ ( người đã ký văn bản không thể phủ định việc mình đã ký văn bản và người khác khơng thể tạo ra chữ ký đó).
Trong cuộc sống đời thường, việc tạo ra mơ hình “lý tưởng” như trên là không dễ vì việc ký trên văn bản giấy có thể giả mạo chữ ký nhưng với khả năng kiểm định sát sao thì việc làm thay đổi khơng phải dễ. Tuy nhiên trong thế giới máy tính thì vấn đề ký như trong thực tế sẽ gặp rất nhiều khó khăn: các dịng thơng tin trên máy tính có thể thay đổi dễ dàng, hình ảnh chữ ký tay của một người cũng dễ dàng cho “ sang - truyền” từ một văn bản này sang văn bản khác. Và việc thay đổi nội dung một văn bản điện tử (sau khi ký) cũng chẳng để lại vết gì về phương tiện sau khi tẩy, xóa…
Để có được những đặc tính như trên, giao thức (“ ký trong thế giới điện tử”) cần phải có sự hỗ trợ của cơng nghệ mã hóa. Ta cần dùng chữ ký để xác nhận các
</div>