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

Ứng dụng chữ ký số trong bảo mật thông tin bưu điện tỉnh thái nguyên

87 1K 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 87
Dung lượng 1,22 MB

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

Nội dung

Việc ứng dụng chữ ký số sẽ đem lại cho doanh nghiệp, tổ chức rất nhiều lợi ích như: Tiết kiệm chi phí giấy tờ, thời gian luân chuyển trong hoạt động quản lý công văn, giấy tờ, thư điện t

Trang 1

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 6 năm 2012

Nguyễn Thị Yến

Trang 2

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 Trường Đại học công nghệ thông tin và truyền thông - Đạ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 6 năm 2012

Trang 3

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 KÍ HIỆU VÀ CÁC TỪ VIẾT TẮT 6

DANH MỤC CÁC HÌNH 8

MỞ ĐẦU 10

1 Đặt vấn đề 10

2 Đối tượng và phạm vi nghiên cứu 10

3 Hướng nghiên cứu của đề tài 11

4 Những nội dung nghiên cứu chính 11

5 Tổng quan luận văn 11

CHƯƠNG 1: GIỚI THIỆU VỀ MÃ KHOÁ THÔNG DỤNG 13

1.1 Giới thiệu 13

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

1.3 Hệ mã khoá công khai 19

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

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

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

1.3.2.2 Quan hệ “đồng dư” 23

1.3.2.3.Số nguyên tố mạnh .25

1.3.2.4 Định lý Fermat nhỏ 26

1.3.2.5 Định lý Lagrange 27

1.3.2.6.Định lý Euler 27

1.3.2.7.Định lý số dư trung hoa .27

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

Trang 4

1.3.4 Một số hệ mã khoá công khai 30

1.3.4.1 Hệ mã khoá công khai RABIN 30

1.3.4.2 Hệ mã khoá công khai ELGAML 35

1.3.4.3 Hệ mã khoá công khai RSA 37

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

1.5 Quản lý khoá 41

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

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

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

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

CHƯƠNG 2: CHỮ KÝ SỐ 53

2.1 Giới thiệu 53

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

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

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

2.2.2.1 Mã hoá thông báo 55

2.2.2.2 Kỹ thuật xác thực dùng khoá bí mật – MAC 56

2.2.2.3 Các hàm băm 58

2.3 Chữ ký số 61

2.3.1 Khái niệm 61

2.3.1.1 Khái niệm 61

2.3.1.2 Sơ đồ chữ ký số 62

2.3.2 Các ưu điểm của chữ ký số 62

2.3.3 Quá trình thực hiện chữ ký số khoá công khai 64

2.3.4 Thuật toán chữ ký RSA 66

2.3.4.1 Sơ đồ 66

2.3.4.2 Ví dụ minh hoạ 67

Trang 5

2.3.4.3 Độ an toàn của chữ ký RSA 67

2.3.5 Thuật toán chữ ký DSA/DSS 69

2.3.5.1 Sơ đồ 69

2.3.5.2 Ví dụ 70

2.3.5.3 Độ an toàn chữ ký DSA 70

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

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

2.5.1 Trong nước 72

2.5.2 Ở một số nước trên thế giới 74

2.5.3 Ứng dụng trong thực tế 75

2.6 Kết luận chương 76

CHƯƠNG 3: CÀI ĐẶT DEMO CHƯƠNG TRÌNH 77

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

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

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

3.2.1.1 Chức năng mã hóa văn bản 78

3.2.1.2 Chức năng giải mã 79

3.2.2 Phần chữ ký số 79

3.2.2.1 Thực hiện ký văn bản 79

3.2.2.2 Kiểm tra và xác thực chữ ký 80

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

3.3.1 Đăng nhập hệ thống 81

3.3.2 Một số menu chính 81

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

Kết quả và hướng phát triển 84

Kết quả đạt được của luận văn 84

Hướng phát triển 85

Trang 6

DANH MỤC CÁC KÝ HIỆU VÀ CÁC TỪ VIẾT TẮT

AES Advance Encryption Standard

ASCII American Standard Code for Infornation InterchangeANSI American National Standards Institute

DES Data Encryption Standard

CA Certificate Authority

