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

Tiểu luận môn toán học cho khoa học máy tính TÌM HIỂU CHỮ KÝ ĐIỆN TỬ XÂY DỰNG ỨNG DỤNG MÔ PHỎNG CHỮ KÝ ĐIỆN TỬ

43 489 1

Đ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 43
Dung lượng 521 KB

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

Nội dung

Và vấn đề được đặt ra làlàm thế nào để xác thực được một cách chính xác nguồn thông tin nhận là của mộtngười, một máy chủ hay của một thực thể nào đó gửi tin trên hệ thống mạng?Mô hình t

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TPHCM

KHOA: KHOA HỌC MÁY TÍNH CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT

BÀI THU HOẠCH

MÔN: TOÁN CHO KHOA HỌC MÁY TÍNH

Trang 2

LỜI MỞ ĐẦU

Hiện nay, việc đảm bảo an toàn thông tin, tránh mọi nguy cơ bị thay đổi, sao chéphoặc mất mát dữ liệu trong các ứng dụng trên mạng luôn làvấn đề bức xúc, được nhiềungười quan tâm Trên thực tế, chữ ký điện tử (Digital Signature) đã được ứng dụng rộngrãi trong các ứng dụng trên mạng Một trong những ứng dụng quan trọng của chữ kýđiện tử là đảm bảo an toàn dữ liệu khi truyền trên mạng Tuy nhiên, khi xây dựng mộtứng dụng, các nhà phát triển thường chỉ tập trung xây dựng các chức năng của hệ thống,

ít quan tâm đến vấn đề an toàn trong quá trình truyền tin

Trên cơ sở này, em xin trình bày những cơ sở lý thuyết cơ bản về mã hóa, thuậttoán băm MD5, thuật giải RSA và chữ ký điện tử Từ đó, xây dựng một ứng dụng nhỏ

mô phỏng quy trình tạo chữ ký và xác nhận chữ ký

Em xin chân thành cảm ơn PGS.TS Đỗ Văn Nhơn đã tận tình hướng dẫn và truyềnđạt những kiến thức hữu ích giúp em hoàn thành bài thu hoạch này

Tp HCM, tháng 12 năm 2013

Phan Trọng Nghĩa

Trang 3

PHỤ LỤC

LỜI MỞ ĐẦU 1

PHỤ LỤC 2

NỘI DUNG 4

A ĐẶT VẤN ĐỀ 4

B CƠ SỞ LÝ THUYẾT 5

I Tổng quan về chứng thực và an toàn thông tin 5

II Mã hóa dữ liệu và giải mã 6

II.1 Tổng quan về mã hóa dữ liệu và giải mã 6

II.2 Mã hóa bất đối xứng (asymmetric) 7

II.3 Mã hóa đối xứng (symmetric) 9

II.4 Hàm băm - Hashing 10

II.5 Hàm băm MD5 12

III Thuật toán mã hóa khóa công khai RSA 18

III.1 Lịch sử ra đời 19

III.2 Mô tả sơ lược 20

III.3 Thuật toán RSA 21

III.4 Tính bảo mật của giải thuật RSA 25

IV Chữ ký điện tử 25

IV.1 Khái niệm chữ ký điện tử 25

IV.2 Cách làm việc của chữ ký điện tử 31

C ỨNG DỤNG MÔ PHỎNG CHỮ KÝ ĐIỆN TỬ 37

I Chức năng 37

I.1 Tạo khóa 37

I.2 Tạo chữ ký 37

I.3 Kiểm tra tính hợp lệ của chữ ký 38

II Mã chương trình 39

KẾT LUẬN 43

Trang 4

đó là lĩnh vực truyền thông Rất nhiều thông tin liên quan đến những công việchàng ngày đều do máy vi tính quản lý và truyền gửi đi trên hệ thống mạng, kéotheo đó là vấn đề về xác thực nguồn thông tin nhận được Và vấn đề được đặt ra làlàm thế nào để xác thực được một cách chính xác nguồn thông tin nhận là của mộtngười, một máy chủ hay của một thực thể nào đó gửi tin trên hệ thống mạng?

Mô hình trao đổi thông tin qua mạng INTERNET

Ví dụ: khi A gửi một thông tin điện tử cho D, và giả sử B “giả mạo” A cũng

