1. Trang chủ
  2. » Luận Văn - Báo Cáo

Chữ ký số và các vấn đề bảo mật thông tin

88 13 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 88
Dung lượng 1,05 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Hai mục tiêu trên được thực hiện cụ thể bằng các công việc sau: - Tìm hiểu những cơ sở toá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ật mã kho

Trang 1

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

KHOA CÔNG NGHỆ THÔNG TIN



Nguyễn Thị Hồng Minh

CHỮ KÝ SỐ VÀ CÁC VẤN ĐỀ BẢO MẬT THÔNG TIN

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Thái Nguyên - 2010

Trang 2

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Nguyễn Thị Hồng Minh

CHỮ KÝ SỐ VÀ CÁC VẤN ĐỀ BẢO MẬT THÔNG TIN

Chuyên ngành: Khoa học máy tính

Mã số: 604801

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS Đoàn Văn Ban

Thái Nguyên - 2010

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan bản luận văn “Chữ ký số và các vấn đề bảo mật thông tin” là công trình nghiên cứu của tôi, dưới sự hướng dẫn khoa học của PGS.TS Đoàn Văn Ban, tham khảo các nguồn tài liệu đã được chỉ rõ trong trích dẫn và danh mục tài liệu tham khảo Các nội dung công bố và kết quả trình bày trong luận văn này là trung thực và chưa được ai công bố trong bất kỳ công trình nào

Thái nguyên, ngày 10 tháng 10 năm 2010

Nguyễn Thị Hồng Minh

Trang 4

LỜI CẢM ƠN

Trước tiên tôi xin gửi lời cảm ơn chân thành nhất đến thầy PGS TS Đoàn Văn Ban đã định hướng và nhiệt tình hướng dẫn, giúp đỡ tôi rất nhiều về mặt chuyên môn trong quá trình làm luận văn

Tôi xin gửi lời biết ơn sâu sắc đến các thầy, các cô đã dạy dỗ và truyền đạt những kinh nghiệm quý báu cho chúng tôi trong suốt hai năm học cao học tại khoa Công nghệ thông tin - Đại học Thái Nguyên

Tôi xin cảm ơn bạn bè, đồng nghiệp và gia đình, những người luôn gần gũi động viên, chia sẻ cùng tôi trong suốt thời gian làm luận văn tốt nghiệp

Thái Nguyên, tháng 11 năm 2010

Trang 5

MỤC LỤC

LỜI CAM ĐOAN 1

LỜI CẢM ƠN 2

MỤC LỤC 3

DANH MỤC CÁC TỪ VIẾT TẮT 5

DANH MỤC CÁC HÌNH 6

CÁC KÍ HIỆU DÙNG TRONG LUẬN VĂN 7

Mở đầu 8

1 Lý do chọn đề tài 8

2 Mục tiêu nghiên cứu 9

3 Phương pháp nghiên cứu 10

4 Tổng quan luận văn 10

Chương 1: Một số hệ mật mã khoá thông dụng 12

1.1 Giới thiệu 12

1.2 Hệ mã khoá bí mật 13

Hệ mã DES/ AES 13

1.3 Hệ mã hoá công khai 17

1.3.1 Các khái niệm cơ bản 17

1.3.2 Một số khái niệm toán học cơ sở 18

1.3.3 Các nguyên lý của hệ mật khoá công khai 23

1.3.4 Hệ mã logarithm rời rạc 26

1.3.5 Hệ ElGamal 28

1.3.6 Hệ RSA 29

1.4 Độ an toàn của RSA 34

1.4.1 Tạo vỏ bọc an toàn cho văn bản 35

1.4.2 Xác thực chủ thể 36

1.5 Quản lý khoá 36

1.5.1 Phân phối khoá cho giải thuật mật mã đối xứng 37

1.5.2 Phân phối khoá cho giải thuật mật mã không đối xứng 39

1.5.3 Phát sinh và lưu giữ khoá bí mật 42

Trang 6

1.6 Kết luận chương 45

Chương 2: Chữ ký số 48

2.1 Giới thiệu 48

2.2 Xác thực thông báo và các hàm xác thực 49

2.2.1 Xác thực thông báo 49

2.2.2 Các hàm xác thực 50

2.3 Chữ ký số 57

2.3.1 Chữ ký số dùng mật mã khoá công khai 57

2.3.2 Lược đồ chữ ký số 61

2.4 Các kiểu tấn công vào lượt đồ chữ ký 70

2.5 Kết luận chương 70

2.5.1 Tính pháp lý và ứng dụng chữ ký số trong và ngoài nước 71

Chương 3: Cài đặt demo chương trình 76

3.1 Lĩnh vực ứng dụng của chương trình 76

3.2 Chức năng của chương trình 76

3.2.1 Phần bảo mật thông tin 76

3.2.2 Phần chữ ký số 77

3.3 Một số màn hình giao diện của chương trình 77

3.4 Kết luận chương 81

Trang 7

DANH MỤC CÁC TỪ VIẾT TẮT

AES Advance Encryption Standard ASCII American Standard Code for Infornation Interchange

ANSI American National Standards Institute

DES Data Encryption Standard

FIPS Federal Information Processing Standard 46

IDEA International Data Encryption Algorithm

IEEE Institute of Electrical and Electronic Engineers

ITU International Telecommunication Union

ISO International Organization for Standardization

MAC Message Authentication Code

MARS Multicast Address Resolution Server

NIST National Institute Of Standards And Technology

OCSP Online Certificate Status Protocol

PKI public-key infrastructures

RSA Rivest, Shamir, Adleman

TCP/IP Transfer Control Protocol/Internet Protocol

URL Uniform Resource Locator

Trang 8

DANH MỤC CÁC HÌNH

Trang

Hình 1.1 Thuật toán giải mã của hệ DES 14

Hình 1.2 Sơ đồ khối nguyên lý hoạt động của mật mã khoá công khai 25 Hình 1.3 Minh hoạ quá trình mã hoá khoá công khai 31

Hình 1.4 Sơ đồ phân bố khóa của một network với một CKD 36

Hình 1.5 Sơ đồ phân bố khóa của một network với KD 49

Hình 1.6 Sơ đồ kiểm tra khoá 42

Hình 1.7 Sơ đồ bảo vệ khoá 43

Hình 2.1 (a) Lược đồ mã hoá thông báo 48

Hình 2.1(b) Mã hoá khoá công khai: xác thực và chữ ký 49

Hình 2.1(c) Mã hoá khoá công khai: Bí mật, xác thực và chữ ký 49

Hình 2.2 (a) Xác thực thông báo 50

Hình 2.2 (b) Bí mật và xác thực thông báo:Xác thực đối với bản rõ 50

Hình 2.2 (c) Xác thực đối với bản mã 50

Hình 2.3 Sơ đồ nguyên lý hoạt động của chữ ký số 56