FIPS Federal Information Processing Standard

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

MD5 Message Digest 5

NIST National Institute Of Standards And TechnologyOCSP Online Certificate Status Protocol

PKI public-key infrastructures

RSA Rivest, Shamir, Adleman

SHA Secure Hash Algorithm

TCP/IP Transfer Control Protocol/Internet Protocol

URL Uniform Resource Locator

X 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

Trang 7

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

IDA Định danh của cá thể A

Trang 8

DANH MỤC CÁC HÌNH

Trang

Hình 1.1 Quá trình thực hiện cơ chế mã hoá 14

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

Hình 1.3 Quá trình thực hiện mã hoá khoá công khai 19

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

Hình 1.5 Sơ đồ biểu diễn thuật toán mã hóa 37

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

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

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

Hình 1.9 Sơ đồ kiểm tra khoá 49

Hình 1.10 Sơ đồ bảo vệ khoá 50

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

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

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

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

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õ 57

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

Hình 2.3 Sơ đồ mô tả quá trình ký và gửi các tệp văn bản 64

Hình 2.4 Sơ đồ mô tả quá trình nhận các tệp văn bản 65

Hình 3.1 Chức năng tạo cặp khoá mã hoá 78

Hình 3.2 Nội dung văn bản sau khi mã hoá 78

Hình 3.3 Nội dung văn bản sau khi giải mã 79

Hình 3.4 Chọn tệp văn bản để ký 79

Hình 3.5 Thông báo đã ký văn bản 80

Hình 3.6 Xác lập thông tin người ký 80

Trang 9

Hình 3.7 Xác thực chữ ký 81

Hình 3.8 Đăng nhập hệ thống 81

Hình 3.9 Menu thao tác với tệp văn bản 81

Hình 3.10: Menu chỉnh sửa văn bản 82

Hình 3.11: Menu Định dạng văn bản 82

Hình 3.12: Menu Mã hoá và giải mã dữ liệu 82

Trang 10

Hơn nữa, ngoài việc là một phương tiện điện tử được pháp luật thừa nhận về tính pháp lý, chữ ký số còn là một công nghệ mã hóa và xác thực rất mạnh Nó

có thể giúp bảo đảm an toàn, bảo mật cao cho các giao dịch trực tuyến, nhất là các giao dịch chứa các thông tin liên quan đến tài chính

Việc ứng dụng chữ ký số sẽ đem lại cho doanh nghiệp, tổ chức rất nhiều lợi ích như: Tiết kiệm chi phí giấy tờ, thời gian luân chuyển trong hoạt động quản

lý công văn, giấy tờ, thư điện tử; Giúp đẩy nhanh các giao dịch qua mạng trong khi vẫn đảm bảo độ an toàn và bảo mật thông tin…Nhận thấy sự thiết thực của chữ ký số trong ngành Bưu chính Viễn thông như chuyển công văn giấy tờ, giao dịch giữa các giao dịch viên, kiểm soát viên với Bưu điện Tỉnh, với Tập Đoàn…

và được sự gợi ý của giáo viên hướng dẫn, em đã chọn đề tài “Ứng dụng chữ ký

số trong bảo mật thông tin bưu điện tỉnh Thái Nguyên” làm đề tài cho luận văn thạc sỹ của mình

2 Đối tượng và phạm vi nghiên cứu:

* Đối tượng nghiên cứu:

+ Tìm hiểu về các giải pháp mã hoá để bảo mật thông tin

+ Nghiên cứu 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ử

Trang 11

* Phạm vi nghiên cứu:

Luận văn tập trung nghiên cứu các kiến thức có liên quan, các cơ sở lý thuyết: về một số giải pháp mã hoá và những phương pháp, kỹ thuật tạo chữ ký

số để ứng dụng trong bảo mật thông tin Bưu điện Tỉnh

3 Hướng nghiên cứu của đề tài:

Luận văn tập trung nghiên cứu và làm rõ hơn về ý tưởng về các hệ mật mã khoá thông dụng và những phương pháp, kỹ thuật tạo chữ ký số

4 Những nội dung nghiên cứu chính:

+ Nghiên cứu về các giải pháp mã hoá để bảo mật thông tin