gửi một thông tin cho D, hoặc một người C trên môi trường truyền bắt được và sửađổi thông tin A gửi sau đó các thông tin này được gửi lại cho D Vậy thông tin Dnhận được không chính xác và người nhận D cũng không thể xác thực được thôngtin đó là do người A gửi, hay B gửi, hay một người nào khác gửi

Vấn đề đặt ra là người D sau khi nhận được bản tin phải xác thực được rằngthông tin là của chính một đối tượng cụ thể gửi và thông tin không bị tiết lộ cũngnhư bị không thay đổi trên môi trường truyền thông

Bài thu hoạch này đề cập đến những cơ sở lý thuyết về hàm băm MD5, thuật toán mã hóa RSA, chữ ký điện tử và ứng dụng phỏng chữ ký điện tử

Trang 5

B CƠ SỞ LÝ THUYẾT

I Tổng quan về chứng thực và an toàn thông tin

- Chúng ta đang sống trong một thời đại bùng nổ thông tin Nhu cầu trao đổithông tin và các phương tiện truyền đưa thông tin phát triển một cách nhanhchóng Và cùng với sự phát triển đó, đòi hỏi bảo vệ tính bí mật và chứng thựcnguồn thông tin cũng càng ngày càng to lớn và có tính phổ biến Có nhiều bàitoán khác nhau về yêu cầu an toàn thông tin tùy theo những tình huống khácnhau

- Ví dụ trong thực tế, một số bài toán chung nhất mà ta thường gặp là nhữngbài toán sau đây:

o Bảo mật: Giữ thông tin được bí mật đối với tất cả mọi người, trừ một ít

người có thẩm quyền được đọc, biết thông tin đó

o Toàn vẹn thông tin: Bảo đảm thông tin không bị thay đổi hay xuyên

tạc bởi những kẻ không có thẩm quyền hoặc bằng những phương tiệnkhông được phép

o Nhận thực một thực thể: Xác nhận danh tính của một thực thể, chẳng

hạn một người, một máy tính cuối trong mạng, một thẻ tín dụng,

o Nhận thực một thông báo: Xác nhận nguồn gốc của một thông báo

được gửi đến

o Chữ ký: Một cách để gắn kết một thông tin với một thực thể, thường

dùng trong bài toán nhận thực một thông báo cũng như trong nhiều bàitoán nhận thực khác

o Ủy quyền: Chuyển cho một thực thể khác quyền được đại diện hoặc

được làm một việc gì đó

o Cấp chứng chỉ: Cấp một sự xác nhận thông tin bởi một thực thể được

tín nhiệm

Trang 6

o Báo nhận: Xác nhận một thông báo đã được nhận hay một dịch vụ đã

được thực hiện

o Làm chứng: Kiểm thử việc tồn tại một thông tin ở một thực thể khác

với người chủ sở hữu thông tin đó

o Không chối bỏ được: Ngăn ngừa việc chối bỏ trách nhiệm đối với một

cam kết đã có (thí dụ đã ký vào một văn bản)

o Ẩn danh: che giấu danh tính của một thực thể tham gia trong một tiến

trình nào đó (thường dùng trong giao dịch tiền điện tử)

o Thu hồi: Rút lại một giấy chứng chỉ hay ủy quyền đã cấp.

- Cơ sở của các giải pháp cho các bài toán kể trên là các phương pháp mật

mã, đặc biệt là mật mã khóa công khai

- Trong thế giới số, có 3 cách để xác thực một người hoặc mức độ tin cậy của

một thông tin trên máy tính Một là Thẻ thông hành (Pass Card) mà ở nước ta hiện nay chưa phổ biến Hai là Password, cách này sử dụng tên truy nhập (User

Name) và mật khẩu (Password) cung cấp cho các giao diện đăng nhập để xác

thực thông tin Thứ ba, dùng chữ ký điện tử (Digital Signature)

II Mã hóa dữ liệu và giải mã

II.1 Tổng quan về mã hóa dữ liệu và giải mã

Hình 1:Quy trình mã hóa dữ liệu

doanh và người tiêu dùng với sự hứa hẹn về việc thay đổi cách mà con ngườisống và làm việc Nhưng mối lo ngại lớn nhất được đề cập đến là việc bảo mật

Trang 7

trên Internet, đặc biệt khi các thông tin mang tính nhạy cảm và riêng tư được gửi