Hình 2.4 Sơ đồ tạo và kiểm tra chữ ký số 57

Hình 2.5 Sơ đồ quy trình ký 60

Hình 2.6 Sơ đồ quy trình xác minh chữ ký 60

Hình 2.7 Tổng quan về chữ ký số với khôi phục thông điệp 62

Hình 2.8 Lược đồ tổng quan của chữ ký số với khôi phục thông điệp 62

Hình 3.1 Vấn đề chứng thực thông qua trung gian 75

Trang 9

CÁC KÍ HIỆU DÙNG TRONG LUẬN VĂN

 Không gian các bản mã

D, Dk Hàm giải mã, hàm giải mã với khoá k

d, dA Số mũ giải mã, số mũ giải mã của cá thể A

E, Ek Hàm mã hoá, hàm mã hoá với khoá k

e, eA Số mũ mã hoá, số mũ mã hoá của cá thể A

Trang 10

Mở đầu

1 Lý do chọn đề tài

Internet ngày nay đã trở thành mạng truyền dữ liệu được sử dụng phổ biến trên toàn thế giới Nó được sử dụng để truyền thư điện tử, truy cập các website, kết nối tới các trường học, công sở, giám sát hệ thống từ xa, truyền tệp Trong tương lai, Internet sẽ trở thành môi trường truyền thông phổ cập cho toà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ã hoá

Nhờ thông tin được người gửi mã hoá 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 nhận sẽ sử dụng một công cụ đặc biệt để giải mã Phương pháp mã hoá và bảo mật phổ biến nhất đang được thế giới áp dụng là chữ ký số (Digital signature) Với chữ

ký số, người sử dụng có thể mã hoá 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 Ngoà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 mình

đã gửi

Đối với các hoạt động trên 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

Trang 11

khác, việc giao dịch bằng các thông điệp điện tử nói chung và giao dịch ở dạng số nói riêng đã được luật hoá 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 dẫn, em đã chọn đề tài “Chữ ký số và các vấn đề bảo mật thông tin”

2 Mục tiêu nghiên cứu

Nghiên cứu các giải pháp mã hoá để 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 đổi thông tin mật với các đối tác, điều hành công việc từ xa

Hai mục tiêu trên được thực hiện cụ thể bằng các công việc sau:

- Tìm hiểu những cơ sở toá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ật mã khoá 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ật mã khoá công khai

- Nghiên cứu tìm hiểu cụ thể các hệ mật khoá 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

- 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ử

Trang 12

- Tìm hiểu các ngôn ngữ lập trình Visual C#.net phục vụ cho công việc lập trình ứng dụng

- Trên cơ sở các nghiên cứu đó, đánh giá, so sánh độ an toàn của các hệ mật mã khoá công khai, từ đó xây dựng một chương trình ứng dụng có các chức năng tạo khóa, mã hoá hoặc tạo chữ ký, giải mã thông điệp dựa trên hệ mật mã RSA có độ an toàn và hiệu xuất thực thi cao, có khả năng ứng dụng vào thực tiễn như bảo mật nội dung thông tin thư tín điện tử, tạo chữ ký trên các tài liệu, văn bản điện tử cần thiết trao đổi thông qua mạng

- Nghiên cứu về mật mã khoá công khai RSA, chữ ký số và ứng dụng thuật toán RSA

- Luận văn sẽ 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ã hoá nói chung và của mã hoá khoá công khai nói riêng

3 Phương pháp nghiên cứu

Nghiên cứu các tài liệu về mã hoá, hệ mật mã của các tác giả trong và ngoài nước, các bài báo, thông tin trên mạng, …

Nghiên cứu ngôn ngữ lập trình hướng đối tượng Visual C#

.net để viết một ứng dụng nhỏ về chữ ký số

4 Tổng quan luận văn

Luận văn được trình bày theo hình thức từ trên xuống Bắt đầu của mỗi phần đều đưa ra những khái niệm cơ bản và quy định cho phần trình bày tiếp sau nhằm mục đích giúp dễ dàng trong khi đọc, dần dần đi sâu vào để thảo luận

rõ hơn những vấn đề liên quan, bao gồm việc bảo vệ an toàn thông tin dữ liệu dùng mật mã, mật mã khoá công khai RSA và chữ ký số

Trang 13

Luận văn được trình bày trong 3 chương và phần kết luận

Chương 1 Một số hệ mật mã khoá thông dụng

Giới thiệu về hệ mật mã khóa công khai các nguyên lý của nó; trình bày những khái niệm cơ bản & hệ khoá công khai RSA; phương pháp xây dựng, ý tưởng, thuật toán và độ phức tạp của thuật toán

Khái niệm về chữ ký số, sơ đồ chữ ký RSA; Các phương pháp xác thực và hàm băm mật mã; Chữ ký số, các hình thức ký, xác thức chữ ký số

Chương 3 Cài đặt demo chương trình

Chương này đề cập đến việc xây dựng và cài đặt ứng dụng chữ ký số và các chức năng của chương trình từ đó đưa ra các kết quả thực hiện của chương trình demo

Kết luận

Tóm tắt những kết quả đạt được đồng thời nêu ra những hạn chế của luận văn và hướng phát triển có thể được theo hướng nghiên cứu của luận văn trong tương lai

Trang 14

Chương 1: Một số hệ mật mã khoá thông

dụng

1.1 Giới thiệu

Lý thuyết mật mã và an toàn thông tin đã và đang chiếm lĩnh sự quan tâm của nhiều người, điều đó xuất phát từ nhu cầu đảm bảo an toàn thông tin trong thời đại bùng nổ công nghệ và sự giao lưu thông tin ngày càng phát triển mạnh

mẽ như hiện nay Chương này giới thiệu một số nét cơ bản về thuật toán RSA dùng cho hệ thống mã hoá công khai và ứng dụng của nó trong chữ ký số [12] 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 là 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ã hoá 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ự thoả thuận nào đó về việc dùng khoá để A có thể mã hoá 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ó khoá 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 các hệ mã làm hai loại chính là hệ mã khoá bí mật và hệ mã khoá công khai (public-key cipher system) Các hệ mã khoá bí mật thực hiện việc bảo mật đều dựa trên cơ sở là có một khoá để dùng chung cho việc lập mã

và giải mã Các hệ mã hoá công khai là trong đó mỗi người tham gia vào quá trình truyền tin sẽ có hai khoá khác nhau, một khoá công khai (public key) dùng

để lập mã và một khoá mật (private key) dùng để giải mã Khoá công khai được công khai hoá cho mọi người, còn khoá mật của mỗi người được giữ bí mật

Trang 15

Thông tin trước khi gửi đi được mã hoá bởi khoá 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 khoá mật của mình Độ bảo mật 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 toá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 lớn thành tích các thừa số

Trang 16