+ Nghiên cứu 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ử

+ Nghiên cứu về một ngôn ngữ lập trình để viết một ứng dụng nhỏ về chữ

ký số

5 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ố

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

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

Trang 12

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 13

CHƯƠNG 1: GIỚI THIỆU VỀ MÃ KHOÁ THÔNG DỤNG 1.1 Giới thiệu

Mật mã học (crypto) là một nghệ thuật nhằm giấu thông tin, bằng cách chuyển đổi (encrypt) thông tin thành dạng thông tin không đọc được (cipher text) Chỉ có những người giữ khóa (key) bí mật mới có thể giải mã (decrypt) thông tin thành dạng thông tin có thể hiểu được (plain text) Thông tin đôi khi bị giải mã mà không cần biết khóa bí mật Ngành học nghiên cứu về việc bẻ khóa (attack/crack/hack) này còn gọi là cryptanalysis [12]

Mã hoá dữ liệu là mã hóa với mục đích làm cho dữ liệu không thể đọc được bởi bất cứ ai, ngoại trừ những ai được phép đọc Mã hóa sử dụng thuật toán và khóa để biến đổi dữ liệu từ hình thức đơn giản rõ ràng (plain hay cleartext) sang hình thức mật mã vô nghĩa (code hay ciphertext) Chỉ có những ai có thông tin giải mã thì mới giải mã và đọc được dữ liệu

Có nhiều cách phân loại hệ mã hoá, nếu ta phân loại mã hoá theo đặc trưng của khoá thì hệ mã hoá được chia thành hai loại đó là:

- Hệ mã hóa khóa đối xứng, hay còn gọi là Hệ mã khoá bí mật (có khoá riêng và khoá chung giống nhau)

- Hệ mã hóa khóa phi đối xứng, hay còn gọi là Hệ mã khoá công khai (Khóa công khai có khoá riêng và khoá chung khác nhau)

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

Hệ mã hoá bí mật hay còn gọi là Hệ mã khoá đối xứng là Hệ mã hóa mà

biết được khóa lập mã thì có thể “dễ dàng” tính được khóa giải mã và ngược lại

[4],[5]

Quá trình thực hiện cơ chế mã hoá như sau:

Trang 14

Hình 1.1 Quá trình thực hiện cơ chế mã hoá

Hình 1.1 mô tả quá 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à khoá Việc trao đổi, thoả thuận về thuật toán được sử dụng trong việc mã hoá 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 toán mã hoá đố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 khoá phải được đặt lên hàng đầu

Người gửi sử dụng một phép biến đổi khả nghịch:

Trang 15

Mã hoá đối xứng có thể được phân thành 02 loại:

1 Loại thứ nhất tác động trên bản rõ theo từng nhóm bits Từng nhóm bits này được gọi với một cái tên khác là khối (Block) và thuật toán được áp dụng gọi là Block Cipher Theo đó, từng khối dữ liệu trong văn bản ban đầu được thay thế bằng một khối dữ liệu khác có cùng độ dài Đối với các thuật toán ngày nay thì kích thước chung của một Block là 64 bits [5]

2 Loại thứ hai tác động lên bản rõ theo từng bit một Các thuật toán áp dụng được gọi là Stream Cipher Theo đó, dữ liệu của văn bản được mã hoá từng bit một Các thuật toán mã hoá dòng này có tốc độ nhanh hơn các thuật toán mã hoá khối và nó thường được áp dụng khi lượng dữ liệu cần mã hoá chưa biết trước

Một số thuật toán nổi tiếng trong mã hoá đối xứng là: DES, Triple DES(3DES), RC4, AES…

+ DES (Data Encryption Standard) Với DES, bản rõ (Plaintext) được mã hoá theo từng khối 64 bits và sử dụng một khoá là 64 bits, nhưng thực tế thì chỉ

có 56 bits là thực sự được dùng để tạo khoá, 8 bits còn lại dùng để kiểm tra tính chẵn, lẻ DES là một thuật toán được sử dụng rộng rãi nhất trên thế giới Hiện tại DES không còn được đánh giá cao do kích thước của khoá quá nhỏ 56 bits,

và dễ dàng bị phá vỡ