đi trên mạng

- Mã hóa là ngành nghiên cứu các thuật toán và phương thức để đảm bảo tính

bí mật và (thường là dưới dạng các văn bản lưu trữ trên máy tính) Các sản phẩm

của lĩnh vực này là các hệ mã mật, các hàm băm, các hệ chữ ký điện tử, các cơchế phân phối, quản lý khóa và các giao thức mật mã

- Có rất nhiều thông tin mà chúng ta không muốn người khác biết khi gửi đi

như: thông tin về Credit-Card, thông tin về kinh doanh của công ty, thông tin về

tài khoản cá nhân, thông tin về cá nhân như số chứng minh thư, số thẻ

- Quá trình mã hoá trong máy tính dựa vào khoa học về mật mã

(Cryptography) đã được con người sử dụng từ lâu đời Trước thời đại số hoá,

người sử dụng mật mã nhiều nhất vẫn là chính phủ, chủ yếu trong mục đích quân

sự Hầu hết các phương pháp mã hoá được dùng hiện nay dựa vào các máy tính,đơn giản là do các mã do con người sinh ra rất dễ bị phá bởi công cụ máy tính.Các hệ thống mã hoá trong máy tính phổ biến nhất thuộc một trong hai loại sau:

o Mã hoá với khoá đối xứng (Symmetric-key Encryption)

o Mã hoá với khoá công khai (Public-key Encryption)

- Gần đây nhất là các sự kiện liên quan tới các hàm băm MD5 (một hàm băm

thuộc họ MD do Ron Rivest phát triển) và SHA Một nhóm các nhà khoa học

người Trung Quốc (Xiaoyun Wang, Yiqun Lisa Yin, Hongbo Yu) đã phát triển các

phương pháp cho phép phát hiện ra các đụng độ của các hàm băm được sử dụngrộng rãi nhất trong số các hàm băm này Đây là một sự kiện lớn đối với ngànhmật mã học do sự ứng dụng rộng rãi và có thể xem là còn quan trọng hơn bảnthân các hệ mã mật của các hàm băm Do sự kiện này các hãng viết phần mềm

lớn (như Microsoft) và các nhà mật mã học đã khuyến cáo các lập trình viên sử

dụng các hàm băm mạnh hơn (như SHA-256, SHA-512) trong các ứng dụng.

II.2 Mã hóa bất đối xứng (asymmetric)

dụng trao đổi các thông tin mật mà không cần phải trao đổi các khóa chung bí

Trang 8

mật trước đó Điều này được thực hiện bằng cách sử dụng một cặp khóa có quan

hệ toán học với nhau là khóa công khai và khóa cá nhân (hay khóa bí mật).

- Trong mật mã hóa khóa công khai, khóa cá nhân phải được giữ bí mật trongkhi khóa công khai được phổ biến công khai Trong 2 khóa, một dùng để mã hóa

và khóa còn lại dùng để giải mã Đ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

o Mã hóa: giữ bí mật thông tin và chỉ có người có khóa bí mật mới giải

mã được

o Tạo chữ ký số: cho phép kiểm tra một văn bản có phải đã được tạo với

một khóa bí mật nào đó hay không

o Thỏa thuận khóa: cho phép thiết lập khóa dùng để trao đổi thông tin

mật giữa 2 bên

động giống nhau nhưng phần lớn đều gồm 2 khóa có quan hệ toán học với nhau:một cho mã hóa và một để giải mã Để thuật toán đảm bảo an toàn thì không thểtìm được khóa giải mã nếu chỉ biết khóa đã dùng mã hóa Điều này còn được gọi

là mã hóa công khai vì khóa dùng để mã hóa có thể công bố công khai mà khôngảnh hưởng đến bí mật của văn bản mã hóa

năng một người nào đó có thể tìm ra được khóa bí mật Không giống với hệ thống

mật mã sử dụng một lần (one-time pad) hoặc tương đương, chưa có thuật toán mã

hóa khóa bất đối xứng nào được chứng minh là an toàn trước các tấn công dựatrên bản chất toán học của thuật toán Khả năng một mối quan hệ nào đó giữa 2khóa hay điểm yếu của thuật toán dẫn tới cho phép giải mã không cần tới khóahay chỉ cần khóa mã hóa vẫn chưa được loại trừ An toàn của các thuật toán nàyđều dựa trên các ước lượng về khối lượng tính toán để giải các bài toán gắn vớichúng Các ước lượng này lại luôn thay đổi tùy thuộc khả năng của máy tính vàcác phát hiện toán học mới