(Federal Information Processing Standard 46) NIST đang đề nghị thay FIPS và các mở rộng của nó bằng Trip-DES (TDES hay 3DES) với tên X9.2 trong mô tả của Viện tiêu chuẩn Quốc gia Mỹ (ANSI) [5] DES sử dụng một phép hoán vị, thay thế, và một số toán tử phi tuyến Các toán tử phi tuyến này được áp dụng (16 lần) và từng khối của thông điệp 32 bit; Bản rõ, trước hết, được chia thành các khối thông điệp 64 bit

Trang 17

Hình 1.1 Thuật toán giải mã của hệ DES

Khoá sử dụng 56 bit nhận được từ khoá bí mật 64 bit, có chứa 8 bit kiểm tra chẵn lẻ Thuật giải giải mã được thực hiện theo chiều ngược lại cũng với khoá bí mật được dùng khi mã hoá Thuật giải được minh hoạ như trong hình vẽ 1.1, trong đó, phép  ký hiệu phép XOR

Trong đó, f là hàm nhận nửa phải 32 bit và một khoá vòng 48 bit, sinh ra

một kết xuất 32 bit Mỗi khoá vòng Ki chứa một tập con các khoá 56 bit

Cuối cùng, sau 16 bước ta được C‟ = (R16 ,L16) C‟ sau đó được hoán vị tương ứng với phép hoán vị IP-1

để được bản mã cuối cùng C

Giải mã được thi hành theo trình tự ngược lại: một phép hoán vị, 16 vòng XOR sử dụng khoá vòng theo thứ tự ngược lại và phép hoán vị sau cùng phục hồi lại bản rõ Tất cả các phép khai triển bit này có thể được kết hợp vào một mạch logic chuyên dụng, vì thế DES có thể được cài đặt rất hiệu quả Tuy nhiên, theo nghiêm cứu của Electronic Frontier Foundation thì khả năng thám

Trang 18

mã DES 56 bit khoảng 22 giờ Vì thế, NIST khuyên nên sử dụng Triple DES (3DES) bao gồm 3 lần mã hoá DES khác nhau

Đặt E (k, M) và D(k, C) biểu diễn mã hoá và giải mã DES của M và C với khoá k Mỗi phép mã/ giải mã TDES là một phép ghép của các phép mã/giải mã Các phép toán sau đƣợc sử dụng trong TDES:

Phép mã hoá TDES: biến đổi một khối M 64 bit thành một khối C 64 bit đƣợc xác định nhƣ sau:

Trang 19

viên chính thức được gửi đến từ các nhà nghiên cứu thuộc 12 nước khác nhau Sau đó, các nhà khoa học thử tìm cách tấn công các thuật giải mã hoá này, để tìm ra điểm yếu nhất có thể có để tấn công chúng Sau đó, tại Second AES Candidate Conference,

tổ chức tại Rôma, Ý, ngày 22-23 tháng 09 năm 1999, NIST thông báo 5 ứng viên chính thức sau:

- MARS – do công ty IBM phát triển (Mỹ)

- RC6 – do phòng thí nghiệm RSA tại Bedford, Masachusetts (Mỹ)

- Rijndael – do Joan Deamen và Vincent Rijmen (Bỉ)

- Serpent – do Ros Anderson (Anh), Eli Bihan (Israel) và Lars Knudsen (Na-uy)

- Twofish – do Bruce Schneier, John Kelsey, Doug Whiting, David Wagner Chris Hall và Niels Ferguson (Mỹ) [5]

1.3 Hệ mã hoá công khai

1.3.1 Các khái niệm cơ bản

Trong một hệ mã hoá công khai (mã không đối xứng), khoá mã hoá ek và khoá giải mã dk khác nhau, ek ≠ dk Vì ek chỉ được sử dụng để mã hoá nên có thể được công bố; nhưng khoá giải mã dk phải giữ bí mật Để phân biệt với hệ mã bí mật, ta gọi ek là khoá công khai, và dk là khoá cá nhân; còn khoá trong hệ mã đối xứng được gọi là khoá bí mật Hệ mã khoá công khai được xây dựng trên ý tưởng hàm một chiều

Cho các tập hữu hạn S và T Hàm một chiều:

f : S → T

là hàm khả nghịch thoả:

(i) f dễ thực hiện, nghĩa là, cho x  S, có thể dễ dàng tính được

y = f (x)

Trang 20

(ii) f -1, hàm ngược của f, khó thực hiện, nghĩa là, cho y

T, rất khó tính được x = f -1

(y)

(iii) f -1 có thể tính được khi có thêm một số thông tin

1.3.2 Một số khái niệm toán học cơ sở

1.3.2.1 Modulo số học và các nhóm Z(p) * , G(q)

Phần lớn các tính toán liên quan đến hệ mật mã khoá công khai và tiền điện tử, chúng ta thường sử dụng tập các số nguyên từ 0 tới p-1, trong đó p là số nguyên tố lớn Những số này cùng với hai phép toán, phép nhân * và phép luỹ thừa ^ sẽ tạo thành các cấu trúc nhóm có những tính chất quan trọng được sử dụng để mật mã và bảo mật tiền điện tử [12]

Trước tiên, chúng ta xét một số tính chất quan trọng của tập Z(p)*

= {1, 2,

3, 4, ., p-2, p-1} Dễ nhận thấy, nếu ta nhân hai số bất kỳ trong tập này với nhau, sau đó lấy số dư theo modulo p, thì kết quả là một số vẫn nằm trong tập

đó Nghĩa là Z(p) *

đóng với phép nhân Mặt khác, nếu ta lấy một số bất kỳ trong

tệp đó, ví dụ số k, khi đó sẽ tồn tại một số khác, ký hiệu là k^-1, sao cho k*k^-1 =

1 mod p Nghĩa là mọi số nguyên trong tập này đều có phần tử nghịch đảo bội (multiplicative inverse) Hai tính chất này khẳng định rằng Z(p)* là một nhóm với phép nhân mod p Tương tự, chúng ta có thể khẳng định nó cũng là nhóm với phép luỹ thừa, vì phép luỹ thừa thực chất là bội của các phép nhân, ví dụ