+ Triple DES (3DES): 3DES cải thiện độ mạnh của DES bằng việc sử dụng một quá trình mã hoá và giải mã sử dụng 3 khoá Khối 64-bits của bản rõ đầu tiên sẽ được mã hoá sử dụng khoá thứ nhất Sau đó, dữ liệu bị mã hóa được giải mã bằng việc sử dụng một khoá thứ hai Cuối cùng, sử dụng khoá thứ ba và kết quả của quá trình mã hoá trên để mã hoá

C = EK3(DK2(EK1(P)))

P = DK1(EK2(DK3(C)))

Trang 16

+ AES (Advanced Encryption Standard) được sử dụng để thay thế cho DES Nó hỗ trợ độ dài của khoá từ 128 bits cho đến 256 bits

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.2, trong đó, phép ⊕ ký hiệu phép XOR

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

Nhập : M (64 bit)M’ = IP(M)

Trang 17

Bước 2: Chia M’ thành 2 phần: nửa trái L0 32 bit và nửa phải R0 32 bit.

Bước 3: Thi hành các phép toán sau với i = 1, 2,…, 16 (có 16 vòng):

Li = Ri-1

Ri = Li-1 ⊕ f (Ri-1, Ki)

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

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 18

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

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 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) Lars Knudsen (Na-uy)

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

Hệ mã hoá khoá đối xứng có ưu điểm và nhược điểm sau:

Trang 19

Ngoài ra với hệ mã hoá khoá đối xứng không thể thực hiện chữ ký điện tử (sẽ được trình bày trong chương 2) do chỉ có một khoá chung duy nhất Vì vậy, không thể dùng trong giao dịch điện tử.Chính vì lý do trên mà hệ mã hoá khoá công khai được sử dụng rộng rãi hơn hệ mã khoá đối xứng

1.3 Hệ mã khoá công khai

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

Hệ mã hoá khoá công khai là hệ mã hoá có khoá lập mã và khoá giải mã

khác nhau, biết được khoá này “khó” mà tính được khoá kia [4],[5],[6].

Hệ mã hoá này được gọi là hệ mã hoá khoá công khai vì khoá lập mã

được công khai ( gọi là khoá công khai – Public key), Khoá giải mã giữ bí mật ( gọi là khoá riêng – Private key) Điều quan trọng đối với hệ thống là không

thể tìm ra khóa bí mật nếu chỉ biết khóa công khai

Hình 1.3 Quá trình thực hiện mã hoá khoá công khai

Trang 20

Quá trình truyền và sử dụng mã hoá khoá công khai được thực hiện như sau:

 Bên gửi yêu cầu cung cấp hoặc tự tìm khoá công khai của bên nhận trên một server chịu trách nhiệm quản lý khoá

 Sau đó hai bên thống nhất thuật toán dùng để mã hoá dữ liệu, bên gửi sử dụng khoá công khai của bên nhận cùng với thuật toán đã thống nhất để

mã hoá thông tin được gửi đi

 Khi nhận được thông tin đã mã hoá, bên nhận sử dụng khoá bí mật của mình để giải mã và lấy ra thông tin ban đầu

Vậy là với sự ra đời của Mã hoá công khai thì khoá được quản lý một cách linh hoạt và hiệu quả hơn Người sử dụng chỉ cần bảo vệ khoá bí mật

Do đó hệ mã hoá khoá công khai có ưu điểm và nhược điểm sau:

a Ưu điểm

 Đơn giản trong việc lưu chuyển khóa: Chỉ cần đăng ký một khóa công khai và mọi người sẽ lấy khóa này về để trao đổi thông tin với người đăng ký Vì vậy không cần kênh bí mật để truyền khóa

 Mỗi người chỉ cần một cặp khóa công khai – khóa bí mật là có thể trao đổi thông tin với tất cả mọi người

 Là tiền đề cho sự ra đời của chữ ký điện tử và các phương pháp chứng thực điện tử

b Nhược điểm

Mã hóa và giải mã chậm hơn hệ mã hóa khóa đối xứng.

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

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ỹ

Trang 21

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ụ 23

= 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ả các số

dư theo mod p, kể cả 0).