Trang 9

- Mặc dù vậy, độ an toàn của các thuật toán mật mã hóa khóa công khai cũng

tương đối đảm bảo Nếu thời gian để phá một mã (bằng phương pháp duyệt toàn

bộ) được ước lượng là 1000 năm thì thuật toán này hoàn toàn có thể dùng để mã

hóa các thông tin về thẻ tín dụng - Rõ ràng là thời gian phá mã lớn hơn nhiều lần

thời gian tồn tại của thẻ (vài năm).

II.3 Mã hóa đối xứng (symmetric).

- Trong mật mã học, các thuật toán khóa đối xứng (tiếng Anh: symmetric-key

algorithms) là một lớp các thuật toán mật mã hóa trong đó các khóa dùng cho

việc mật mã hóa và giải mã có quan hệ rõ ràng với nhau (có thể dễ dàng tìm được

một khóa nếu biết khóa kia).

- Khóa dùng để mã hóa có liên hệ một cách rõ ràng với khóa dùng để giải mã

có nghĩa chúng có thể hoàn toàn giống nhau, hoặc chỉ khác nhau nhờ một biếnđổi đơn giản giữa hai khóa Trên thực tế, các khóa này đại diện cho một bí mậtđược phân hưởng bởi hai bên hoặc nhiều hơn và được sử dụng để giữ gìn sự bímật trong kênh truyền thông tin

(stream ciphers) và mật mã khối (block ciphers) Mật mã luồng mã hóa từng bit

của thông điệp trong khi mật mã khối gộp một số bit lại và mật mã hóa chúng nhưmột đơn vị Cỡ khối được dùng thường là các khối 64 bit Thuật toán tiêu chuẩn

mã hóa tân tiến (Advanced Encryption Standard), được NIST công nhận tháng 12

năm 2001, sử dụng các khối gồm 128 bit

kế của các hệ thống mật mã hiện đại, cả hai thuật toán bất đối xứng và thuật toánđối xứng được sử dụng phối hợp để tận dụng các ưu điểm của cả hai Những hệ

thống sử dụng cả hai thuật toán bao gồm SSL (Secure Sockets Layer), PGP (Pretty Good Privacy) và GPG (GNU Privacy Guard) Các thuật toán chìa khóa

bất đối xứng được sử dụng để phân phối chìa khóa mật cho thuật toán đối xứng

có tốc độ cao hơn

- Một số ví dụ các thuật toán đối xứng nổi tiếng bao gồm Twofish, Serpent,

AES (còn được gọi là Rijndael), Blowfish, CAST5, RC4, Tam phần DES

Trang 10

(Triple DES), và IDEA (International Data Encryption Algorithm - Thuật toán

mật mã hóa dữ liệu quốc tế)

- Hạn chế của các thuật toán khóa đối xứng bắt nguồn từ yêu cầu về sự phân

hưởng chìa khóa bí mật, mỗi bên phải có một bản sao của chìa Do khả năng các

chìa khóa có thể bị phát hiện bởi đối thủ mật mã, chúng thường phải được bảo antrong khi phân phối và trong khi dùng Hậu quả của yêu cầu về việc lựa chọn,phân phối và lưu trữ các chìa khóa một cách không có lỗi, không bị mất mát làmột việc làm khó khăn, khó có thể đạt được một cách đáng tin cậy

nhóm gồm n người, tổng số lượng chìa khóa cần phải có là n(n-1)/2.

mục đích chống thoái thác

II.4 Hàm băm - Hashing

- Hashing là một phương thức mật mã nhưng nó không phải là một thuật toán

mã hoá Đúng như vậy, hashing chỉ sử dụng một chứng chỉ số duy nhất được biếtđến với tên như "hash value – giá trị hash", "hash – băm", MessageAuthentication Code (MAC), fingerprint – vân tay, hay một đoạn message Dữliệu đầu vào của bạn có thể là một file, một ổ đĩa một quá trình truyền thông tintrên mạng, hay một bức thư điện tử Thông số hash value được sử dụng để pháthiện khi có sự thay đổi của tài nguyên Nói cách khác, hashing sử dụng nó để pháthiện ra dữ liệu có toàn vẹn trong quá trình lưu trữ hay trong khi truyền hay không

