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

Nghiên cứu xây dựng lược đồ chữ ký số trên cơ sở bài toán phân tích số

54 188 2

Đ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 54
Dung lượng 1,69 MB

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

Nội dung

ĐẠI HỌC THÁiIi NGUYÊNTRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG C A O H Ù N G P H Ư Ơ N G NGHIÊN CỨU XÂY DỰNG LƯỢC ĐỒ CHỮ KÝ SỐ TRÊN CƠ SỞ BÀI TOÁN PHÂN TÍCH SỐ Chuyên ngành: Kho

Trang 1

iĐẠI HỌC THÁI NGUYÊN

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

C A O H Ù N G P H Ư Ơ

N G

NGHIÊN CỨU XÂY DỰNG LƯỢC ĐỒ CHỮ KÝ SỐ TRÊN CƠ SỞ

BÀI TOÁN PHÂN TÍCH SỐ

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

THÁI NGUYÊN, 2018

Trang 2

ĐẠI HỌC THÁiIi NGUYÊN

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

C A O H Ù N G P H Ư Ơ

N G

NGHIÊN CỨU XÂY DỰNG LƯỢC ĐỒ CHỮ KÝ SỐ TRÊN CƠ SỞ

BÀI TOÁN PHÂN TÍCH SỐ

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

Mã số: 84 80 101

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

Người hướng dẫn khoa học: TS NGUYỄN NGỌC CƯƠNG

THÁI NGUYÊN, 2018

Trang 3

LỜI CAM ĐOAN

Em xin cam đoan tất cả các kết quả được trình bày trong luận văn:

“Nghiên cứu xây dựng lược đồ chữ ký số trên cơ sở bài toán phân tích số”

là công trình nghiên cứu của riêng em, không sao chép từ bất kỳ một côngtrình nào khác Các số liệu, kết quả nghiên cứu trong luận văn được sử dụng

là trung thực, đã được kiểm chứng và chưa được công bố trong bất kỳ côngtrình của tác giả nào khác

Nếu sai em xin hoàn toàn chịu trách nhiệm

Thái Nguyên, ngày 10 tháng 6 năm 2018

Học viên

Cao Hùng Phương

Trang 4

LỜI CẢM ƠN

Trước hết em xin bày tỏ lòng biết ơn sâu sắc đến thầy giáo TS NguyễnNgọc Cương Phó cục trưởng Cục công nghệ thông tin là người đã trực tiếphướng dẫn, chỉ bảo tận tình và hết lòng giúp đỡ em trong suốt thời gian làmluận văn này

Xin trân trọng cảm ơn tới Ban lãnh đạo, các thầy cô giáo trường Đạihọc Công nghệ thông tin và truyền thông Thái Nguyên đã chia sẻ và độngviên giúp em vượt qua mọi khó khăn để hoàn thành tốt công việc nghiên cứucủa mình

Xin chân thành cảm ơn gia đình, bạn bè và những người đã luôn ủng

hộ, quan tâm, giúp đỡ, động viên, tạo điều kiện tốt nhất và là chỗ dựa vữngchắc giúp em có thể hoàn thành luận văn

Cuối cùng em xin gửi lời chúc sức khỏe và thành công tới tất cả quýthầy cô và gia đình cùng toàn thể các bạn

Thái Nguyên, ngày 10 tháng 6 năm 2018

Học viên

Cao Hùng Phương

Trang 5

MỤC LỤC

i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC CÁC KÝ HIỆU v LỜI

MỞ ĐẦU 1

CHƯƠNG 1 TỔNG QUAN CÁC CHUẨN CHỮ KÝ SỐ

3 1.1 Giới thiệu về hệ mật mã khóa công khai các nguyên lý 3

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

1.2.1 Hệ khoá công khai RSA 4

1.2.2 Khái niệm chữ ký số 5

1.2.3 Các bước tạo và kiểm tra chữ ký điện tử 7

1.2.4 Định nghĩa lược đồ chữ ký số 8

1.2.5 Chức năng của chữ ký số 8

1.2.6 Các yêu cầu thành phần để tạo ra được chữ ký số 9

1.2.7 Ưu, nhược điểm của chữ ký số 9

1.3 Các hệ chữ ký số điển hình 10

1.3.1 Cở sở toán học 10

1.3.2 Hệ mật khóa công khai RSA 12

1.3.3 Hệ chữ ký số Elgamal 18

1.3.4 Chuẩn chữ ký DSS 19

1.3.5 Hệ chữ ký GOST 3410.94 20