Giả sử ta có Z(11)* = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} Nếu nhân 5 với 8, chúng

ta có 5*8 = 40 = 7 mod 11, tất nhiên 7 ∈ Z(11)* Chúng ta cũng có 5*9 = 45 = 1 mod 11, nên 9 là nghịch đảo của 5, hoặc ngược lại Tương tự 2 và 6 là nghịch đả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, p là nguyên tố

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

Trang 22

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} 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)*

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à gp-1 = 1, và không có số luỹ thừa nào nhỏ để bằng 1 theo mod p

Trang 23

17 ≡ 5 (mod 3) vì chia 17 và 5 cho 3, được cùng số dư là 2.

Nhận xét: Các mệnh đề sau đây là tương đương:

1) a ≡ b (mod m)

2) m \ (a – b)

3) Tồn tại số nguyên t sao cho a = b + m t

Chứng minh:

1) ⇒ 2): Nếu có 1), thì theo định nghĩa: a, b chia cho m, phải có cùng số

dư, do đó: a = mqa + r; b = mqb + r; Suy ra (a – b) = m (qa - qb), tức là m \ (a - b).2) ⇒ 3): Nếu có 1), tức là m\(a – b) Nghĩa là có t ∈Z sao cho (a - b) = mt hay a= b+ mt

3) ⇒ 1): Nếu có 1), tức là tồn tại số nguyên t sao cho a = b + m t

Lấy a chia cho m, giả sử thương là qa và dư r, hay a = mqa + r (0 ≤ r <m),

do đó: b + m t = a = mqa + r hay b = m(qa - t) + r (0 ≤ r < m) Điều đó chứng tỏ khi chia a và b cho m được cùng số dư r, hay a ≡ b (mod m)

b Các tính chất của quan hệ “đồng dư”

+) Quan hệ “đồng dư” là quan hệ tương đương trong Z:

Với mọi số nguyên dương m ta có:

a ≡ a (mod m) với mọi a ∈ Z; (tính chất phản xạ)

a ≡ b (mod m) thì b ≡ a (mod m); (tính chất đối xứng).

a ≡ b (mod m) và b ≡ c (mod m) thì a ≡ c (mod m); (tính chất bắc cầu)

+) Tổng hay hiệu các “đồng dư”:

Trang 24

(a+b) (mod n) ≡ [(a mod n) + (b mod n)] (mod n)

(a- b) (mod n) ≡ [(a mod n) - (b mod n)] (mod n)

Tổng quát:

Có thể cộng hoặc trừ từng vế nhiều đồng dư thức theo cùng một modulo

m, ta được một đồng dư thức theo cùng modulo m, tức là:

Có thể nhân từng vế nhiều đồng dư thức theo cùng một modulo m,

ta được một đồng dư thức theo cùng modulo m, tức là:

Nếu ai ≡ bi (mod m) với i=1 k, thì ta có:

* Có thể cộng hoặc trừ cùng một số vào hai vế của một đồng dư thức

* Có thể chuyển vế các số hạng của đồng dư thức bằng cách đổi dấu các số hạng đó

* Có thể cộng vào một vế của đồng dư thức một bội của modulo:

a ≡ b (mod m) → a+km ≡ b (mod m) với mọi k ∈ Z

* Có thể nhân hai vế của một đồng dư thức với cùng một số:

a ≡ b (mod m) → ac ≡ bc (mod m) với mọi c ∈ Z

* Có thể nâng lên lũy thừa bậc nguyên không âm cho 2 vế của một đồng dư

thức: a ≡ b (mod m) → an ≡ bn (mod m) với mọi n ∈ Z+

* Có thể chia 2 vế đồng dư thức cho một ước chung nguyên tố với modulo:

c\a, c\b, (c,m)=1, a ≡ b (mod m) ⇒ a/c ≡ b/c (mod m)

* Có thể nhân 2 vế đồng dư thức và modulo với cùng một số nguyên dương,

Trang 25

Nếu a ≡ b (mod m), c >0 ⇒ ac ≡ bc (mod mc)

* Có thể chia 2 vế đồng dư thức và modulo cho cùng một số nguyên dương

là ước chung của chúng:

Nếu c \ (a, b, m) ⇒ a/c ≡ b/c (mod m/c)

* a ≡ b (mod m) ⇒ a ≡ b (mod k) với k \ m

* a ≡ b (mod m) ⇒ gcd(a, m) = gcd(b, m)

Các lớp thặng dư

Quan hệ “đồng dư” theo modulo m trên tập Z (tập các số nguyên) là một

quan hệ tương đương (vì có tính chất phản xạ, đối xứng, bắc cầu), do đó nó tạo

ra trên tập Z một phân hoạch gồm các lớp tương đương: hai số nguyên thuộc cùng một lớp tương đương khi và chỉ khi chúng có cùng một số dư khi chia cho

m.

Mỗi lớp tương đương đại diện bởi một số duy nhất trong tập Z m ={0, 1,

…, m-1} là số dư khi chia các số trong lớp cho m, ký hiệu một lớp được đại diện bởi số a là [a] m

Như vậy [a]m = [b]m ⇔ a ≡ b (mod m)

Vì vậy ta có thể đồng nhất Z m với tập các lớp tương đương theo modulo m

Z m ={0, 1, 2,…, m-1} được gọi là tập các “thặng dư đầy đủ” theo modulo m

Mọi số nguyên bất kỳ đều có thể tìm được trong Z m một số đồng dư với mình

theo modulo m.

1.3.2.3 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 thoả mãn những điều kiệ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

Trang 26

 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

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:

P P P

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

Trang 27

"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ó thể giao cho mỗi người một "chìa khoá" riêng [15].

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

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α1p2α2 pkαk thì ta có:

φ(n) = n  − p  − p   − p n 

1 1

1 1

1 1

2 1

(1.9)

1.3.2.7 Đị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.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 mã

Trang 28

Đị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:

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 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ã” [1],[4],[5] 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 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 “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 mã khoá công khai trong một hệ

Trang 29

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á E k i đượ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ã D k j:

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ó 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.4 mô tả rõ ràng mối quan hệ

G

D

Trang 30

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

1.3.4 Một số hệ mã hoá khoá công khai

1.3.4.1 Hệ mã hoá khoá công khai RABIN

Trang 31

+ P = C = Zn, trong đó n là một số nguyên Blum, Zn là tập hợp các số nguyên

<=n Tính n = p.q;

Trong toán học , một số tự nhiên n là một số nguyên Blum nếu n = p × q

mà p và q là riêng biệt các số nguyên tố đồng dư với 3 mod 4 Đó là, p và q phải

có hình thức 4 t 3, đối với một số t số nguyên Số nguyên tố của hình thức này được gọi là số nguyên tố Blum Điều này có nghĩa rằng các yếu tố của một số nguyên Blum là số nguyên tố Gauss không có một phần tưởng tượng Các Blum

số nguyên đầu tiên là 21 , 33 , 57 , 69 , 77 , 93 , 129 , 133 , 141 , 161 , 177 , (Chuỗi A016105 trong OEIS ) Số nguyên Blum đã được đặt tên khoa học máy tính Manuel Blum

+ Chọn khóa công khai là n và b (0 ≤ b ≤ n-1); chọn khóa bí mật là p và q; + Chọn p và q là hai số nguyên tố lớn khác nhau có tính chất sau: p ≡ 3 mod 4;

+ Đặt T = b 2/4 +y, ta có phương trình z 2 ≡ T (mod n), n = p*q (1)

Phương trình (1) tương đương với hệ phương trình (2):

Trang 32

Vận dụng sơ đồ mã hóa Rabin thực hiện ví dụ minh họa:

+ Hai số nguyên tố khác nhau: p = 7; q = 11;

Trang 34

M2 = m/ m2 = 77/ 11 = 7

Phần tử nghịch đảo của 7 theo mod 11 là 8, vì: 7*8 ≡1 (mod 11)  b2 = 8.

Nghiệm của hệ này là:

z ≡ a1*M1*b1 + a2*M2*b2 (mod m) với: a1 = 529; a2 = 12.167

Nghiệm của hệ này là:

z ≡ a1*M1*b1 + a2*M2*b2 (mod m) với: a1 = 529; a2 = -12.167