value được tạo ra trước đó một tuần Nếu hai thông số giống nhau thì dữ liệu chưa

có sự thay đổi Nếu hai thông số có sự khác nhau, thì dữ liệu đã bị thay đổi Tronghình dưới đây thể hiện cơ bản về hash hay thông số MAC

(receive) với cùng một thuật toán

Trang 11

Hình 2: Thể hiện cơ bản về hash hay thông số MAC

Điều này có nghĩa không có vấn đề với dữ liệu đầu vào và dữ liệu đầu ra sau quátrình hash bởi nó luôn luôn thêm vào 128 bits Sức mạnh của quá trình hashing là

nó được thực hiện một chiều và không thể có phương thức nào có thể thực hiệnngược lại được để converts thông số hash thành dữ liệu ban đầu Nếu một vàingười có được các thông số hash của ta, họ không thể lấy được dữ liệu ban đầu.Tuy nhiên đó không phải là phương thức mật mã không thể tấn công Hashing cóthể bị tấn công bởi các phương thức đảo ngược hay birthday attack Phương thứctấn công bình thường sử dụng đó là sử dụng các công cụ password-cracking Hầuhết các hệ thống lưu trữ passwords trong dữ liệu accounts và được hashed (băm).Hashs không thể thực hiện ngược lại, bởi đó là một giải pháp bảo mật, có nghĩakhông có công cụ nào có thể chuyển ngược lại một password được hash thànhmột password nguyên bản chưa được hash Tuy nhiên một thuật toán nào cũng cónhững bất cập riêng, bằng việc sử dụng các phần mềm, password crackers chúng

Trang 12

có thể phát hiện ra đoạn mã them vào dữ liệu ban đầu và chỉ cần xoá đoạn hashvalue đi là có thể truy cập bình thường Dữ liệu Account thường không được mãhoá, và dữ liệu password thường được hash do đó hầu hết các công cụ crackpassword chỉ có thể xoá password đã được đặt cho user đó mà không thể viewpassword đó.

Thuật toán hashing thường được sử dụng:

Secure Hash Algorithm (SHA-1) với - 160-bit hash value

Message Digest 5 (MD5) với —128-bit hash value

Message Digest 4 (MD4) với —128-bit hash value

Message Digest 2 (MD2) với —128-bit hash value

o Là hàm một chiều, không thể thực hiện phép biến đổi ngược như trong quá trình mã hóa và giải mã, nghĩa là với một message_digest cho trước, khó có thể tìm được một message nào mà có hàm băm bằng message_digest này

o Khó có thể tìm được hai message mà có cùng một message_digest.

Trong đó MD5 là giải thuật băm được sử dụng phổ biến và nó sẽ được trình bày trong phần dưới

II.5 Hàm băm MD5

- Giải thuật MD5 được phát triển bởi Ron Rivest ở MIT: nhận đầu vào là mộtkhối data (message) có chiều dài bất kỳ, xử lý nó thành các khối 512 bít, tạo đầu

ra là một message_digest 128 bít Quá trình bao gồm các bước sau:

o Bước 1: message ban đầu được thêm (padding) một số bít (bắt đầu là

bít 1, kế tiếp là các bít 0, số bít thêm vào từ 1 tới 512 bít) sao cho tổng số bít sau khi thêm vào cộng với 64 (chiềi dài của message ban đầu) là bội số của 512

Trang 13

Hình 3: Tạo message_digest sử dụng MD5.

o Bước 2: khởi tạo bộ đệm MD Bộ đệm 128 bít được dùng để chứa

kết quả trung gian và cuối cùng của hàm băm Có thể xem bộ đệm như là 4thanh ghi 32 bít Các thanh ghi này được khởi tạo (dạng số hex) như sau:

A = 01234567; B = 89abcdef; C = fedcba98; D = 76543210

o Bước 3: xử lý message thành từng khối 512 bít (16 từ 32 bít) Quá