1.4 Khả năng ứng dụng của chữ ký số vào thực tiễn 22

1.4.1 Đối với người dùng cá nhân 22

1.4.2 Đối với các Cơ quan - Tổ Chức 22

1.4.3 Đối với các Doanh nghiệp 22

1.5 Kết luận chương 1 23

CHƯƠNG 2 XÂY DỰNG LƯỢC ĐỒ CHỮ KÝ SỐ TRÊN BÀI TOÁN PHÂN TÍCH SỐ 24

Trang 6

2.1 Cở sở nghiên cứu 24

2.2 Xây dựng thuật toán trên bài toán phân tích số cơ bản 25

2.2.1 Thuật toán trên bài toán phân tích số 25

2.2.2.Thuật toán hình thành tham số và khóa 26

2.2.3.Thuật toán ký và kiểm tra chữ ký 26

2.3 Xây dựng lược đồ chữ ký số trên cơ sở bài toán phân tích số 27

2.3.1.Thuật toán hình thành tham số và khóa 27

Chú thích: 28

2.3.2 Thuật toán ký 28

2.3.3 Thuật toán kiểm tra chữ ký 28

2.3.4 Tính đúng đắn của lược đồ chữ ký số 29

2.3.5 Mức độ an toàn của lược đồ chữ ký số 29

2.4 Kết luận chương 2 30

CHƯƠNG 3 CÀI ĐẶT THƯ NGHIỆM 32

3.1 Kịch bản chương trình 32

3.2 Cài đặt, thử nghiệm chương trình 33

3.2.1 Cài đặt chương trình 33

3.2.2 Thử nghiệm chương trình 39

3.3 Kết luận chương 3 43

KẾT LUẬN VÀ KHUYẾN NGHỊ 44

1 Kết luận 44

2 Khuyến nghị 44

TÀI LIỆU THAM KHẢO 45

Trang 8

DANH MỤC CÁC HÌNH VẼ CHƯƠNG 1

Hình 1.1 Hệ thống sử dụng mã hóa khóa công khai 3

Hình 1.2 Chữ ký số 6

Hình 1.3 Sơ đồ mã hóa công khai 13

Hình 1.4 Sơ đồ quy trình tạo chữ ký trong RSA 17

Hình 1.5 Sơ đồ quy trình xác minh chữ ký số RSA 17

CHƯƠNG 2 Hình 2.1 Sơ đồ thuật toán sinh khóa và ký 25

Hình 2.2 Sơ đồ thuật toán xác minh chữ ký 27

CHƯƠNG 3 Hình 3.1 Khai báo các giá trị tham số và khóa 33

Hình 3.2 Thuật toán tạo tham số cho chuơng trình 34

Hình 3.3 Câu lệnh cho nút tạo tham số chương trình 34

Hình 3.4 Câu lệnh nút lưu tham số 34

Hình 3.5 Thuật toán tạo khóa cho chương trình 34

Hình 3 6 Câu lệnh cho nút tạo khóa chương trình 35

Hình 3.7 Câu lệnh nút lưu khóa 35

Hình 3.8 Thuật toán tạo chữ ký số 36

Hình 3.9 Câu lệnh cho nút tạo chữ ký số 37

Hình 3.10 Câu lệnh nút lưu chữ ký số 37

Hình 3.11 Câu lệnh nút nạp chữ ký số cần xác thực 37

Trang 9

Hình 3.12 Thuật toán kiểm tra hay xác thực chữ ký số 38

Hình 3.13 Giao diện chính của phần mềm 39

Hình 3.14 Giao diện của Modul tạo tham số và khóa 40

Hình 3.15 Giao diện của Modul tạo chữ ký số 41

Hình 3.16 Giao diện modul xác thực chữ ký 42

Trang 10

hạ tầng khoá công khai với nền tảng là mật mã khoá công khai và chữ ký số.

Có nhiều nghiên cứu về lược đồ chữ ký số nói chung, phần lớn đều dựa trênbài toán logarit rời rạc, bài toán khai căn, phân tích số nguyên ra thừa sốnguyên tố Gần đây có một nghiên cứu mới xây dựng một lược đồ chữ ký sốtrên cơ sở bài toán phân tích một số nguyên lớn ra các thừa số nguyên tố (bàitoán phân tích số) kết hợp với bài toán khai căn trong modulo hợp số (bài toánkhai căn) Tuy nhiên, do bài toán khai căn không có vai trò quyết định đếnmức độ an toàn của lược đồ nên đã không được đề cập đến Trong nghiên cứunày chọn một phương pháp xây dựng lược đồ chữ ký số theo cùng nguyên tắc