Nghiệm của hệ này là:

z ≡a1*M1*b1 + a2*M2*b2 (mod m) với: a1 = -529; a2 = 12.167

≡ (-529)*11*2 + 12.16)*7*8 (mod 77)

≡ -11.638 + 681.352 (mod 77)

Trang 35

≡ [(681.352 mod 77)] - (11.638 mod 77)] (mod 77)

≡ (56 - 11) (mod 77) ≡ 45 (mod 77) ≡ 45

+ Giải hệ phương trình (4)

(4)

(p 1) / 4 (q 1) / 4

Nghiệm của hệ này là:

z ≡a1*M1*b1 + a2*M2*b2 (mod m) với: a1 = -529; a2 = -12.167

+ Với z = 67 thì x = 23 - 43 mod 77 = 67 – 43 mod 77 = 24

+ Với z = 32 thì x = 23 - 43 mod 77 = 32 – 43 mod 77 = 66

+ Với z = 45 thì x = 23 - 43 mod 77 = 45 – 43 mod 77 = 2

+ Với z = 10 thì x = 23 - 43 mod 77 = 10 – 43 mod 77 = 44

Việc chọn giá trị nào trong trong 4 giá trị tìm được làm bản rõ là tùy thuộc vào những đặc trưng khác của bản rõ mà người giải mã nhận biết (thí dụ bản rõ dưới dạng số phải có biểu diễn nhị phân là mã của một văn bản tiếng Anh thông thường) Trong trường hợp này chọn bản rõ là 44

1.3.4.2 Hệ mã hóa khoá công khai ELGAML

a Sơ đồ

Hệ mã hóa là bộ gồm 5 thành phần: {P, C, K, E, D} [8], trong đó:

+ P (Plaintext): là tập hữu hạn các bản rõ có thể;

Trang 36

∀ ∈ : y = ek(x); y C∀ ∈ : dk(y) = x (vì: dk(ek(x)) = x)

*Tạo cặp khóa (bí mật, công khai) (a, h) :

Chọn số nguyên tố p sao cho bài toán logarit rời rạc trong Z p là “khó”

giải Chọn phần tử nguyên thuỷ g Z p * Đặt P = Z p *, C = Z pZ p*

Chọn khóa bí mật là a Z p * Tính khóa công khai h g a mod p.

Định nghĩa tập khóa:κ = {(p, g, a, h): h g a mod p} Các giá trị p, g,

h được công khai, phải giữ bí mật a.

Với Bản rõ x P và Bản mã y C, với khóa k ∈κ định nghĩa:

Trang 37

1.3.4.3 Hệ mã hóa khoá công khai RSA

 Hệ mã hóa khóa công khai được đề xuất bởi Ron Rivest, Adi Shamir và Len Adleman (MIT) vào năm 1978 [4],[5],[12]

 Hệ mã hóa sử dụng phương pháp mã hóa khối với mỗi khối là một số

nguyên < n: Thông thường kích cỡ n là 1024 bit ≈ 309 chữ số thập phân.

a Sơ đồ

Hình 1.5 Sơ đồ biểu diễn thuật toán mã hóa

Giả sử khối bản gốc của người gửi là M và khối bản mã của người nhận là C,

quá trình mã hóa và giải mã RSA là: C = M e mod n và M = C d mod n

Cả người gửi và người nhận phải biết giá trị n Người gửi biết giá trị e và chỉ người nhận biết giá trị d Đây là một thuật toán mã hóa khóa công khai với khóa công khai KU = {e,n} và khóa riêng KR = {d,n}

b Ví dụ minh hoạ

* Bản rõ chữ: B A O M A T T H O N G T I N

Trang 38

+ Khóa bí mật d là phần tử nghịch đảo của e theo mod φ(n):

d*e ≡ 1 (mod φ(n)) Từ d*e ≡ 1 (mod φ(n)), ta nhận được khóa bí mật d = 103

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

Trang 39

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:

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.6 sau:

Giải mã

Khoá bí mật

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

RSA

Trang 40

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

Độ 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), có độ phức tạp cỡ

1.9223*(ln n)(1/3) *(ln ln n)(2/3)