2^3 = 2*2*2 (Lưu ý: 0 được loại khỏi Z(p)* bởi vì nó không có phần tử nghịch đảo bội Nếu ta bổ sung 0 vào Z(p)*, thì chúng ta nhận được Z(p), chứa tất cả

Trang 21

đảo của nhau Vậy Z(11)*

là đóng với phép nhân và luỹ thừa, các phần tử đều có phần tử nghịch đảo nên nó là một nhóm

Ta có thể khẳng định thêm, ước chung lớn nhất, ký hiệu là

gcd của p và bất kỳ số nào trong tập trên luôn là 1, nghĩa là chúng nguyên tố cùng nhau

k  Z(p)*, gcd(k,p) =1

Trên tập Z(p)*, chúng ta có thể định nghĩa thêm phép toán khác, phép chia

Chúng ta định nghĩa phép chia cho k, ký hiệu là „/‟ như là phép nhân với phần tử

nghịch đảo của k, đó là k-1 Ví dụ 8/k = 8*k-1 Nếu k = 9 trong Z(11)*

, thì 8/9 = 8*9-1 = 8*5 = 40 = 7 mod 11

Tương tự, 3/10 = 3*10-1

= 3*10 = 30 = 8 mod 11

Giả sử g là một số của Z(p)* g được gọi là phần tử sinh (generator) mod p

nếu tập tất cả các luỹ thừa của g tạo ra tập tất cả các phần tử của Z(p)* Nghĩa là {g1 mod p, g2 mod p, , gp-1 mod p} = Z(p)*

Từ đó chúng ta thấy Z(p)* = {1, 2, , p-1} biểu diễn cho một tập (được sắp xếp lại) các số g, g2

, g3, , gp-1 được tính theo mod p Để cho tiện lợi chúng

ta có thể viết mod p ở bên ngoài cặp ngoặc đơn, hoặc có thể bỏ qua:

{g1 , g2, , gp-1} mod p = Z(p)* hoặc có thể viết ngắn gọn

{g1 , g2, , gp-1} = Z(p)*

Ví dụ, 3 là phần tử sinh của Z(7)*, bởi vì

31 = 3 mod 7, 32 = 2 mod 7, 33 = 6 mod 7,

34 = 4 mod 7, 35 = 5 mod 7, 36 = 1 mod 7

Hiển nhiên là {3, 32

, 33, 34, 35, 36} = {1, 2, 3, 4, 5, 6} tính theo mod 7

Một bộ sinh theo mod p là một tập gồm k phần tử {g1, , gk}, trong đó

các gi, i = 1, 2, …, k là các phần tử sinh khác nhau

Ví dụ, {3, 5} là bộ sinh của Z(7)*, bởi vì cả 3 và 5 đều là phần tử sinh của Z(7)*

Trang 22

Dễ dàng kiểm tra đƣợc số 2 không phải là phần tử sinh theo mod 7, bởi vì

{2, 22, 23}mod 7 = {1, 2, 4}  Z(7)* Nhƣng tập {1, 2, 4} là tập con của {1, 2, 3, 4, 5, 6} = Z(7)*

Vậy có thể nói 2 phần tử sinh của nhóm con của Z(3)*

theo mod 3

Một nhóm đƣợc sinh bởi g đƣợc gọi là nhóm có bậc q mod p nếu q là số

luỹ thừa nhỏ nhất sao cho gq

= 1 mod p

Chúng ta xét lại hai phần tử sinh của Z(7)*

là 3 và 5, bởi vì 6 là số luỹ thừa nhỏ nhất để 1=36

=56 mod 7, nên Z(7)* là nhóm có bậc 6 mod 7 và không có số luỹ thừa nào khác có tính chất trên

Nói chung, với số nguyên tố q, 1< q < p, G(q) đƣợc xem nhƣ là một nhóm (hoặc nhóm con) bậc q mod p, nếu với phần tử sinh g, 1 < g < p, chúng ta có {g,

g2, g3, , gq} là tập con của Z(p)*

Nhận xét, giả sử g là phần tử của Z(p)*

và g là phần tử sinh của Z(p)* nếu g

là phần tử có bậc là p-1, nghĩa là g^(p-1) = 1, và không có số luỹ thừa nào nhỏ

để bằng 1 theo mod p

1.3.2.2 Số nguyên tố mạnh (strong prime)

Số nguyên tố p đƣợc gọi là số nguyên tố mạnh nếu những điều kiện sau đƣợc thoả mãn:

 p - 1 có thừa số nguyên tố lớn, đó là p = a1q1 + 1 cho a1 là số nguyên nào đó và số nguyên tố lớn q1

 q1 - 1 có thừa số nguyên tố lớn, trong đó q1 = a2q2 + 1 cho a2 là số nguyên nào đó và q2 là số nguyên tố lớn

 p + 1 có thừa số nguyên tố lớn, p = a3q3-1 cho a3 là số nguyên nào đó, q3 là số nguyên tố lớn

Đôi khi số nguyên tố thoả mãn một tập con của các điều kiện trên cũng đƣợc gọi là số nguyên tố mạnh

Trang 23

Trong lý thuyết số, một số nguyên tố mạnh là một số nguyên tố pn, với n là chỉ số của số nguyên tố thoả mãn:

Thì pn được gọi là số nguyên tố mạnh Ví dụ, 17 là số nguyên tố thứ bảy Số nguyên tố thứ sáu và thứ tám là 13 và 19, áp dụng công thức trên ta có:

16 2

19 13

Từ định lý Fermat chúng ta suy ra, các số nguyên 1, 2, 3, , p-1 đều

không chia hết p, do vậy tất cả các luỹ thừa của chúng với p-1 đều bằng 1 mod

p Ví dụ, trong Z(11)*

, chúng ta có p - 1 = 10, và

110 = 210 = 310 = 410 = 510 = 610 = 1 mod 11

710 = 810 = 910 = 1010 = 1 mod 11

Hệ quả của Định lý Fermat nhỏ: Giả sử p là số nguyên tố dương

(i) Với mọi số nguyên a ta có ap

≡ a [mod p]

(ii) Nếu e, d nguyên dương và thoả điều kiện e*d ≡ 1 [mod p - 1] thì ta có (ae)d = (ad)e ≡ a [mod p]

Nhờ hệ quả này ta có thể mã hoá nhờ số e (bằng cách nâng lên luỹ thừa e)

và giải mã bằng một số khác là d (nâng số bị mã hoá lên luỹ thừa d ta trở lại số cũ) Ngược lại cũng có thể mã hóa bằng d và giải mã bằng e, đây là tính chất

"khoá bằng chìa này nhưng mở bằng chìa khác” Nhờ tính chất này mà ta có

Trang 24

thể giao cho mỗi người một "chìa khoá" riêng [5]

Áp dụng định lý Fermat chúng ta có hệ quả là định lý Lagrange

1.3.2.4 Định lý Lagrange

Bậc q của bất kỳ phần tử nào trong nhóm nhân theo mod p đều là thừa số

của p-1 [5]

Xét ví dụ với p = 7, p - 1 = 7 - 1 = 6 Như ở trên chúng ta đã thấy, 6 là bậc của

3 và 5 trong Z(7)*, và tất nhiên 6 chia hết (7-1) Tương tự, 2 và 4 có bậc 3 mod 7,

và 3 chia hết (7-1)

1.3.2.5 Định lý Euler

Định lý Euler là mở rộng của định lý Fermat nhỏ Thực tế phép mã hoá theo định lý Fermat rất dễ bị tấn công, ngay cả khi số p rất lớn nếu đã biết số e thì có thể tìm rất nhanh số d sao cho ed ≡ 1 [mod p - 1] Định lý Euler có thể khắc phục điểm này nhờ thay số p bằng tích của 2 hay nhiều số nguyên tố Cho trước số nguyên dương n >1 Hàm φ(n) là số lượng các số nguyên dương a nhỏ hơn n mà nguyên tố cùng nhau với n Chẳng hạn số n = 12 có 4 số

1, 5, 7, 11 thoả điều kiện này nên ta có φ(12) = 4 Trường hợp tổng quát nếu n phân tích thành các thừa số nguyên tố n = p11

p

1 1

1 1

1 1

2 1

(1.9)

1.3.2.6 Định lý Số dư Trung hoa

Định lý số dư Trung hoa [6] là tên gọi do người phương Tây đặt cho định

lý này Người Trung Hoa gọi nó là bài toán Hàn Tín điểm binh Sử ký Tư Mã Thiên viết rằng khi Hàn Tín điểm quân số, ông cho quân lính xếp hàng 3, hàng

5, hàng 7 rồi báo cáo số dư Từ đó ông tính chính xác quân số đến từng người

Trang 25

Gần đây, định lý số dư Trung Quốc có nhiều ứng dụng trong các bài toán về số nguyên lớn áp dụng vào lý thuyết mật

Định lý: Giả sử n>1 là số nguyên dương và m1, m2, , mn

là n số nguyên lớn hơn 1 đôi một nguyên tố cùng nhau Đặt M = m1m2 mn Cho trước các số nguyên a1, a2, ., an khi đó tồn tài duy nhất một số nguyên x (0x<M) thoả mãn các phương trình đồng dư sau đây:

m a

x

m a

x

mod

mod

mod

2 2

1 1

m a

x

m a

x

mod

mod

mod

2 2

1 1

Hệ phương trình đồng dư nói trên có nghiệm duy nhất theo mođun M =

m1.m2 mk, trong đó m1, m2, ., mn đôi một nguyên tố cùng nhau [12] Trong bài toán Hàn Tín n = 3 và m1 = 3, m2 = 5, m3 = 7

1.3.3 Các nguyên lý của hệ mật khoá công khai

Năm 1976, Diffie và Hellman công bố một phát triển mới mang tên “các

phương hướng mới trong mật mã” (new directions in cryptography) 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 khoá mã khác nhau nhưng có mối liên hệ với nhau, và một trong hai khoá đó được giữ bí mật Bên nhận dữ liệu giữ một khoá bí mật cho phép

Trang 26

giải mã với khoá đó, còn bên gửi sử dụng một khoá khác tương ứng với khoá bí mật trên để mã hoá dữ liệu, khoá đó gọi là khoá công khai Hệ thống dùng khoá như vậy gọi là hệ thống “không đố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 [1], [4], [5]

Để dùng một hệ thống mật mã khoá 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 khoá lập mã

ki và một hàm mã hoá

i k

E được thông báo công khai Như vậy có n khoá lập mã được công khai k1, k2,…,kn 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ố hoá, 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ã kj của cá thể thứ j (đã được thông báo công khai) dùng hàm mã hoá Ej, và gửi đi dưới dạng:

C = E k j(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ỉ một mình cá thể j biết khoá này) với hàm giải mã

j k

D ) là cặp khoá của cá thể j, trong đó:

D : là khoá giải mã (khoá riêng hay còn gọi là khoá bí mật)

Như vậy, các thuật toán khoá 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 khoá), 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 khoá như trong hệ mã bí mật (mật mã đối xứng) (ii) Cặp khoá công khai được tạo ra theo một phương pháp đặc biệt có

Trang 27

quan hệ với nhau và đƣợc chọn trong nhiều khoá có thể (trong

đó nếu khoá này dùng để mã hoá thì khoá kia dùng để giải mã)

Hình 1.2 mô tả rõ ràng mối quan hệ đó

Trang 28

Hình 1.2 Sơ đồ khối nguyên lý hoạt động của mật mã khoá công khai

Trong đó:

 Ks gọi là mầm khoá hay còn gọi là khoá khởi thảo được chọn theo

phương pháp ngẫu nhiên

 Hai thuật toán F, G dùng để tính toán các khoá Bên nhận dùng hai thuật

toán F và G cùng với mầm khoá ks để tạo ra hai khoá: khoá giải mã kd bí

mật được giữ lại sử dụng riêng cho mình và khoá ke công khai gửi cho

bên gửi để mã hóa tin gửi cho mình

Mô hình này do Diffie-Hellman [5] xây dựng dựa trên bài toán logarithm

rời rạc Phương pháp có thể được tóm tắt như sau:

k s

G

D

k d

Trang 29

Nghi thức truyền hóa Diffie-Hellman

Mô hình này không dùng để gửi thông điệp mật mà chỉ dùng cho các đối tác xây dựng khóa bí mật dùng chung trên mạng công cộng Nhƣ thế, có thể sử dụng Diffie-Hellman kết hợp với DES để trao đổi thông tin mật Nghi thức trao đổi khóa giữa A và B nhƣ sau:

Các thành viên trong hệ thống cùng chọn chung một số nguyên tố q và một phần tử sinh g,

- A chọn ngẫu nhiên một số a  {1, 2, , q - 1} và gửi cho B kết quả của ga

Rõ ràng, nếu có g, q, ga mod q và gb mod q thì có thể tính đƣợc gab mod q

và nhƣ thế có thể hiểu đƣợc các phiên giao dịch của A và B Thực vậy, có thể dùng g, q, ga mod q và gb mod q để tính lại a, sau đó có thể dễ dàng phá đƣợc hệ thống Diffie-Hellman Vì thế, tính an toàn của hệ thống Diffie-Hellman dựa trên giả thiết rằng không thể tính gab

nếu chỉ biết ga và gb Trên lý thuyết, có thể có cách sử dụng tri thức về ga

và gb để tính gab Nhƣng hiện tại, chƣa có cách nào

Trang 30

- A chọn ngẫu nhiên một số đồng dƣ x mod p, tính 7x(mod p) và gửi kết quả cho B, giữ bí mật x

- Vì A biết khóa giải mã bí mật là a, A có thể tìm lại M bằng cách tính

gab (mod q) và chia Mgab cho kết quả nhận đƣợc

Trang 31

1.3.6 Hệ RSA

Phương pháp bảo mật dữ liệu RSA được thành lập vào năm

1982 bởi Rivest, Shamir và Adleman , là những người phát minh

ra hệ thống mã hóa sử dụng khóa công khai RSA Ngày nay, có hơn 75 triệu bản copy của kỹ thuật xác nhận và mã hóa của RSA được cài đặt trên thế giới [4], [5], [12]