đã được chỉ ra, nhưng phương pháp ở đây được mô tả dưới dạng một lược đồtổng quát từ đó cho phép triển khai ra các lược đồ chữ ký số khác nhau chocác ứng dụng thực tế Trước tình hình nghiên cứu trong và ngoài nước về chữ

ký số như hiện nay thì việc nghiên cứu, phát triển và từng bước đưa chữ ký sốứng dụng vào thực tiễn là rất cần thiết Chính vì lý do trên tôi đã chọn đề tài

“Nghiên cứu xây dựng lược đồ chữ ký số trên cơ sở bài toán phân tích số”

để nghiên cứu làm luận văn tốt nghiệp của mình

2 Mục đích nghiên cứu

- Tìm hiểu chung về bài toán phân tích số

- Tìm hiểu chuẩn chữ ký số dựa trên bài toán phân tích số và hàm băm

Trang 11

- Nghiên cứu rõ về lược đồ chữ ký số dựa trên chuẩn chữ ký số trên cơ

sở bài toán phân tích số

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

Đối tượng nghiên cứu: Xây dựng lược đồ chữ ký số trên cơ sở bài toán

phân tích số

Phạm vi nghiên cứu: Thuật toán chữ ký số này được dựa trên tính khó

của bài toán phân tích một số nguyên lớn ra các thừa số nguyên tố từ đó xâydựng lược đồ chữ ký số mới Lược đồ Elgamal gồm cả hệ mã và chữ ký số có

độ an toàn dựa trên bài toán logarit rời rạc

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

- Tổng hợp các tài liệu liên quan đến các lược đồ cơ sở dựa trên các hệmật và các chuẩn chữ ký số được đánh giá có độ an toàn cao

- Sử dụng phương pháp lập luận và phân tích các lược đồ làm cơ sở đểxây dựng các lược đồ chữ ký số theo mục tiêu nghiên cứu đặt ra

- Sử dụng phương pháp mô phỏng, lập trình để xây dựng một số lược

đồ chữ ký phân tích theo mô hình ứng dụng có khả năng ứng dụng trong thựctiễn

5 Kết cấu của luận văn

Ngoài phần mở đầu, kết luận và danh mục tài liệu tham khảo, luận vănđược kết cấu gồm 3 chương

số.

Chương 1 Tổng quan các chuẩn chữ ký số.

Chương 2 Xây dựng lược đồ chữ ký số trên cơ sở bài toán phân tích Chương 3 Cài đặt và thử nghiệm chương trình.

Trang 12

CHƯƠNG 1 TÔNG QUAN CÁC CHUẨN CHỮ KÝ SỐ

Chương này trình bày các khái niệm cơ bản vê chữ ký số, một số hệ chữ ký số điển hình, chức năng và kha năng ứng dụng của chữ ký số, quy trình ký, xác thực chữ ký số và định hướng nghiên cứu của đê tài Đây chính

là những kiến thức cơ bản và chung nhất cho việc tạo ra một chữ ký số hoàn chỉnh, là nền tảng để phát triển thuật toán lược đồ chữ ký số ở chương sau.

1.1 Giới thiệu về hệ mật mã khóa công khai các nguyên lý

Mã hóa bất đối xứng thường được hiểu là mã hoá sử dụng khóa côngkhai Mã hóa bất đối xứng sử dụng một cặp khóa: khóa bí mật và khóa côngkhai, được miêu tả như hình 1.1 Mỗi quá trình truyền tin sử dụng một cặpkhóa duy nhất và có thể sử dụng linh hoạt Khóa bí mật cần phải lưu trữ riêng

và đảm bảo tính bảo mật, không được truyền trên mạng Khóa công khai cóthể được cung cấp miễn phí và công bố tới mọi người

Hình 1.1 Hệ thống sử dụng mã hóa khóa công khaiTương tự như mã hoá khoá bí mật, phương pháp này cũng có các thànhphần chính như sau:

- Plaintext: bản tin gốc

- Encryption Algorithm: Thuật toán mã hóa

- Public/Private keys: cặp khóa công khai/bí mật

- Ciphertext: bản tin đã mã hóa

- Decryption Algorithm: Thuật toán giải mã

Quá trình sử dụng mã hóa khóa công khai:

Trang 13

- Bên nhận sinh cặp khóa.