trình tính toán được chia thành từng giai đoạn, số giai đoạn bằng số chiềudài (tính theo bít) của message sau khi đã padding chia cho 512 Mỗi giaiđoạn nhận đầu vào là khối 512 bít của message đã được padding vàmessage_digest của giai đoạn trước, cho ra kết quả là message_digest mới(xem hình 1) Mỗi giai đoạn thực hiện trong 4 bước (vòng), bốn vòng cócấu trúc giống nhau nhưng mỗi vòng sử dụng một hàm luận lý khác nhau,được đặc tả là F, G, H, I Trong hình 2, bốn vòng được đặt nhãn là fF , fG ,

fH , fI , để chỉ rằng mỗi vòng có cấu trúc hàm tổng quát như nhau nhưng tùythuộc vào sự khác nhau của hàm thao tác (F, G, H, I)

Trang 14

Hình 4: Xử lý MD5 của khối đơn 512 bít (HDMD5).

- Mỗi vòng được thực hiện 16 bước tuần tự trên các data A, B, C, D (hình4) Biểu thức tính toán được sử dụng trong mỗi vòng có dạng:

Trang 16

Bảng T được xây dựng từ hàm sin

T1 = D76AA478 T17 = F61E2562 T33 = FFFA3942 T49 = F4292244

T9 = 698098D8 T25 = 21E1CDE6 T41 = 289B7EC6 T57 = 6FA87E4F

T10 = 8B44F7AF T26 = C33707D6 T42 = EAA127FA T58 = FE2CE6E0

T11 = FFFF5BB1 T27 = F4D50D87 T43 = D4EF3085 T59 = A3014314

T12 = 895CD7BE T28 = 455A14ED T44 = 04881D05 T60 = 4E0811A1

T13 = 6B901122 T29 = A9E3E905 T45 = D9D4D039 T61 = F7537E82

T14 = FD987193 T30 = FCEFA3F8 T46 = E6DB99E5 T62 = BD3AF235

T15 = A679438E T31 = 676F02D9 T47 = 1FA27CF8 T63 = 2AD7D2BB

T16 = 49B40281 T32 = 8D2A4C8A T48 = C4AC5665 T64 = EB86D391

Trang 17

Các tác vụ [abcd k s i] trong mỗi vòng là:

 Phép toán and (&): and các bít của hai toán hạng 32 bít với nhau

 Phép toán or (|): or các bít của hai toán hạng 32 bít với nhau

 Phép toán xor (^): xor các bít của hai toán hạng 32 bít với nhau

Vòng 4 Vòng 3

Vòng 1 Vòng 2

Trang 18

 Phép toán cộng (+): cộng modulo 232 hai toán hạng 32 bít với nhau.

 Phép toán dịch trái vòng (w << s): dịch trái vòng w (32 bít) với s bít

o Bước 4: xuất (output) Tất cả khối 512 bít L đã được xử lý thì đầu ra ở giai

 MD: giá trị message_digest cuối cùng

III Thuật toán mã hóa khóa công khai RSA

Trong mật mã học, RSA là một thuật toán mã hóa khóa công cộng Đây là

thuật toán đầu tiên phù hợp với việc tạo ra chữ ký điện tử đồng thời với việc mãhóa Nó đánh dấu một sự tiến bộ vượt bậc của lĩnh vực mật mã học trong việc sửdụng khóa công cộng RSA đang được sử dụng phổ biến trong thương mại điện tử

và được cho là đảm bảo an toàn với điều kiện độ dài khóa đủ lớn

Trang 19

III.1 Lịch sử ra đời

- Khi phương pháp mã khóa công khai chưa ra đời, người ta sử dụng hầu nhưcùng một 'chìa khóa' để mã hóa cũng như giải mã chung cho cả người gửi vàngười nhận thông tin (hệ mã đối xứng) Với hệ mã này, một trong những khókhăn lớn của ngành an ninh và mã hóa lúc đó là làm sao gửi an toàn chìa khóa

bí mật trên các kênh truyền tin công khai có nhiều người tham gia

Hình 6: Ba nhà khoa học Shamir, Rivest và Adleman

Truyền Thông Chính Phủ Anh Quốc (GCHQ) đã nảy ra ý tưởng đặc sắc rằng,nếu người nhận tin đưa một nhiễu nào đó lên đường truyền công khai mà chỉriêng anh ta biết cách khử nhiễu, thì mọi thông tin mật gửi đến cho anh ta đều

có thể đưa lên kênh truyền tin công khai đó Những người khác, dù bắt được tínhiệu cũng không thể nào giải mã được tin mật