Kỹ thuật RSA bây giờ là một phần trong những tiêu chuẩn của Internet và Web, ITU (International Telecommunication Union - Hiệp hội Viễn thông Quốc tế), ISO (International Organization for Standardization - Tổ chức Tiêu chuẩn Quốc tế), ANSI (American National Standards Institute - Viện tiêu chuẩn quốc gia của Mỹ ), IEEE (Institute of Electrical and Electronic Engineers - Viện kỹ thuật của kỹ sư điện và điện tử ), cũng như các mạng máy tính dùng trong kinh doanh, tài chính , thương mại điện tử trên thế giới Năm 1996, RSA được Security Dynamics mua và sau đó phát triển nhằm mục đích thương mại hóa cho người sử dụng độc lập với hệ thống và đồng thời cung cấp dịch vụ cố vấn toàn diện về hệ thống mã hóa

Theo sơ đồ hình 1.2 với khoá công khai ke, hàm E dùng tham số đó để tạo

ra C = E (P)

e

k là một hàm công khai Nhưng phải đảm bảo yêu cầu của phép mã hoá là không thể để kẻ xâm nhập có thể tính được P từ C Vậy E phải là hàm

một chiều (hàm f được gọi là hàm một chiều nếu với mọi giá trị x việc xác định

y = f(x) là dễ dàng, nhưng nếu với một giá trị y thì việc tính nghịch đảo x = f

-1 (y) là rất khó khăn), trong khi đó thuật toán

d k

D là nghịch đảo của hàm đó Nhưng nếu không biết được khoá bí mật kd thì không thể tính được nghịch đảo của E, kd được cấu thành như là một loại “cửa sập” (trapdoor) Vì vậy hàm mã

hoá E còn được gọi là “hàm một chiều với cửa sập”

Trang 32

Dựa trên việc chưa có thuật toán với thời gian đa thức phân tích một số n thành các thừa số nguyên tố Trong phương pháp mật mã RSA, việc mã hoá và giải mã dựa vào hàm lũy thừa, vào một số kiến thức toán học

Khi một hệ thống được thiết lập, đơn vị tạo khoá (Ngân hàng, khách hàng,

) sẽ sinh ra 2 số nguyên tố lớn p và q Tích n = p*q sẽ được tính theo luỹ thừa

của modulo Hàm totient của n là t(n) = t*(p*q) = (p-1)*(q-1) Cơ sở của hệ RSA là định lý Euler dựa trên các số x nguyên tố cùng nhau với n:

xt(n) = x(p-1)*(q-1) = 1 mod n

Đặt t = (p-1)*(q-1), ta có

xt = 1 mod n, nếu x không chia hết p và q

Sau đó chọn e và d sao cho e*d = 1 mod t, [nghĩa là, e*d = k*t + 1, với một

số k nguyên nào đó], trong đó, (e, n) sẽ là khoá công khai và (d, n) là khoá bí

mật Khi đó mọi bản tin x được mã hoá với e có thể giải mã bằng d

Nói chung trong hệ RSA, bản tin rõ M và bản mã tương ứng C được xác

định:

Me*d = (Me)d = (Md)e = M mod n

Mã hoá: Ee(M) = C = Me mod n

Giải mã: Dd(C) = Cd mod n = (Me)d mod n = M mod n

Trường hợp có khoá riêng là d có thể ký vào bản tin M bằng cách mã hoá

Trang 33

Tính d sao cho e*d = 1 mod t

Ta muốn 7*d = 1 mod 120

Vậy d = 103, vì 7*103 = 721 = 1 mod

120

Khoa công khai: (e, n) Khoá công khai: (7, 143)

Khoá riêng: (d, n) Khoá riêng: (103, 143)

Trong thực tế, khóa công khai (public key) là một chuỗi bit bao gồm số n

và số mũ mã hóa e (encryption exponent), khóa bí mật (private key) là một chuỗi bit bao gồm p, q và số mũ giải mã d (decryption exponent)

Trang 34

Để tăng tốc quá trình giải mã (RSA Fast Decryption), trong khóa bí mật, người ta còn lưu thêm một vài thông số nữa như dp

= d mod (p - 1) và dq = q mod (q - 1)

Trong hệ mã RSA, người ta công bố n và e (public key) và giữa bí mật p, q, d (private key) Như vậy với thông điệp mã hóa, chỉ cần có d là

có thể giải mã được Do ed = 1 (mod φ(n) ) nên nếu biết e và φ(n) thì ta có thể

dễ dàng tìm d bằng thuật toán Euclid mở rộng Nhưng vấn đề là chỉ có n được công bố còn φ(n) thì không Ta đã biết φ(n) = (p-1) * (q-1) và n = p*q Vậy để tìm φ(n) thì ta phải tìm được p và q từ n Đây chính là bài toán phân tích thừa số nguyên tố của số nguyên lớn

Do thám mã RSA dựa chủ yếu trên phân tích thừa số nguyên tố p, q từ n nên việc chọn các số nguyên tố p, q như thế nào để việc phân tích gặp khó khăn cũng rất quan trọng Vấn đề này đòi hỏi p, q phải là những số nguyên tố mạnh

Ta sẽ chứng tỏ rằng, nếu biết số mũ mã hoá e không thể dẫn đến việc tìm được số mũ giải mã d

Thật vậy: muốn tìm nghịch đảo d của e modulo  ( )n thì trước hết phải tìm được  ( )n , nhưng việc tìm được  ( )n không dễ hơn với việc phân tích số n Bởi

vì một khi đã biết n và  ( )n thì dễ dàng tìm được p và q Thật vậy:

Trang 35

Với các ví dụ nêu trên, chúng ta dễ dàng đọc, hiểu được sơ

đồ mã hoá khoá công khai RSA như trong hình 1.3 sau:

Các bước cơ bản gồm:

1 Mỗi thành viên sinh một cặp khoá (n; e; d), một khoá dùng để mã hoá và

một khoá dùng để giải mã các thông điệp

2 Mỗi thành viên công bố khoá công khai của mình (n; e) cho các thành

viên khác trong hệ thống biết Khoá cùng cặp (n; d) được giữ riêng làm khoá bí

mật (dùng để giải mã thông điệp)

3 A gửi thông điệp cho B thì A mã hoá thông điệp bằng khoá công khai (n;

eb) của B

4 Khi B nhận được thông điệp của A gửi, B giải mã thông điệp bằng khoá

riêng (n; db) của mình Không một người nào khác có thể giải mã thông điệp

ngoài B, vì chỉ có B mới biết khoá riêng của mình

Dựa vào thuật toán RSA đã mô tả trên, ta thấy, để sinh được cặp khoá và