- Khóa công khai thường được chứng thực bởi một bên thứ ba tin cậy

và chuyển cho người gửi theo các phương thức truyền thông thông thường

- Bên gửi nhận được khóa công khai, kiểm tra các thông tin chứng thựckhoá và dùng khóa này để mã hóa thông điệp và gửi cho bên nhận

- Bên nhận sử dụng khoá bí mật để giải mã thông điệp

- Thông điệp có thể bị bên thứ ba lấy trộm, nhưng không thể đọc đượcnội dung

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

1.2.1 Hệ khoá công khai RSA

RSA là hệ mật mã khóa công khai phô biến và cũng đa năng nhất trongthực tế, phát minh bởi Rivest, Shamir & Adleman (1977) Nó là chuẩn mật

mã bất thành văn đối với PKC, cung cấp đảm bảo tính mật, xác thực và chữ

ký điện tử

Cơ sở thuật toán RSA dựa trên tính khó của bài toán phân tích các sốlớn ra thừa số nguyên tố: không tồn tại thuật toán thời gian đa thức (theo độdài của biểu diễn nhị phân của số đó) cho bài toán này Chẳng hạn, việc phântích một hợp số là tích của 2 số nguyên tố lớn hàng trăm chữ số sẽ mất hàngngàn năm tính toán với một máy PC trung bình có cấu hình CPU khoảng trên2Ghz

Ý tưởng (Motivation)

Các nhà phát minh có lựa chọn khá giản dị là xây dựng thuật toán

sinh/giải mã trên cơ sở phép toán lấy luỹ thừa đồng dư trên trường Zn = {0,1,2, n-1} Chẳng hạn, việc sinh mã cho tin X sẽ được thực hiện qua:

Y = X e n

Ở đây ta dùng ký hiệu a = b n nghĩa là a = b k* n với a  Z n

còn

k = 1,2,3, , ví dụ 7 = 3 3 10) còn việc giải mã:

Trang 14

X = Y d n

(e – khóa sinh mã, d – khóa giải mã)

Như vậy để hai hàm sinh mã và giải mã này là hàm ngược của nhau, e

và d phải được chọn sao cho: X ed = X n

Người ta đã tìm được cách xây dựng cặp số (e,d) này trên cơ sở công thức như sau: X(n) = 1 n (định lý Ơ - le)

Trong đó (n) hàm số cho biết số lượng các số thuộc Z n mà nguyên tố

cùng nhau với n Người ta cần chọn e*d sao cho chia (n) dư 1, hay d= e -1

(n), khi đó ta sẽ có điều cần thiết:

(q-Nói cách khác nếu như cho trước một số e thì nếu đã biết công thức phân tích thừa số nguyên tố của n ta có thể dễ dàng tìm được d sao cho d= e -1

Vừa rồi là phần trình bày dẫn dắt về cội nguồn của thuật toán, sau đây

là thuật toán cụ thể

1.2.2 Khái niệm chữ ký số

Chữ ký số : Là một thể chứng thực được mã hóa bởi khoá bí mật củangười gửi Chữ ký số là thông tin đi kèm theo dữ liệu (văn bản, hình ảnh,video ) nhằm mục đích xác định chủ thể của dữ liệu đó Quá trình tạo và xácthực chữ ký số được mô tả như Hình 1.2

Trang 15

Hình 1.2 Chữ ký số

1.2.2.1 Vai trò của chữ ký số

Chữ ký số dùng cho các văn bản số, cho biết toàn bộ văn bản đã được

ký bởi người ký Và người khác có thể xác minh điều này Chữ ký số tương tựnhư chữ ký thông thường, đảm bảo nội dung tài liệu là đáng tin cậy, chínhxác, không hề thay đổi trên đường truyền và cho biết người tạo ra tài liệu là

ai Tuy nhiên, chữ ký số khác chữ ký thường, vì nó tuỳ thuộc vào văn bản.Chữ ký số sẽ thay đổi theo văn bản còn chữ ký thường thì không hề thay đổi

Chữ ký số được sử dụng để cung cấp chứng thực chủ sở hữu, tính toànvẹn dữ liệu và chống chối bỏ nguồn gốc trong rất nhiều các lĩnh vực

1.2.2.2 Ứng dụng của chữ ký số

Giải pháp dùng chữ ký số là tối ưu vì nó có hiệu lực pháp luật, do đókhông cần in ấn tài liệu mà vẫn có thể xác nhận được tài liệu, đảm bảo tínhtoàn vẹn và không chối bỏ Chữ ký số được phát hành bởi bên thứ ba là cơquan chứng thực có thẩm quyền cấp phát, thu hồi, quản lý chứng chỉ số chocác thực thể thực hiện các giao dịch an toàn ( Certificate Authority hoặc CA)nên đảm bảo tính khách quan Như vậy, quá trình tạo chữ ký số, xác nhận các

Trang 16

yêu cầu pháp lý, bao gồm xác thực người ký, xác thực tin nhắn, là thành công

và hiệu quả

Chính vì những ưu điểm của chữ ký số, nó được dùng trong nhiều ứngdụng: Đảm bảo an ninh truyền thông, ngân hàng trực tuyến, thương mại điện

tử, đảm bảo an ninh cho thư điện tử, …

1.2.3 Các bước tạo và kiểm tra chữ ký điện tử

Quá trình sử dụng chữ ký số được thực hiện theo 2 giai đoạn: Tạo chữ

ký và kiểm tra chữ ký số Có thể dùng khoá công khai hoặc khoá bí mật đểthực hiện các khâu trên Hai quá trình tạo và kiểm tra sẽ được trình bày cụ thểtiếp sau đây

Các bước tạo chữ ký:

- Dùng giải thuật băm để tính message digest của thông điệp cần truyền

đi Kết quả ta được một message digest

- Sử dụng khóa bí mật của người gửi để mã hóa message digest thuđược ở bước 1 Thông thường ở bước này ta dùng giải thuật RSA Kết quả thuđược gọi là digital signature của thông điệp ban đầu Công việc này gọi là

“ký” vào thông điệp Sau khi đã ký vào thông điệp, mọi sự thay đổi trên thôngđiệp sẽ bị phát hiện trong giai đoạn kiểm tra Ngoài ra, việc ký này đảm bảongười nhận tin tưởng thông điệp này xuất phát từ người gửi chứ không phải là

ai khác

- Gộp digital signature vào thông điệp ban đầu và gửi đến người nhận

Các bước kiểm tra:

- Tách message ban đầu và chữ ký số

- Dùng khóa công khai của người gửi (khóa này được thông báo đếnmọi người) để giải mã chữ ký số của thông điệp

- Dùng giải thuật (MD5 hoặc SHA) băm thông điệp ban đầu

Trang 17

- So sánh 2 chuỗi băm kết quả thu được ở 2 bước trên Nếu trùng nhau,

ta kết luận thông điệp này không bị thay đổi trong quá trình truyền và thôngđiệp này là của người gửi

4 A là tập hữu hạn các thuật toán ký

5 V là tập hữu hạn các thuật toán xác minh

6 Với mỗi k ∈ K tồn tại một thuật toán ký sig k ∈ A và một thuật toán xác minh ver k ∈ V tương ứng, mỗi sig k : M → S và ver k : M × S → { true, false} là hàm sao cho với mỗi m ∈ M và s ∈ S thỏa mãn phương trình sau:

��(�, ��) = { ����� , � ≠ ������, � = ����������������� �(��)��������������� �(��)

1.2.5 Chức năng của chữ ký số

- Non-repudiation: Giúp cho người nhận khi kiểm tra nội dung đã được

ký chữ ký số kèm theo sẽ biết chắc người ký không thể chối cãi về những gì

đã tạo ra ở thời điểm bắt đầu tạo chữ kí số

- Integrity: Chữ ký số giúp kiểm tra tính toàn vẹn dữ liệu của nội dungđược gửi đi là không bị thay đổi hay chỉnh sửa kể từ lúc khởi tạo chữ ký số và

ký vào văn bản gửi đi

- Authenticity: Chữ ký số cũng dùng để chứng thực nguồn gửi nội dungthông điệp đi Thường thì thông tin về người chủ của chữ ký sẽ được thêmvào kèm với nội dung chữ ký số để giúp người nhận chứng thực được ai đã

Trang 18

gửi thông điệp đi Chữ ký số ứng dụng nhiều trong các hoạt động cấp chứngchỉ Certificate SSL,… Chữ ký số cũng có có thể sử dụng trong các giao dịchthư điện tử, để mua bán hàng trực tuyến, đầu tư chứng khoán trực tuyến,chuyển tiền ngân hàng, thanh toán trực tuyến mà không sợ bị đánh cắp tiềnnhư với các tài khoản Visa, Master.

1.2.6 Các yêu cầu thành phần để tạo ra được chữ ký số

Chữ ký số dựa trên công nghệ mã hoá khóa công khai (RSA): Mỗingười dùng phải có 1 cặp khóa (key pair) bao gồm khóa công khai (publickey) và khóa bí mật (private key)

+ Private key: Là một khóa trong cặp khóa thuộc hệ thống mật mãkhông đối xứng, được dùng để tạo chữ ký số

+ Public key: Là một khóa trong cặp khóa thuộc hệ thống mật mãkhông đối xứng, được sử dụng để giả mã kiểm tra chữ ký số được tạo bởikhóa bí mật tương ứng trong cặp khóa

+ Digital Sign (ký số): Là việc đưa khóa bí mật vào một chương trìnhphần mềm để tự động tạo và gắn chữ ký số vào thông điệp dữ liệu Khi đọccác tài liệu chuyên ngành, bạn sẽ gặp nhiều cụm từ “sign” hoặc “signed " thìbạn phải hiểu là liên quan đến hoạt động của chữ ký số

+ Signer (người ký): Là đối tượng dùng đúng khóa bí mật của mình đểtạo chữ ký số và ký vào một thông điệp dữ liệu dưới tên của mình

+ Recipient (người nhận): Là tô chức, cá nhân nhận được thông điệp dữliệu được ký số bởi người ký, sử dụng chứng thư số (digital certificate) củangười ký đó để kiểm tra chữ ký số trong thông điệp dữ liệu nhận được và tiếnhành các hoạt động, giao dịch có liên quan

1.2.7 Ưu, nhược điểm của chữ ký số

Trang 19

Bảng 1.1 Ưu, nhược điểm của chư ký số Ư

1.3.1.1 Bài toán phân tích số

Bài toán phân tích số về cơ bản có thể được phát biểu như sau: Cho số

Trang 20

1.3.1.2 Bài toán logarit rời rạc

Cho p là một số nguyên tố và g là phần tử sinh của nhóm ZP* Khi đóbài toán logarit rời rạc - DLP (Discrete Logarithm Problem) trên trường ZP

hay còn gọi là bài toán DLP ( p, g ) được phát biểu như sau:

Bài toán DLP(p,g): Với mỗi số nguyên dương y( p *), hãy tìm x thỏa mãn phương trình sau:

g x mod p = y Giải thuật cho bài toán logarit rời rạc với các tham số {p, g} công khai

có thể được viết như một thuật toán tính hàm DLP ( p, g ) (.)với biến đầu vào

là y còn giá trị hàm là nghiệm x của phương trình trên:

x = DLP ( p, g ) (y)

Trong một hệ thống giao dịch điện tử ứng dụng chứng thực số để xácthực nguồn gốc và tính toàn vẹn thông tin cho các thông điệp dữ liệu, bài

DLP ( p, g ) là khó theo nghĩa không thể thực hiện được trong thời gian thực Ở

đó, mỗi thành viên U của hệ thống tự chọn cho mình khóa bí mật x thỏa mãn:

1 < x < ( p- 1) , tính và công khai tham số:

y = g x mod p

Trang 21

1.3.1.3 Bài toán khai căn

Cho một cặp các số nguyên dương {n,t} với n là tích của hai số nguyên

tố p và q, còn t được chọn trong khoảng 1 < t < (p - 1).(q - 1) Khi bài toánkhai căn trên vành Zn = p.q hay còn gọi là bài toán RSA(n,t) được phát biểu nhưsau:

Bài toán RSA(n,t) : Với mỗi số nguyên dương y  , hãy tìm x thỏa

mãn phương trình sau:

x t modn = y

Giải thuật cho bài toán RSA(n,t) có thể được viết như một thuật toán tínhhàm RSA(n,t) (.) với biến đầu vào là y, còn giá trị hàm là x của phương trìnhsau:

x = RSA (n,t) (y)

Ở dạng lược đồ chữ ký nghiên cứu, mỗi thành viên U của hệ thống tựchọn cho mình bộ tham số {n,t} và khóa bí mật x thỏa mẫn : 1 < x < n, tính vàcông khai tham số :

y = x t modn

1.3.2 Hệ mật khóa công khai RSA

a) Mật mã khóa công khai RSA

Hệ mã RSA được đặt tên dựa theo các chữ cái đầu của 3 tác giả của hệ

mã là Rivest, Shamir và Adleman Đây là thuật toán mã hóa nổi tiếng nhất vàcũng là thuật toán được ứng dụng thực tế nhất

Thuật toán RSA có hai khóa: Khóa công khai (hay khóa công cộng) vàkhóa bí mật (hay khóa cá nhân) Mỗi khóa là những số cố định sử dụng trongquá trình mã hóa và giải mã Khóa công khai được công bố rộng rãi cho mọingười và được dùng để mã hóa Những thông tin được mã hóa bằng khóacông khai chỉ có thể được giải mã bằng khóa bí mật tương ứng Nói cách

Trang 22

khác, mọi người đều có thể mã hóa nhưng chỉ có người biết khóa cá nhân (bímật) mới có thể giải mã được.

Hình 1.3 Sơ đồ mã hóa công khai

Ta có thể mô phỏng trực quan một hệ mật mã khoá công khai như sau:Bob muốn gửi cho Alice một thông tin mật mà Bob muốn duy nhất Alice cóthể đọc được Để làm được điều này, Alice gửi cho Bob một chiếc hộp cókhóa đã mở sẵnvà giữ lại chìa khóa Bob nhận chiếc hộp, cho vào đó một tờgiấy viết thư bình thường và khóa lại (như loại khoá thông thường chỉ cần sậpchốt lại, sau khi sập chốt khóa ngay cả Bob cũng không thể mở lại được-không đọc lại hay sửa thông tin trong thư được nữa) Sau đó Bob gửi chiếchộp lại cho Alice Alice mở hộp với chìa khóa của mình và đọc thông tintrong thư Trong ví dụ này, chiếc hộp với khóa mở đóng vai trò khóa côngkhai, chiếc chìa khóa chính là khóa bí mật

Để cài đặt RSA, ban đầu mỗi người dùng sinh khóa công khai và khóa

bí mật của mình bằng cách:

[1] Chọn 2 số nguyên tố lớn khác nhau p, q thỏa mãn điều kiện |p| | q|

[2] Tính tích của nó: n = p × q.

[3] Tính giá trị hàm Phi Euler của n:  n= (p 1)(q

-1) [4] Chọn số nguyên d, sao cho: d <  n và

gcd(d,(n) )=1 [5] Tính giá trị e thỏa mãn điều kiện: e ×

d = 1 mod  n

Trang 23

Khóa công khai bao gồm: n và e Khóa mật: d còn p, q và

là xóa sau khi tính toán khóa để đảm bảo an toàn

Quá trình mã hóa:

(n)

thường

Giả sử Bob muốn gửi đoạn thông tin m< n cho Alice, thì Bob tính bản

mã như sau: c = m e mod n

Cuối cùng Bob gửi c cho Alice

Quá trình giải mã:

Alice nhận c từ Bob và khóa bí mật d Alice có thể tìm được m từ c

theo công thức sau: m = c d mod n

Quá trình giải mã hoạt động vì: c d = (m e ) d mod n = m ed mod n

Do e.d = 1 (mod p-1) và e.d = 1 (mod q-1), theo Đị n h l ý Fe r m at n h ỏ

nên: m ed = m mod p

Do p và q là hai số nguyên tố cùng nhau, áp dụng định lý phần dư

trung hoa, chúng ta có: m ed = m mod pq Hay c d = m mod n

An ninh: Độ an toàn của hệ thống RSA dựa trên 2 vấn đề của toán học:

bài toán p h â n tí c h ra t h ừ a s ố ng u y ên t ố các s ố n gu y ên l ớ n v à b ài t o á n RSA

Trang 24

Nếu 2 bài toán trên là khó (không tìm được thuật toán hiệu quả để giải chúng)thì không thể thực hiện được việc phá mã toàn bộ đối với RSA Phá mã mộtphần phải được ngăn chặn bằng các phương pháp chuyển đổi bản rõ an toàn.

Bài

t o án RSA l à bài toán tính căn bậc emodulon (với n là hợp số): tìm

số m sao cho m e =c mod n, trong đó (e, n) chính là khóa công khai và c là bản

mã Hiện nay phương pháp triển vọng nhất giải bài toán này là phân tích n ra

thừa số nguyên tố Khi thực hiện được điều này, kẻ tấn công sẽ tìm ra số mũ

bí mật d từ khóa công khai và có thể giải mã theo đúng quy trình của thuật toán Nếu kẻ tấn công tìm được 2 số nguyên tố p và q sao cho: n = pq thì có thể dễ dàng tìm được giá trị (p-1)(q-1) và qua đó xác định d từ e Trong

chương số học chúng ta đã biết chưa có một phương pháp nào được tìm ratrên máy tính để giải bài toán này trong thời gian đa thức Tuy nhiên người tacũng chưa chứng minh được điều ngược lại (sự không tồn tại của thuật toán)

Tốc độ: RSA có tốc độ thực hiện chậm hơn đáng kể so với các t hu ậ tto

á n m ã h ó a đố i x ứng

Chiều dài khóa: Số n cần phải có kích thước không nhỏ hơn 512 bít.

Năm 2006 hệ mật RSA được cho là hiệu quả với kích thước n phải từ 1024

Và họ khuyến cáo là tương lai thì chiều dài n phải từ 2048 bít

Chọn tham số công khai:

Để nâng cao tốc độ mã hóa, thì chúng ta nên chọn e với giá trị khônglớn, thường là 3, 7 hay 65537 Các số này khi biểu diễn ở dạng nhị phân chỉ

có 2 chữ số 1, nên khi thực hiện lệnh lũy thừa sẽ giảm đi lệnh nhân

Chọn tham số mật:

- Chọn p và q còn cần đảm bảo không quá gần nhau để phòng trường hợp phân tích n bằng phương pháp p h â n t í ch F e r m a t Ngoài ra, nếu p-1 hoặc q-1 có thừa số nguyên tố nhỏ thì n cũng có thể dễ dàng bị phân tích theo phương pháp p-1 Pollaid và vì thế p và q cũng cần được thử để tránh khả năng

Trang 25

này Chúng ta có thể chọn như sau Trước tiên tìm số nguyên tố p1 sao cho

p=2p 1 +1 cũng là số nguyên tố, tương tự chọn số nguyên tố lớn q1 sao cho

q=2q 1 +1 cũng là số nguyên tố.

- Giá trị d cần phải đủ lớn Năm 1990 Michael J Wiener đã chứng

minh rằng nếu như q < p < 2q và d < n 1/4 /3, thì có phương pháp hiệu quả để

Alice đi xác định số nguyên d, thỏa mãn phương trình e × d = 1 mod

Số d là khóa mật của Alice

Tạo chư ký:

(N )

Giả sử cần ký văn bản M Đầu tiên chuyển M thành một số m<n theo

một hàm có thể đảo ngược (từ m có thể xác định lại M) đượcthỏa thuận trước.Lúc này ta muốn ký lên văn bản M với số tương ứng là m Ta sẽ tính S là bản

ký của m theo công thức: S = Sig n d (m) = m d (mod n).

Trang 26

Hình 1.4 Sơ đồ quy trình tạo chữ ký trong RSA

Thẩm tra chư ký:

Hình 1.5 Sơ đồ quy trình xác minh chữ ký số RSA

Để thẩm tra chữ ký S có phải của Alice ký không thì Bob kiểm chứngbằng thủ tục sau: Verify(N,e)(m,s)=TRUE, nếu như m  s e (mod N )

Trang 27

Rõ ràng chúng ta thấy rằng quá trình tạo chữ ký và thẩm tra chữ kýgiống với quá trình mã và giải mã của hệ mật RSA chỉ khác là quá trình tạochữ ký Alice dùng khóa mật còn quá trình thẩm tra thì Bob dùng khóa côngcộng

Độ an toàn của sơ đồ chư ký số RSA:

Nếu sơ đồ ký số thực hiện đơn giản như trên thì hacker dễ dàng lừa Ví

dụ như hacker có thể chọn ngẫu nhiên s  Z * và tính toán độlớn:

Để chống lại sự giả mạo chữ ký theo phương pháp trên thì một phươngpháp đơn giản là thêm thông tin phụ vào bức điện M

Ngoài ra kết hợp với việc ký lên giá trị hàm hash của bức điện, tức là ký

lên giá trị: m=hash(M) Vì những tính chất của hàm hash sẽ chống lại khả

năng giả mạo trên trừ xác suất rất nhỏ, vì nếu khó có thể tìm được bức điện màgiá trị hash của nó trùng với giá trị hàm hash đã cho

1.3.3 Hệ chữ ký số Elgamal

Sơ đồ chữ ký Elgamal được giới thiệu năm 1985 Sơ đồ này thiết kếdành riêng cho chữ ký số khác với sơ đồ RSA dành chung cho cả hệ thống măcông khai và chữ kư số

Tạo khóa:

Quá trình tạo khóa giống như quá trình tạo khóa của hệ mật Elgamal,tức là Alic chọn số nguyên tố p đủ lớn để bài toán logarith rời rạc trên Zp là

Ngày đăng: 16/11/2018, 09:00

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