'hàm một chiều' (xem phụ lục) Theo đó, chỉ có thể tìm hàm ngược nếu biếtthông tin nào đó, giống như khôi phục tín hiệu khi biết cái nhiễu do mình tạo ra.Nhưng ông không thực hiện được điều này, do không biết liệu hàm một chiều

có tồn tại hay không

- Bốn năm sau Clifford Cocks- một nhân viên mới của GCHQ- đượcPatterson, thầy hướng dẫn, kể cho nghe ý tưởng độc đáo của James Ellis và ông

đã tìm ra hàm một chiều cần thiết chỉ trong vòng nửa giờ: đó chính là phép

Trang 20

nhân! Nhân hai số nguyên tố lớn bao nhiêu cũng được là điều hết sức dễ dàng,nhưng khi biết tích của chúng, để tìm lại các thừa số thì ta cần phân tích số đãcho ra thừa số nguyên tố Điều này hầu như không thể làm được với các số đủlớn hật vậy, để phân tích n (=p*q) ra thừa số nguyên tố, cần chia lần lượt n chocác số nguyên tố nhỏ hơn Theo một định lý nổi tiếng trong số học, có khoảng(n/log n) số nguyên tố bé hơn n Nếu n có khoảng 300 chữ số thì sẽ phải làmkhoảng 10150/300 phép chia (Nếu dùng máy tính tốc độ 1 tỷ phép tính/giây, ta

sẽ mất chừng tỷ tỷ tỷ năm để phân tích số n!) Như vậy, hàm số thiết lập sựtương ứng giữa hai số p, q với tích n=pq chính là hàm một chiều Giải pháp thậtđơn giản và Cocks cũng không tự cảm nhận được đầy đủ ý nghĩa của kết quảđạt được Kết quả của Cocks được giữ tuyệt mật Nó có sức thuyết phục lớntrong nội bộ GCHQ Nhưng phương tiện tính toán thời đó không cho phép triểnkhai thuật toán Năm 1978, kết quả của Cocks được Rivest, Shamir và Adlemanphát minh lại! Đó chính là cuộc cách mạng trong lĩnh vực mật mã, cuộc cáchmạng mang tên RSA (ghép chữ đầu tên của ba nhà khoa học trên)

III.2 Mô tả sơ lược

- 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 trong quá

trình mã hóa và giải mã Khóa công khai được công bố rộng rãi cho mọi người

và được dùng để mã hóa Những thông tin được mã hóa bằng khóa công khaichỉ có thể được giải mã bằng khóa bí mật tương ứng Nói cách 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 mới có thể giải mãđược

muốn duy nhất Alice có thể đọc được Để làm được điều này, Alice gửi choBob một chiếc hộp có khóa đã mở và 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 (lúc này ngay cả Bob

cũng không thể đọc lại hay sửa thông tin trong thư được nữa) Sau đó Bob gửi

chiếc hộ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ông khai,chiếc chìa khóa chính là khóa bí mật

Trang 21

III.3 Thuật toán RSA

o Giả sử Alice và Bob cần trao đổi thông tin bí mật thông qua một kênh

không an toàn (ví dụ như Internet) Với thuật toán RSA, Alice đầu tiên cần tạo

ra cho mình cặp khóa gồm khóa công khai và khóa bí mật theo các bước sau:

1 Chọn 2 số nguyên tố lớn p và q với p≠q, lựa chọn ngẫu nhiên và độc

o Alice gửi khóa công khai cho Bob, và giữ bí mật khóa cá nhân của mình Ở

đây, p và q giữ vai trò rất quan trọng Chúng là các phân tố của n và cho phép tính d khi biết e Nếu không sử dụng dạng sau của khóa bí mật (dạng CRT) thì

p và q sẽ được xóa ngay sau khi thực hiện xong quá trình tạo khóa.

- Lúc này Bob có m và biết n cũng như e do Alice gửi Bob sẽ tính c là bản

mã hóa của m theo công thức:

Ngày đăng: 23/05/2015, 10:16

HÌNH ẢNH LIÊN QUAN