thực hiện được các phép lập mã, giải mã ta phải giải quyết các bài toán sau đây:

 Tìm các số nguyên tố lớn để lấy làm các giá trị p và q (mỗi số có độ lớn

không ít hơn 100 chữ số thập phân)

 Thực hiện nhanh các phép toán số học trên các số rất lớn, đặc biệt là phép

mũ với số mũ lớn theo modulo n

Mã hoá

ebKhoá công khai

Giải mã

Khoá bí mật

d b

Hình 1.3 Minh hoạ quá trình mã hoá khoá công khai

RSA

Trang 36

Độ bảo mật của RSA phụ thuộc vào mức độ khó của phân tích ra thừa số của các số lớn Ví dụ với n đủ lớn thì hoàn toàn

không dễ gì mà tìm được hai số nguyên tố n = p*q Khi đã biết p

và q, thì vấn đề tiếp theo là tìm khoá công khai e cũng như khoá

bí mật d sao cho e*d = 1 mod (p - 1)*(q - 1)

Đối với hệ mật công khai (năm 1997) người ta cho rằng với 768 bits (để tạo ra hai số nguyên tố khoảng 384 bits) đủ bảo đảm an toàn cho đến năm 2004 không ai phá được Thuật toán phân tích một số n thành hai thừa số là thuật toán sàng trường số (number field sieve) [16], có độ phức tạp cỡ

Để phân tích số n = 21024

đòi hỏi 287 phép tính Giả sử máy tính có tốc độ 1 triệu phép tính/giây, nó sẽ thực hiện 31.536.000 * 1.000.000 phép tính trong một năm, đó là khoảng 245

phép tính Vậy thời gian thực hiện sẽ là 287-45 = 242 = 4*1012 năm để phân tích n nêu trên ra hai thừa số nguyên tố

1.4 Độ an toàn của RSA

Cho đến nay vẫn chưa có một hệ thống thám mã nào có thể tấn công vào

hệ mật mã RSA Tính mật của RSA chủ yếu dựa vào việc bảo vệ khoá riêng d

và giữ bí mật các số nguyên tố p và q Tính an toàn của RSA chính là độ phức tạp của bài toán phân tích một số thành các thừa số nguyên tố Với người thám

mã có thể tấn công vào hệ mã RSA theo các hình thức

(i) Vét cạn: Không gian khoá của RSA là rất lớn vì vậy tấn công theo hướng này là không thể thực hiện được

(ii) Dùng toán học để tìm cách phân tích modulo n thành các thừa số nguyên tố

Hệ RSA chỉ có khả năng bảo mật khi p, q là các số nguyên tố lớn (khoảng hơn 100 chữ số thập phân) và như vậy thì n có khoảng hơn 200 chữ số thập

Trang 37

phân Để phân 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 hệ thống máy tính hiện đại nhất cũng mất hàng tỷ năm

Sau khi tìm ra hệ mật mã, R.L.Rivest, A.Shamir, and L.M.Adleman đã viết một bài báo dưới dạng một thông báo khoa học của MIT, trong đó có lời thách thức bạn đọc bẻ khoá một mẫu tin nhỏ được mã hoá với: n=114381625757888676692357799761466120102182967212423625625618429357069352457338978305971235639587050589890751475992900268795435

41 và e = 9007

Mẫu tin: “first solver wins one hundred dollars” xuất hiện trong dạng mã

hoá (với a = 01, b = 02, c = 03,…) chỉ được giải mã vào ngày 26/04/1994 bằng việc sử dụng 1600 workstations, mainframes và supercomputers tấn công trong

8 tháng liên tục để phân tích số nêu trên ra thừa số nguyên tố Thực tế đó cho ta thấy RSA là an toàn, vì không mấy khi có thể huy động một lực lượng như thế vào chỉ để giải mã một mẫu tin [10]

Do tính đơn giản trong thiết kế nên RSA được ứng dụng rộng rãi và dùng nhiều nhất trong số các thuật toán với khoá công khai Và cũng chính vì thế nó

đã trải qua nhiều thử thách, xem xét, kiểm chứng của cộng đồng về độ an toàn của nó Tuy nhiên khi dùng RSA thì tốc độ mã hóa khá chậm, vì thế để mã hoá khối dữ liệu lớn là không khả thi Người ta đã tìm ra ứng dụng quan trọng độc đáo khác của RSA hơn là dùng nó để mã hóa:

1.4.1 Tạo vỏ bọc an toàn cho văn bản

Dùng RSA để mã hoá khoá bí mật (của các hệ mật mã có tốc độ mã hoá cao như DES, IDEA, …) và dùng khoá bí mật đó để mã hoá dữ liệu, bên gửi chỉ gửi đến cho bên nhận một bộ: khoá bí mật được mã hoá bằng RSA-dữ liệu được

mã hoá bằng khoá bí mật Như vậy các hệ mã đối xứng khắc phục tốc độ mã

Trang 38

hoá của RSA, còn RSA khắc phục khâu yếu nhất của mã hoá đối

xứng là bảo đảm chuyển giao an toàn chìa khoá mã cho người

trách nhiệm của văn bản mình đã gửi đi (chẳng hạn như là một đơn đặt hàng với số lượng lớn), đây chính là vấn đề xác thực chủ thể trong trao đổi thông tin

số Hai chìa khoá công khai và bí mật trong hệ RSA là có vai trò “đối xứng”

nhau theo nghĩa nếu cái này được dùng để mã hoá thì cái kia được dùng để giải

mã và ngược lại Vậy nếu A dùng khoá bí mật để mã hoá văn bản gửi đi thì B dùng khoá công khai của A để giải mã văn bản, điều đó chứng tỏ A đã xác nhận

ký vào văn bản Chương 2 “chữ ký số” sẽ nói rõ hơn

1.5 Quản lý khoá

Một trong các vai trò chính của mã hoá khoá công khai là giải quyết vấn đề phân phối khoá Khi sử dụng mã hoá khoá công khai, chúng ta cần phân biệt hai khái niệm sau:

 Phân phối các khoá công khai

 Sử dụng mã hoá với khoá công khai để phân phối các khoá bí mật

Ta sẽ xem xét từng khái niệm một:

Trong lịch sử mật mã đã có nhiều đề xuất về việc phân phối các khoá công khai, các phương án này có thể chia thành các nhóm sau:

Trang 39

Chúng ta có hai cách tiếp cận với việc phân phối khóa công khai phụ thuộc vào giải thuật ta dùng:

+ Giải thuật đối xứng (symmetric algorithm)

+ Giải thuật bất đối xứng (asymmetric algorithm)

1.5.1 Phân phối khoá cho giải thuật mật mã đối xứng

Ta giả định rằng việc phân bố khóa được thực hiện trên cùng một mạng truyền thông và các khóa đó được gửi đi dưới dạng đã mã hóa (dạng cryptogram) Việc phân bố khóa trên mạng máy tính được kiểm soát bởi hoặc một máy tính chủ (được chọn ra trong số tất cả máy tính trên mạng) và được gọi