Ngày đăng: 09/12/2016, 15:22

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

HÌNH ẢNH LIÊN QUAN

Hình 1.2 Thuật toán giải mã của hệ DES - Ứng dụng chữ ký số trong bảo mật thông tin bưu điện tỉnh thái nguyên
Hình 1.2 Thuật toán giải mã của hệ DES (Trang 16)
Hình 1.3. Quá trình thực hiện mã hoá khoá công khai - Ứng dụng chữ ký số trong bảo mật thông tin bưu điện tỉnh thái nguyên
Hình 1.3. Quá trình thực hiện mã hoá khoá công khai (Trang 19)
Hình 1.5. Sơ đồ biểu diễn thuật toán mã hóa - Ứng dụng chữ ký số trong bảo mật thông tin bưu điện tỉnh thái nguyên
Hình 1.5. Sơ đồ biểu diễn thuật toán mã hóa (Trang 37)
Hình 1.7 Sơ đồ phân bố khóa của một mạng với một CKD - Ứng dụng chữ ký số trong bảo mật thông tin bưu điện tỉnh thái nguyên
Hình 1.7 Sơ đồ phân bố khóa của một mạng với một CKD (Trang 43)
Hình 1.8 Sơ đồ phân bố khóa của một network với KD - Ứng dụng chữ ký số trong bảo mật thông tin bưu điện tỉnh thái nguyên
Hình 1.8 Sơ đồ phân bố khóa của một network với KD (Trang 46)
Hình 1.9: Sơ đồ kiểm tra khoá - Ứng dụng chữ ký số trong bảo mật thông tin bưu điện tỉnh thái nguyên
Hình 1.9 Sơ đồ kiểm tra khoá (Trang 49)
Hình 2.1(c) Mã hoá khoá công khai: Bí mật, xác thực và chữ kí - Ứng dụng chữ ký số trong bảo mật thông tin bưu điện tỉnh thái nguyên
Hình 2.1 (c) Mã hoá khoá công khai: Bí mật, xác thực và chữ kí (Trang 56)
Hình 2.2(b)(c) đảm bảo tính xác thực và bí mật dựa vào việc mã hoá thông - Ứng dụng chữ ký số trong bảo mật thông tin bưu điện tỉnh thái nguyên
Hình 2.2 (b)(c) đảm bảo tính xác thực và bí mật dựa vào việc mã hoá thông (Trang 57)
Hình 2.3. Sơ đồ mô tả quá trình ký và gửi các tệp văn bản - Ứng dụng chữ ký số trong bảo mật thông tin bưu điện tỉnh thái nguyên
Hình 2.3. Sơ đồ mô tả quá trình ký và gửi các tệp văn bản (Trang 64)
Hình 2.4. Sơ đồ mô tả quá trình nhận các tệp văn bản - Ứng dụng chữ ký số trong bảo mật thông tin bưu điện tỉnh thái nguyên
Hình 2.4. Sơ đồ mô tả quá trình nhận các tệp văn bản (Trang 65)
Hình 3.4: Chọn tệp văn bản để ký - Ứng dụng chữ ký số trong bảo mật thông tin bưu điện tỉnh thái nguyên
Hình 3.4 Chọn tệp văn bản để ký (Trang 80)
Hình 3.7: Xác thực chữ ký - Ứng dụng chữ ký số trong bảo mật thông tin bưu điện tỉnh thái nguyên
Hình 3.7 Xác thực chữ ký (Trang 81)
Hình 3.6: Xác lập thông tin người ký - Ứng dụng chữ ký số trong bảo mật thông tin bưu điện tỉnh thái nguyên
Hình 3.6 Xác lập thông tin người ký (Trang 81)
Hình 3.9: Menu thao tác với tệp văn bản - Ứng dụng chữ ký số trong bảo mật thông tin bưu điện tỉnh thái nguyên
Hình 3.9 Menu thao tác với tệp văn bản (Trang 82)
Hình 3.12: Menu Mã hoá và giải mã dữ liệu - Ứng dụng chữ ký số trong bảo mật thông tin bưu điện tỉnh thái nguyên
Hình 3.12 Menu Mã hoá và giải mã dữ liệu (Trang 83)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w