Hình 3:  Tạo message_digest sử dụng MD5. - Tiểu luận môn toán học cho khoa học máy tính  TÌM HIỂU CHỮ KÝ ĐIỆN TỬ XÂY DỰNG ỨNG DỤNG MÔ PHỎNG CHỮ KÝ ĐIỆN TỬ
Hình 3 Tạo message_digest sử dụng MD5 (Trang 13)
Hình 4: Xử lý MD5 của khối đơn 512 bít (HDMD5). - Tiểu luận môn toán học cho khoa học máy tính  TÌM HIỂU CHỮ KÝ ĐIỆN TỬ XÂY DỰNG ỨNG DỤNG MÔ PHỎNG CHỮ KÝ ĐIỆN TỬ
Hình 4 Xử lý MD5 của khối đơn 512 bít (HDMD5) (Trang 15)
Hình 5: Tác vụ của MD5: [abcd  k  s  i] - Tiểu luận môn toán học cho khoa học máy tính  TÌM HIỂU CHỮ KÝ ĐIỆN TỬ XÂY DỰNG ỨNG DỤNG MÔ PHỎNG CHỮ KÝ ĐIỆN TỬ
Hình 5 Tác vụ của MD5: [abcd k s i] (Trang 16)
Bảng T được xây dựng từ hàm sin - Tiểu luận môn toán học cho khoa học máy tính  TÌM HIỂU CHỮ KÝ ĐIỆN TỬ XÂY DỰNG ỨNG DỤNG MÔ PHỎNG CHỮ KÝ ĐIỆN TỬ
ng T được xây dựng từ hàm sin (Trang 17)
Hình 6:  Ba nhà khoa học Shamir, Rivest và Adleman - Tiểu luận môn toán học cho khoa học máy tính  TÌM HIỂU CHỮ KÝ ĐIỆN TỬ XÂY DỰNG ỨNG DỤNG MÔ PHỎNG CHỮ KÝ ĐIỆN TỬ
Hình 6 Ba nhà khoa học Shamir, Rivest và Adleman (Trang 20)
Hình 7: Mô hình chữ ký điện tử - Tiểu luận môn toán học cho khoa học máy tính  TÌM HIỂU CHỮ KÝ ĐIỆN TỬ XÂY DỰNG ỨNG DỤNG MÔ PHỎNG CHỮ KÝ ĐIỆN TỬ
Hình 7 Mô hình chữ ký điện tử (Trang 29)
Hình 1: Quá trình ký trong message - Tiểu luận môn toán học cho khoa học máy tính  TÌM HIỂU CHỮ KÝ ĐIỆN TỬ XÂY DỰNG ỨNG DỤNG MÔ PHỎNG CHỮ KÝ ĐIỆN TỬ
Hình 1 Quá trình ký trong message (Trang 33)
Hình 92: Quá trình kiểm tra xác nhận chữ ký trên tài liệu - Tiểu luận môn toán học cho khoa học máy tính  TÌM HIỂU CHỮ KÝ ĐIỆN TỬ XÂY DỰNG ỨNG DỤNG MÔ PHỎNG CHỮ KÝ ĐIỆN TỬ
Hình 92 Quá trình kiểm tra xác nhận chữ ký trên tài liệu (Trang 35)
Hình 3: Quá trình làm việc của một Digital Signature - Tiểu luận môn toán học cho khoa học máy tính  TÌM HIỂU CHỮ KÝ ĐIỆN TỬ XÂY DỰNG ỨNG DỤNG MÔ PHỎNG CHỮ KÝ ĐIỆN TỬ
Hình 3 Quá trình làm việc của một Digital Signature (Trang 36)
Hình 11: Mô hình tạo chữ ký điện tử - Tiểu luận môn toán học cho khoa học máy tính  TÌM HIỂU CHỮ KÝ ĐIỆN TỬ XÂY DỰNG ỨNG DỤNG MÔ PHỎNG CHỮ KÝ ĐIỆN TỬ
Hình 11 Mô hình tạo chữ ký điện tử (Trang 37)
Hình 14: Giao diện ứng dụng kiểm tra tính hợp lệ của chữ ký điện tử - Tiểu luận môn toán học cho khoa học máy tính  TÌM HIỂU CHỮ KÝ ĐIỆN TỬ XÂY DỰNG ỨNG DỤNG MÔ PHỎNG CHỮ KÝ ĐIỆN TỬ
Hình 14 Giao diện ứng dụng kiểm tra tính hợp lệ của chữ ký điện tử (Trang 39)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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