là "Hệ phân bố khóa tập trung", hoặc bởi một nhóm các máy tính chủ, được gọi

là "Hệ phân bố khóa không tập trung" [12]

a) Hệ phân bố khóa tập trung

Hệ chỉ có một trung tâm phân phát khóa (gọi tắt là CKD) Ta giả thiết rằng mỗi user sẽ chia sẻ (dùng chung) với CKD chỉ một cặp khóa duy nhất đã định trước Và giả sử người A muốn bảo vệ thông tin gửi tới người B Trước tiên A

sẽ gửi tới CKD yêu cầu RA cùng với tên nhận diện IDA dưới dạng chưa mã hóa (clear form) Tức user_A gửi cho CKD cặp (IDA, RA ) Đáp lại CKD gửi trả user_A một message đã mã hóa bao gồm các thông tin sau :

+ Một khóa KAB mà sẽ được sử dụng để bảo mật thông tin truyền/nhận giữa A và B

+ Tên nhận diện IDA

+ Một bản copy yêu cầu của A là RA

+ Một cryptogram của cặp (KAB,IDA) được mã hóa bằng khóa KB là khóa chia sẻ giữa B và CKD, tức là EKB(KAB,IDA)

Tóm lại, CKD gửi cho A message như sau: EKA (KAB,IDA,RA,EKB) Nhận được thông báo trên, A sẽ giải mã nó bằng khóa KA, kiểm tra trên ID và bản

Trang 40

copy yêu cầu R có trùng với IDA và RA của mình không ? Nếu trùng, A sẽ gửi cho B cặp EKB(KAB,IDA) B nhận được, giải mã

nó bằng khóa KB và lấy được khóa KAB và IDA ở dạng "clear text"

Hình 1.4 Sơ đồ phân bố khóa của một network với một CKD

Kết quả là A và B sẽ có chung một khóa KAB nên chúng có thể truyền nhận cho nhau bằng một kênh truyền bảo mật chung Thường thì khi nhận được khóa KAB, B phải kiểm tra tính xác thực của khóa bằng một thủ tục

"authentication procedure" Ví dụ như B gửi cho A một số random number RN

đã được mã hóa bởi khóa KAB,tức là gửi EKAB(RN) A giải mã và sau đó biến đổi RN phù hợp với hàm phụ thuộc thời gian được xác định trước đó TRt(RN) Chuỗi TRt(RN) được mã hóa bởi khóa KAB và được truyền trở lại cho B Thủ tục trên có thể làm đơn giản hơn nếu như các user có lưu trữ các khóa lấy được

từ trước vào các files riêng của họ

b) Hệ phân bố khóa không tập chung

Trong hệ phân bố này, mọi máy host đều có quyền phân bố khóa Trong trường hợp này, mỗi máy host đều có một khóa riêng chia sẻ với một máy host

Ngày đăng: 24/03/2021, 17:33

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Phan Đình Diệu (2002), Lý thuyết mật mã và an toàn thông tin, Nxb Đại học Quốc gia Hà Nội Sách, tạp chí
Tiêu đề: Lý thuyết mật mã và an toàn thông tin
Tác giả: Phan Đình Diệu
Nhà XB: Nxb Đại học Quốc gia Hà Nội
Năm: 2002
[2] Phạm Thế Bảo, Phương Lan (2005), Bảo mật lập trình mạng trong Java 2, NXB Thống Kê Sách, tạp chí
Tiêu đề: Bảo mật lập trình mạng trong Java 2
Tác giả: Phạm Thế Bảo, Phương Lan
Nhà XB: NXB Thống Kê
Năm: 2005
[3] Phạm Huy Điển, Hà Huy Khoái (2004), Mã hoá thông tin cơ sở toán học và ứng dụng, Viện toán học Sách, tạp chí
Tiêu đề: Mã hoá thông tin cơ sở toán học và ứng dụng
Tác giả: Phạm Huy Điển, Hà Huy Khoái
Năm: 2004
[4] Dương Anh Đức, Trần Minh Triết (2005), Mã hoát và ứng dụng, Nxb Đại học Quốc gia TP Hồ Chí Minh Sách, tạp chí
Tiêu đề: Mã hoát và ứng dụng
Tác giả: Dương Anh Đức, Trần Minh Triết
Nhà XB: Nxb Đại học Quốc gia TP Hồ Chí Minh
Năm: 2005
[5] Bùi Doãn Khanh, Nguyễn Đình Thúc (2004), Mã hoá thông tin Lý thuyết và ứng dụng, Nxb Lao Động Sách, tạp chí
Tiêu đề: Mã hoá thông tin Lý thuyết và ứng dụng
Tác giả: Bùi Doãn Khanh, Nguyễn Đình Thúc
Nhà XB: Nxb Lao Động
Năm: 2004
[6] Nguyễn Đình Thúc, Bùi Doãn Khanh (2006), Mã hoá thông tin với JAVA tập 2 – Mã hoá - Mật mã, Nxb Lao động Xã hội Sách, tạp chí
Tiêu đề: Mã hoá thông tin với JAVA tập 2 – Mã hoá - Mật mã
Tác giả: Nguyễn Đình Thúc, Bùi Doãn Khanh
Nhà XB: Nxb Lao động Xã hội
Năm: 2006
[7] Thái Hồng Nhị, Phạm Minh Việt (2004), An toàn thông tin - mạng máy tính, truyền tin số và truyền số liệu, Nxb Khoa học và kỹ thuật Sách, tạp chí
Tiêu đề: An toàn thông tin - mạng máy tính, truyền tin số và truyền số liệu
Tác giả: Thái Hồng Nhị, Phạm Minh Việt
Nhà XB: Nxb Khoa học và kỹ thuật
Năm: 2004
[9] Ngọc Anh Thƣ, Nguyễn Tiến, Nguyễn Văn Hoài (2002), Giáo trình Thuật toán – Lý thuyết và bài tập, Nxb Thống kê.Tiếng Anh Sách, tạp chí
Tiêu đề: Giáo trình Thuật toán – Lý thuyết và bài tập
Tác giả: Ngọc Anh Thƣ, Nguyễn Tiến, Nguyễn Văn Hoài
Nhà XB: Nxb Thống kê. Tiếng Anh
Năm: 2002
[10] A. MENEZES, P. VAN OORSCHOT, AND S. VANSTONE, “Handbook of Applied Cryptography”, CRC Press, 1996. See [11] O‟Reilly and Associates, Java Security 2nd, IncĐịa chỉ trên internet Sách, tạp chí
Tiêu đề: Handbook of Applied Cryptography”, CRC Press, 1996. See [11] O‟Reilly and Associates, "Java Security 2nd
[8] Hồ Thuần (2000), Giáo trình Lý thuyết mật mã và an toàn dữ liệu Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w