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

TRƢỜNG ĐẠI HỌC CNTT & TT

NÔNG THỊ LỆ QUYÊN

TÌM HIỂU MỘT SỐ SƠ ĐỒ THỎA THUẬN

KHÓA BÍ MẬT VÀ ỨNG DỤNG TRONG

THANH TOÁN ĐIỆN TỬ

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

Thái Nguyên - 2015

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

TRƢỜNG ĐẠI HỌC CNTT&TT

NÔNG THỊ LỆ QUYÊN

TÌM HIỂU MỘT SỐ SƠ ĐỒ THỎA THUẬN

KHÓA BÍ MẬT VÀ ỨNG DỤNG TRONG

THANH TOÁN ĐIỆN TỬ

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

Mã số chuyên ngành: 60.48.01

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

NGƯỜI HƯỚNG DẪN KHOA HỌC

PGS.TS TRỊNH NHẬT TIẾN

Công trình đƣợc hoàn thành tại:

Trƣờng ĐH Công nghệ thông tin và Truyền thông – ĐH Thái Nguyên

Người hướng dẫn khoa học: PGS.TS Trịnh Nhật Tiến

Phản biện 1:

Phản biện 2:

Luận văn sẽ được bảo vệ trước hội đồng chấm luận văn họp tại:

...................................................................................................

Vào hồi ..... giờ ... ...ngày ..... tháng năm 2015

i

LỜI CAM ĐOAN

Tôi xin cam đoan luận văn này của tự bản thân tôi tìm hiểu, nghiên cứu

dưới sự hướng dẫn của PGS.TS Trịnh Nhật Tiến. Các chương trình thực nghiệm

do chính bản thân tôi lập trình, các kết quả là hoàn toàn trung thực. Các tài

liệu tham khảo được trích dẫn và chú thích đầy đủ.

TÁC GIẢ LUẬN VĂN

Nông Thị Lệ Quyên

ii

LỜI CẢM ƠN

Tôi xin bày tỏ lời cảm ơn chân thành tới tập thể các thầy cô giáo Viện

công nghệ thông tin – Viện Hàn lâm Khoa học và Công nghệ Việt Nam, các

thầy cô giáo Trường Đại học Công nghệ thông tin và truyền thông - Đại học Thái

Nguyên đã dạy dỗ chúng em trong suốt quá trình học tập chương trình cao học

tại trường.

Đặc biệt em xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo PGS.TS Trịnh

Nhật Tiến, Trường Đại học Công nghệ – Đại học Quốc gia Hà Nội đã quan

tâm, định hướng và đưa ra những góp ý, gợi ý, chỉnh sửa quí báu cho em trong

quá trình làm luận văn tốt nghiệp.

Cuối cùng, em xin chân thành cảm ơn các bạn bè đồng nghiệp, gia đình

và người thân đã quan tâm, giúp đỡ và chia sẻ với em trong suốt quá trình làm

luận văn tốt nghiệp.

Thái Nguyên, ngày tháng năm 20

HỌC VIÊN

Nông Thị Lệ Quyên

iii

MỤC LỤC

LỜI CAM ĐOAN ................................................................................................................. I

LỜI CẢM ƠN ...................................................................................................................... II

MỤC LỤC ......................................................................................................................... III

DANH MỤC CÁC HÌNH VẼ ............................................................................................ V

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

MỞ ĐẦU ............................................................................................................................... 1

CHƢƠNG 1. CÁC KHÁI NIỆM CƠ BẢN ...................................................................... 3

1.1. VẤN ĐỀ MÃ HÓA .................................................................................................... 3 1.1.1. Mã hóa khóa đối xứng (mã hóa khóa riêng) ....................................................... 6 1.1.2. Mã hóa khóa bất đối xứng (mã hóa khóa công khai) ....................................... 14 1.2. VẤN ĐỀ VỀ CHỮ KÍ ĐIỆN TỬ ............................................................................ 16 1.2.1. Chữ kí điện tử ................................................................................................... 17 1.2.2. Chữ kí số ........................................................................................................... 17 1.3. VẤN ĐỀ QUẢN LÍ KHÓA .................................................................................... 25 1.3.1. Khóa và một số khái niệm ................................................................................ 25 1.3.2. Vấn đề quản lí khóa bí mật ............................................................................... 26 1.3.3. Vấn đề quản lí khóa công khai ......................................................................... 27

CHƢƠNG 2. MỘT SỐ SƠ ĐỒ THỎA THUẬN KHÓA BÍ MẬT ................................ 29

2.1. THỎA THUẬN KHÓA BÍ MẬT BẰNG CÁCH GỬI KHÓA BÍ MẬT ............. 29 2.2. THỎA THUẬN KHÓA BÍ MẬT BẰNG CÁCH KHÔNG GỬI KHÓA ............ 29 2.2.1.Sơ đồ thỏa thuận khóa Blom ............................................................................. 30 2.2.2. Sơ đồ thỏa thuận khóa Diffie – Hellman .......................................................... 33 2.2.3. Sơ đồ thỏa thuận khóa “Trạm tới Trạm” .......................................................... 36 2.2.4. Sơ đồ thỏa thuận khóa MTI .............................................................................. 41

2.3. THỎA THUẬN KHÓA BÍ MẬT BẰNG CÁCH CHIA SẺ KHÓA THÀNH NHIỀU MẢNH .............................................................................................................. 43

CHƢƠNG 3. ỨNG DỤNG TRONG “THANH TOÁN ĐIỆN TỬ” .............................. 47

3.1. THANH TOÁN ĐIỆN TỬ LÀ GÌ. ......................................................................... 47 3.2. CÁC MÔ HÌNH THANH TOÁN ĐIỆN TỬ ......................................................... 47 3.2.1. Các mô hình thanh toán điện tử ........................................................................ 47 3.2.2. Rủi ro về an toàn thông tin trong thanh toán điện tử ........................................ 49 3.2. BÀI TOÁN: THỎA THUẬN KHÓA BÍ MẬT ĐỂ THỰC HIỆN VIỆC MÃ HÓA SỬ DỤNG TRONG THANH TOÁN ĐIỆN TỬ .......................................................... 53 3.2.1. Bài toán: Bảo mật hợp đồng thanh toán điện tử ............................................... 53 3.2.2. Bài toán: Bảo toàn hợp đồng thanh toán điện tử .............................................. 54

iv

3.2.3. Bài toán: Xác thực hợp đồng thanh toán điện tử .............................................. 55 3.2.4. Bài toán: Phòng tránh chối cãi hợp đồng thanh toán ........................................ 55

3.3. GIẢI QUYẾT BÀI TOÁN THỎA THUẬN KHÓA BÍ MẬT ĐỂ THỰC HIỆN VIỆC MÃ HÓA SỬ DỤNG TRONG THANH TOÁN ĐIỆN TỬ .............................. 56 3.3.1. Giải quyết bài toán: Bảo mật hợp đồng thanh toán điện tử .............................. 56 3.3.2. Giải quyết bài toán bảo toàn hợp đồng trong thanh toán điện tử ..................... 56 3.3.3. Giải quyết bài toán: Xác thực hợp đồng thanh toán điện tử ............................. 58 3.3.4. Giải quyết bài toán: Phòng tránh chối cãi hợp đồng thanh toán ..................... 599 3.4. CHƢƠNG TRÌNH THỬ NGHIỆM ...................................................................... 59 3.4.1. Thỏa thuận khóa ............................................................................................... 59 3.4.2. Mã hóa bản hợp đồng điện tử bằn hệ mã hóa DES .......................................... 61 3.4.3. Tạo chữ ký số bằng chữ ký số RSA ................................................................. 62

KẾT LUẬN ......................................................................................................................... 63

TÀI LIỆU THAM KHẢO ................................................................................................. 64

v

DANH MỤC CÁC HÌNH VẼ

TT Hình vẽ Trang

1 Hình 1.1: Sơ đồ mã hóa dữ liệu 4

2 Hình 1.2: Sơ đồ hoạt động của mã hóa khóa đối xứng 6

3 Hình 1.3: Quy trình mã hóa của hệ mã hóa DES 7

4 Hình 1.4: Quy trình lập mã DES 8

5 Hình 3.3: Sơ đồ tính khóa con trong hệ mã hóa DES 10

trong hệ mã hóa DES 6 Hình 1.5: Sơ đồ tính hàm 12

7 Hình 1.6: Sơ đồ hoạt động của mã hóa khóa bất đối xứng 14

8 Hình 1.7: Sơ đồ mã hóa dữ liệu của hệ mã hóa khóa công khai RSA 16

9 Hình 1.8: Sơ đồ giải mã dữ liệu của hệ mã hóa khóa công khai RSA 16

10 Hình 2.1: Thỏa thuận khóa Diffie – Hellman 34

11 Hình 2.2: Kẻ xâm nhập giữa cuộc trong giao thức Diffie-Hellman 35

12 Hình 2.3: Thỏa thuận khóa trạm tới trạm 37

13 Hình 2.4: Giao thức trạm tới trạm có sự xâm nhập giữa đường 38

14 Hình 2.5: Sơ đồ thỏa thuận khóa MTI 41

15 Hình 2.6: Giao thức MTI có sự xâm nhập giữa đường 42

vi

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

STT TỪ VIẾT TẮT Ý NGHĨA

1 TMĐT Thương mại điện tử

3 CA Certification Authority

4 STS Station To Station

5 MTI Matsumoto, Takashima, Imai

1

MỞ ĐẦU

Khi nhu cầu trao đổi thông tin dữ liệu qua mạng Internet ngày càng lớn và đa

dạng, các tiến bộ về điện tử - viễn thông và công nghệ thông tin không ngừng được

phát triển ứng dụng để nâng cao chất lượng và lưu lượng truyền tin thì các quan

niệm ý tưởng và biện pháp bảo vệ thông tin dữ liệu cũng được đổi mới. Bảo vệ an

toàn thông tin dữ liệu là một chủ đề rộng, có liên quan đến nhiều lĩnh vực và trong

thực tế có thể có rất nhiều phương pháp được thực hiện để bảo vệ an toàn thông tin

dữ liệu:

+ Bảo vệ an toàn thông tin bằng các biện pháp hành chính.

+ Bảo vệ an toàn thông tin bằng các biện pháp kỹ thuật (phần cứng).

+ Bảo vệ an toàn thông tin bằng các biện pháp thuật toán (phần mềm).

Ba nhóm trên có thể được ứng dụng riêng rẽ hoặc phối kết hợp. Các thông

tin dữ liệu nằm ở kho dữ liệu hay đang trên đường truyền đều cần được bảo vệ, tuy

nhiên môi trường khó bảo vệ an toàn thông tin nhất và cũng là môi trường đối

phương dễ xâm nhập nhất đó là môi trường mạng và quá trình truyền tin.

“Mật mã” có lẽ là một kỹ thuật được dùng lâu đời nhất trong việc đảm bảo

“An toàn thông tin”. Trước đây “mật mã” chỉ được dùng trong ngành an ninh quốc

phòng, ngày nay việc đảm bảo “An toàn thông tin” là nhu cầu của mọi ngành, mọi

người (do các thông tin chủ yếu được truyền trên mạng công khai), vì vậy kỹ thuật

“mật mã” là công khai cho mọi người dùng. Điều bí mật nằm ở “khóa” của mật mã.

Vì vậy với bất kì hệ mã hóa nào người ta cần phải quản lí tốt “khóa”.

Hiện nay có hai loại hệ mã hóa chính: mã hóa khóa đối xứng (hệ mã hóa

khóa riêng) và mã hóa khóa bất đối xứng (mã hóa khóa công khai). Với hệ mã khóa

đối xứng, nếu biết được khóa này thì “dễ” tính được khóa kia và ngược lại. Hệ mã

khóa công khai có ưu điểm hơn hệ mã khóa đối xứng ở chỗ: có thể công khai thuật

toán mã hóa và khóa mã hóa (khóa công khai) cho nhiều người sử dụng, và cần phải

quản lí tốt khóa công khai.

2

Do đó việc sử dụng hệ mã hóa khóa công khai cho cặp người dùng thỏa

thuận khóa bí mật của hệ mã khóa riêng sẽ làm cho hệ mã khóa riêng trở nên an

toàn vì khi đó ta chỉ thỏa thuận cách tính khóa trên mạng chứ không truyền khóa

trên mạng, thuật toán mã hóa và giải mã sẽ nhanh hơn.

Được sự gợi ý của giáo viên hướng dẫn và nhận thấy tính thiết thực của vấn

đề, em đã chọn đề tài “Tìm hiểu một số sơ đồ thỏa thuận khóa bí mật và ứng

dụng trong thanh toán điện tử” để làm nội dung cho luận văn tốt nghiệp của

mình.

Luận văn này tập trung vào tìm hiểu cơ sở lý thuyết toán học và một số kỹ

thuật mật mã để thực hiện thỏa thuận khóa bí mật của hệ mã khóa riêng, sau đó áp

dụng giải quyết một số bài toán về an toàn thông tin trong “Thanh toán điện tử”.

Nội dung chính của luận văn gồm có ba chương

Chƣơng 1: Các khái niệm cơ bản

Trong chương này luận văn trình bày các kiến thức cơ bản về mã hóa, vấn đề

chữ kí số, vấn đề quản lí khóa.

Chƣơng 2: Một số sơ đồ thỏa thuận khóa bí mật

Nội dung chương 2 trình bày về vấn đề thỏa thuận khóa bí mật và một số sơ

đồ thỏa thuận khóa bí mật

Chƣơng 3: Ứng dụng trong thanh toán điện tử

Nội dung chương 3 tập trung và trình bày một số bài toán ứng dụng thỏa thuận

khóa bí mật trong thanh toán điện tử và xây dựng chương trình kiểm thử cho bài

toán “Bảo toàn hợp đồng thanh toán điện tử”, chương trình kiểm thử được viết bằng

ngôn ngữ lập trình java.

3

CHƢƠNG 1. CÁC KHÁI NIỆM CƠ BẢN

1.1. VẤN ĐỀ MÃ HÓA

Mã hoá là phần rất quan trọng trong vấn đề bảo mật. Mã hoá ngoài nhiệm vụ

chính là làm cho tài liệu an toàn hơn, nó còn có một lợi ích quan trọng là: thay vì

truyền đi tài liệu thô (không được mã hoá) trên một đường truyền đặc biệt, được

canh phòng cẩn mật không cho người nào có thể “xâm nhập” vào lấy dữ liệu, người

ta có thể truyền một tài liệu đã được mã hoá trên bất cứ đường truyền nào mà không

lo dữ liệu bị đánh cắp vì nếu dữ liệu có bị đánh cắp đi nữa thì dữ liệu đó cũng không

dùng được.

Theo nghĩa hẹp thì “mật mã” chủ yếu dùng để bảo mật dữ liệu, người ta quan

niệm “Mật mã học” là khoa học nghiên cứu mật mã bao gồm tạo mã và phân tích

mã (là kỹ thuật, nghệ thuật phân tích mật mã, kiểm tra tính bảo mật của nó hoặc

phá vỡ sự bí mật của nó).

Theo nghĩa rộng, “mật mã” là một trong những công cụ hiệu quả đảm bảo an

toàn thông tin nói chung: bảo mật, bảo toàn, xác thực, chống chối cãi,…

Một số khái niệm liên quan:

Thuật toán mã hoá/ giải mã [3]: là thuật toán dùng để chuyển thông tin thành

dữ liệu mã hoá hoặc ngược lại. Thuật toán mã hóa/ giải mã là công khai.

Khoá [3]: là thông tin mà thuật toán mã hóa/ giải mã sử dụng để mã hóa/ giải

mã thông tin. Mỗi khi một thông tin đã được mã hoá thì chỉ có những người có

khoá thích hợp mới có thể giải mã. Nếu không thì dù dùng cùng một thuật toán giải

mã nhưng cũng không thể phục hồi lại thông tin ban đầu. Đây là đặc điểm quan

trọng của khoá: mã hoá chỉ phụ thuộc vào khoá mà không phụ thuộc vào thuật toán

mã hóa/ giải mã. Điều này giúp cho một thuật toán mã hóa/ giải mã có thể được sử

dụng rộng rãi.

4

Hệ mã hóa [3]: Việc mã hóa phải theo quy tắc nhất định, quy tắc đó gọi là hệ

mã hóa. Hệ mã hóa được định nghĩa là bộ năm , trong đó:

là tập hữu hạn các bản rõ có thể

là tập hữu hạn các bảm mã có thể

là tập hữu hạn các khóa

là tập các hàm lập mã

là tập các hàm giải mã

Với khóa lập mã , có hàm lập mã

Với khóa giải mã , có hàm giải mã

Sao cho với mọi

Ở đây được gọi là bản rõ, được gọi là bản mã

Sơ đồ mã hóa và giải mã dữ liệu:

x

x

Hình 1.1: Sơ đồ mã hóa dữ liệu

Trong sơ đồ này, người gửi G có khóa lập mã , người nhận N có khóa giải

Người gửi G muốn gửi bản tin cho người nhận N. Để đảm bảo bí mật, G

mã hóa bản tin bằng khóa lập mã được bản mã C và gửi C cho N. Tin tặc có

thể bắt chặn giữa đường lấy bản mã C, nhưng cũng “khó” hiểu được bản tin gốc

vì không có khóa giải mã .

Người nhận N nhận được bản mã C, họ dùng khóa giải mã để giải mã C sẽ

nhận được bản tin gốc

5

Với hình thức khá phổ biến hiện nay là truyền tin qua thư điện tử và không sử

dụng các công cụ mã hoá, bảo mật cũng như chữ ký điện tử thì các tình huống sau

có thể xảy ra:

- Không chỉ nguời nhận mà người khác cũng có thể đọc được thông tin.

- Thông tin mà ta nhận được có thể không phải là của người gửi đúng đắn.

- Thông tin nhận được đã bị người thứ ba sửa đổi.

- Bị nghe/xem trộm: thông tin được truyền đi trên đường truyền có thể bị ai đó

“xâm nhập” vào lấy ra, tuy nhiên vẫn đến được người nhận mà không bị thay đổi.

- Bị thay đổi: thông tin bị chặn lại ở một nơi nào đó trên đường truyền và

bị thay đổi. Sau đó thông tin đã bị thay đổi này được truyền tới cho người nhận như

không có chuyện gì xảy ra.

- Bị lấy cắp: thông tin bị lấy ra nhưng hoàn toàn không đến được người nhận.

Để giải quyết vấn đề này, thông tin trước khi truyền đi sẽ được mã hoá và khi

tới người nhận, nó sẽ được giải mã trở lại.

Để đảm bảo rằng chỉ người cần nhận có thể đọc được thông tin mà ta gửi khi

biết rằng trên đường đi, nội dung thông tin có thể bị theo dõi và đọc trộm, người ta

sử dụng các thuật toán đặc biệt để mã hoá thông tin. Trong trường hợp này, trước

khi thông tin được gửi đi, chúng sẽ được mã hoá lại và kết quả là ta nhận được một

nội dung thông tin “không có ý nghĩa”.

Khi thông điệp bị theo dõi hoặc bị bắt giữ trên đường đi, để hiểu được thông

tin của thông điệp, kẻ tấn công phải làm một việc đó là giải mã nó.

Thuật toán mã hoá càng tốt thì chi phí cho giải mã đối với kẻ tấn công càng

cao. Khi chi phí giải mã cao hơn giá trị thông tin thì coi như đã thành công

trong vấn đề bảo mật.

Các thuật toán mã hoá thông tin khá đa dạng nhưng có thể chia ra làm hai

hướng chính là mã hóa với khóa đối xứng và mã hóa với khóa bất đối xứng.

6

1.1.1. Mã hóa khóa đối xứng (mã hóa khóa riêng)

Hệ mã hóa khóa đối xứng là hệ mã hóa có khóa lập mã và khóa giải mã là

“giống nhau”, theo nghĩa biết được khóa này thì “dễ” tính được khóa kia. Vì vậy

phải giữ bí mật cả hai khóa. Đặc biệt có một số hệ mã hóa có khóa lập mã và khóa

giải mã trùng nhau ( ), như hệ mã hóa “dịch chuyển” hay DES.

Khóa K Khóa K

Bản rõ Mã hóa Bản mã Giải mã Bản rõ

Hình 1.2: Sơ đồ hoạt động của mã hóa khóa đối xứng

1.1.1.1. Ưu điểm

- Tốc độ mã hóa/ giải mã nhanh. Đây là ưu điểm nổi bật của mã hóa khóa đối xứng.

- Sử dụng đơn giản: dùng một khoá cho cả 2 bước mã và giải mã.

1.1.1.2. Nhược điểm:

- Đòi hỏi khoá phải được 2 bên gửi/ nhận trao tận tay nhau vì không thể truyền

khoá này trên đường truyền mà không được bảo vệ. Điều này làm cho việc sử dụng

khoá trở nên không thực tế.

- Không an toàn: càng nhiều người biết khoá thì độ rủi ro càng cao.

- Trong trường hợp khoá mã hoá thay đổi, cần thay đổi đồng thời ở cả người gửi và

người nhận, khi đó rất khó có thể đảm bảo được là chính bản thân khoá không

bị đánh cắp trên đường đi.

- Không xây dựng được các dịch vụ về chữ kí điện tử, hay thanh toán điện tử.

1.1.1.3. Nơi sử dụng hệ mã khóa đối xứng

Hệ mã khóa đối xứng thường được sử dụng trong môi trường mà khóa chung

có thể dễ dàng trao chuyển bí mật, chẳng hạn trong cùng một mạng nội bộ. Hệ mã

hóa khóa đối xứng thường dùng để mã hóa những bản tin lớn, vì tốc độ mã hóa và

giải mã nhanh hơn hệ mã hóa khóa công khai.

7

1.1.1.4. Một số thuật toán mã hoá khóa đối xứng

- Hệ mã hóa cổ điển là hệ mã khóa đối xứng: dễ hiểu, dễ thực thi nhưng độ an

toàn không cao. Vì giới hạn tính toán chỉ nằm trong bảng chữ cái, sử dụng trong bản

tin cần mã hóa, ví dụ là nếu dùng các chữ cái tiếng Anh. Với hệ mã hóa cổ

điển, nếu biết khóa lập mã hay thuật toán lập mã, có thể “dễ” xác định được bản rõ,

vì “dễ” tìm được khóa giải mã.

Hệ mã hóa DES (1973) là hệ mã hóa khóa đối xứng hiện đại, có độ an toàn -

cao

RC2, RC4, RC5: Độ dài khoá có thể lên tới 2048 bit. -

IDEA (International Data Encryption Algorithm): Khóa có độ dài 128 bit, -

thường dùng trong các chương trình email.

Blowfish: Khóa có độ dài 448 bit. -

1.1.1.5/ Mã hóa DES

Mã hóa bản thanh toán hợp đồng điện tử (vì bản hợp đồng điện tử thường dài

nên không thể mã hóa bằng RSA)

Bản rõ số, dạng nhị phân

Các đoạn 64 bit rõ số

+ Quy trình mã hóa bằng hệ mã hóa DES: Bản rõ chữ (1) (2)

(3)

Bản mã số Hình 1.3. Quy trình mã hóa của hệ mã hóa DES

(5) (4) Bản mã chữ Các đoạn 64 bit mã số

8

* Quy trình lập mã DES

Bản rõ: 64 bit

f

f

f

Hình 1.4.

Quy trình lập mã DES Bản mã: 64 bit

9

- Thực hiện mã hóa DES theo sơ đồ + Bản rõ là xâu , bản mã là xâu , khóa là xâu , đều có độ dài 64 bit

+ Thuật toán mã hóa DES thực hiện qua ba bước chính như sau:

Bước 1: Bản rõ x được hoán vị theo phép hoán vị thành .

, trong đó là 32 bit đầu (Left), là 32 bit cuối (Right). (

tách thành )

Bước 2: Thực hiện 16 vòng mã hóa với những phép toán giống nhau. Dữ liệu được

kết hợp với khóa thông qua hàm :

Trong đó là phép toán hoặc loại trừ của hai xâu bit (cộng theo module 2).

là các khóa con (48 bit) được tính từ khóa gốc

Bước 3: Thực hiện phép hoán vị ngược cho xâu , thu được bản mã .

.

1/ Bảng hoán vị ban đầu

Bit 1 của là bit 58 của 58 50 42 34 26 18 10 2

Bit 2 của là bit 50 của 60 52 44 36 28 20 12 4

62 54 46 38 30 22 14 6

64 58 48 40 32 24 16 8

57 49 41 33 25 17 9 1

59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5

63 55 47 39 31 23 15 7

2/ Bảng hoán vị cuối cùng

40 8 39 7 38 6 48 16 56 24 64 32 47 15 55 23 63 31 46 14 54 22 62 30

37 5 36 4 35 3 34 2 33 1 45 13 53 21 61 29 44 12 52 20 60 28 43 11 51 19 59 27 42 10 50 18 58 26 49 17 57 25 41 9

10

3/ Tính khóa con từ khóa gốc

………………………

Hình 1.5. Sơ đồ tính khóa con trong hệ mã hóa DES

Khóa là xâu dài 64 bit, trong đó 56 bit là khóa, 8 bit để kiểm tra tính chẵn

lẻ nhằm phát hiện sai, các bit này không tham gia vào quá trình tính toán.

11

Các bit kiểm tra tính chẵn lẻ nằm ở vị trí 8, 16, 24,…, 64 được xác định sao

cho mỗi byte chứa một số lẻ các số 1. Bởi vậy mỗi sai sót đơn lẻ được xác định

trong mỗi nhóm 8 bit

4/ Tính khóa như sau:

Với khóa độ dài 64 bit, ta loại bỏ các bit kiểm tra tính chẵn lẻ, hoán vị 56

bit còn lại theo phép hoán vị : , trong đó là 28 bit đầu,

là 28 bit cuối của

Với ta tính , trong đó là phép

chuyển vị vòng sang trái: dịch 1 vị trí nếu , dịch 2 vị trí với những vị trí

khác.

Với , khóa được tính theo phép hoán vị từ

(48 bit)

:

Phép hoán vị 57 49 41 33 25 17 9 : Phép hoán vị 14 17 11 24 1 5

1 58 50 42 34 26 18 3 28 15 6 21 10

10 2 59 51 43 35 27 23 19 12 4 26 8

19 11 3 60 52 44 36 16 7 27 20 13 2

63 55 47 39 31 23 15 41 52 31 37 47 55

7 62 54 46 38 30 22 30 40 51 45 33 48

14 6 61 53 45 37 29 44 49 39 56 34 53

21 13 5 28 20 12 4 46 42 50 36 29 32

21 13 5 28 20 12 4

12

5/ Tính hàm :

Hình 1.6. Sơ đồ tính hàm trong hệ mã hóa DES

13

- Mở rộng xâu (32 bit) thành xâu 48 bit, theo hàm mở rộng

. gồm 32 bit cũ của và 16 bit

xuất hiện lần thứ hai.

- Tính trong đó (48 bit) và (48 bit)

Kết quả gồm 8 xâu mỗi xâu có 6 bit ( ):

Tính (3) . Dùng 8 bảng

là bảng cố định với số nguyên từ

thể hiện thay thế mỗi thành ( là xâu 4 bit) theo quy tắc:

- Giả sử (6 bit)

xác định biểu diễn nhị phân của hàng trong

xác định biểu diễn nhị phân cột trong

Xâu (4 bit) được định nghĩa là biểu diễn nhị phân của phần tử

Thực hiện 8 lần (3), ta nhận được xâu (32 bit)

Sau hoán vị cho kết quả , đó chính là hàm

Phép hoán vị : Phép hoán vị mở rộng :

16 7 20 21 29 12 28 17 32 1 2 3 4 5

15 23 26 5 18 31 10 1 4 5 6 7 8 9

8 24 14 32 27 3 9 2 8 9 10 11 12 13

12 13 14 15 16 17 19 13 30 6 22 11 4 25

16 17 18 19 20 21

20 21 22 23 24 25 24 25 26 27 28 29

28 29 30 31 32 1

+ Quy trình giải mã DES Quy trình giải mã DES tương tự như quy trình lập mã, nhưng dùng các khóa theo

thứ tự ngược lại:

14

1.1.2. Mã hóa khóa bất đối xứng (mã hóa khóa công khai)

Hệ mã hóa khóa bất đối xứng là hệ mã hóa có khóa lập mã và khóa giải mã

là khác nhau ( ), biết được khóa này cũng khó tính được khóa kia. Hệ mã này

còn được gọi là hệ mã hóa khóa công khai.

Khóa mã hóa Ke

Khóa giải mã Kd

Bản rõ

Mã hóa

Bản mã

Giải mã

Bản rõ

Khóa lập mã là khóa công khai. Khóa giải mã là khóa bí mật.

Hình 1.7: Sơ đồ hoạt động của mã hóa khóa bất đối xứng

1.1.2.1. Ưu điểm

Thuật toán được viết một lần, công khai cho nhiều lần dùng, cho nhiều người

dùng, họ chỉ cần giữ bí mật khóa riêng của mình.

Đây là loại mã hoá được sử dụng chủ yếu trên Internet. Một người muốn sử

dụng loại mã hoá này cần tạo ra một cặp khoá công khai/ bí mật. A có thể

truyền khoá công khai của mình tới bất cứ ai muốn giao tiếp với A mà không sợ

người khác lấy khoá này. B sẽ mã hoá thông điệp của mình bằng khoá công khai đó

và gửi tới cho A. Dĩ nhiên là chỉ mình A với khoá bí mật của mình mới có thể giải

mã được thông điệp của B. Như vậy kẻ tấn công, cho dù có biết khoá công khai và

nội dung của thông tin đã bị mã hoá vẫn không thể giải mã được thông tin. Lý do

là tính ngược khoá bí mật từ khoá công khai là rất khó khăn, nếu không nói là

không thể. Điều này đạt được trên nguyên tắc sử dụng các hàm một chiều trong

toán học khi tính hàm y = f(x) là đơn giản nhưng ngược lại việc tính giá trị x khi

đã biết y là rất khó khăn.

Khi biết các tham số đầu vào của hệ mã, việc tính ra cặp khóa công khai và bí

mật là “dễ”, tức là trong thời gian đa thức.

15

1.1.2.2. Nhược điểm

Tốc độ mã hoá chậm: tốc độ mã hoá nhanh nhất của loại mã bất đối xứng

vẫn chậm hơn nhiều lần so với hệ mã khóa đối xứng. Do đó người ta thường kết

hợp 2 loại mã hoá để nâng cao tốc độ mã hoá.

1.1.2.3. Nơi sử dụng hệ mã hóa khóa bất đối xứng

Hệ mã hóa khóa bất đối xứng thường được sử dụng chủ yếu trên các mạng

công khai như Internet, khi mà việc trao chuyển khóa bí mật tương đối khó khăn.

Đặc trưng nổi bật của hệ mã hóa khóa bất đối xứng là khóa công khai

(public key) và bản mã (criphertext) đều có thể gửi đi trên một kênh truyền tin

không an toàn. Có biết cả khóa công khai và bản mã thì thám mã cũng không dễ để

khám phá được bản rõ.

1.1.2.4. Một số thuật toán mã hoá khóa bất đối xứng

RSA: Loại mã này được dùng nhiều nhất cho web và chương trình email. -

Độ dài khoá thông thường là từ 512 đến 1024 bit.

ElGamal: độ dài khóa từ 512 đến 1024 bit. -

1.1.2.5. Hệ mã hóa RSA [3]

+ Sinh khóa (bí mật, công khai):

Chọn là số nguyên tố lớn.

Tính , Đặt

Tính bí mật

Chọn khóa công khai b < Φ(n) và nguyên tố cùng nhau với Φ(n).

Khóa bí mật là nghịch đảo của theo modulo

Tập cặp khóa (bí mật, công khai)

công khai, bí mật.

16

+ Mã hóa

Input: bản rõ , khóa công khai

Khóa công

khai

Bản rõ

Bản mã

Output: bản mã y

Hình 1.8. Sơ đồ mã hóa dữ liệu của hệ mã hóa khóa công khai RSA

+ Giải mã

Khóa bí mật

Bản mã

Bản mã

Input: bản mã y, khóa bí mật Output: bản rõ x

Hình 1.9. Sơ đồ giải mã dữ liệu hệ mã hóa khóa công khai RSA

1.2. VẤN ĐỀ VỀ CHỮ KÍ ĐIỆN TỬ

Nếu việc sử dụng mật mã đã trở nên phổ biến, không chỉ trong quân đội mà

còn trong thương mại và những mục đích cá nhân thì những đoạn tin và tài liệu điện

tử sẽ cần những chữ ký giống như các tài liệu giấy nhằm chứng thực nguồn gốc hay

hiệu lực của một tài liệu.

Cũng giống như trong thực tế, chữ ký để xác nhận cho người nhận rằng bức

thư đó do người này gửi mà không phải ai khác. Thông thường, để bảo vệ các văn

bản mã hoá người ta dùng chữ ký điện tử. Việc ứng dụng chữ ký điện tử cũng như

công nhận giá trị pháp lý của nó là điều kiện tiên quyết cho thương mại điện tử. Nếu

như việc giả mạo chữ ký viết tay hoặc con dấu là không đơn giản thì việc làm giả

một đoạn thông tin nào đó là rất dễ dàng.

17

Vì lý do đó, bạn không thể quét chữ ký của mình cũng như con dấu tròn của

công ty để chứng tỏ rằng tài liệu mà bạn truyền đi đúng là của bạn.

Khi bạn cần “ký” một văn bản hoặc một tài liệu nào đó, thủ tục đầu tiên là

tạo ra chữ ký và thêm nó vào trong thông điệp. Có thể hình dung thủ tục này như

sau: Phần mềm mã hoá mà bạn sử dụng sẽ đọc nội dung văn bản và tạo ra một chuỗi

thông tin đảm bảo chỉ đặc trưng cho văn bản đó mà thôi. Bất kỳ một thay đổi nào

trong văn bản sẽ kéo theo sự thay đổi của chuỗi thông tin này.

Sau đó phần mềm đó sẽ sử dụng khoá bí mật của bạn để mã hoá chuỗi thông

tin này và thêm nó vào cuối văn bản như một động tác ký (Bạn có thể thấy là

chúng ta hoàn toàn không mã hoá nội dung văn bản, chỉ làm động tác ký mà

thôi). Khi nhận được văn bản, người nhận lặp lại động tác tạo ra chuỗi thông tin

đặc trưng, sau đó sử dụng khoá công khai mà bạn đã gửi để kiểm tra chữ ký

điện tử có đúng là của bạn không và nội dung thông điệp có bị thay đổi hay

không. Thuật toán mã hoá khóa bất đối xứng đầu tiên và nổi tiếng hơn cả có tên

gọi là RSA (được ghép từ chữ cái đầu tiên của tên ba tác giả là Rivest, Shamir,

Adleman).

1.2.1. Chữ kí điện tử

Chữ kí điện tử (Electronic signture) là thông tin đi kèm dữ liệu (văn bản,

hình ảnh, video…) nhằm mục đích xác định người chủ của dữ liệu đó [3]. Chữ kí

điện tử thường được sử dụng trong các giao dịch điện tử. Xuất phát từ thực tế, chữ

kí điện tử cũng cần đảm bảo các chức năng : xác định được người gửi, dữ liệu có bị

thay đổi hay không.

1.2.2. Chữ kí số

Trong môi trường mạng, bất cứ dạng thông tin nào được sử dụng để nhận

biết một con người đều được coi là chữ kí điện tử, ví dụ: một đoạn âm thanh, hình

ảnh được chèn vào cuối e-mail.

18

1.2.2.1. Khái niệm chữ kí số

Chữ kí số là một dạng chữ kí điện tử, an toàn nhất và cũng được sử dụng

rộng rãi nhất, chữ kí này hình thành dựa trên kĩ thuật mã hoá công khai, theo đó

mỗi người sử dụng cần có một cặp khoá bao gồm khoá bí mật và khoá công

khai. Người chủ chữ kí sử dụng khoá bí mật để tạo chữ kí số (trên cơ sở kết hợp với

nội dung thông tin gửi), ghép nó với thông tin cần gửi và gửi đi. Người nhận dùng

mã công khai giải mã chữ kí số để biết được có phải là người đó gửi hay không [3].

Điểm quan trọng là các cặp khoá trên do những nhà cung cấp dịch vụ chứng

thực chữ kí số (Certification Authority – CA) cấp (hoặc xác minh là đủ điều kiện an

toàn) sau khi đã kiểm tra thực tế. Đồng thời nhà cung cấp dịch vụ cũng giao cho cá

nhân, tổ chức đó một chứng thư số - tương đương như chứng minh thư nhân dân

hay giấy xác nhận sự tồn tại của cơ quan, tổ chức trên môi trường mạng. Chứng thư

đó có chứa khoá công khai của chủ sở hữu và được duy trì tin cậy trên cơ sở dữ liệu

của nhà cung cấp dịch vụ chứng thực, do vậy người nhận có thể truy cập vào cơ sở

dữ liệu đó để xác minh.

1.2.2.2. Sơ đồ chữ kí số:

Một sơ đồ chữ kí số thường chứa hai thành phần: thuật toán kí và thuật toán

xác minh. có thể kí bức điện dùng thuật toán kí an toàn, chữ kí

nhận được có thể kiểm tra bằng thuật toán xác minh công khai . Khi

cho trước cặp , thuật toán xác minh có giá trị TRUE hay FALSE tuỳ thuộc

vào chữ kí được thực hiện như thế nào. Sau đây là định nghĩa hình thức của chữ kí:

Định nghĩa [1]

Một sơ đồ chữ kí số là bộ , trong đó:

: tập hữu hạn các thông điệp có thể có. -

: tập hữu hạn các chữ kí có thể có. -

- : là một tập hữu hạn các khoá, mỗi khoá gồm hai thành phần

, là khoá bí mật dành cho việc kí, còn là khoá công khai

dành cho việc xác minh chữ kí.

19

Với mỗi , trong S có một thuật toán kí , và trong

có một thuật toán xác minh thoả mãn điều

kiện sau đây đối với mọi thông báo và mọi chữ kí

khi và chỉ khi .

- là tập các thuật toán kí.

- là tập các thuật toán kiểm thử.

Với sơ đồ trên, mỗi chủ thể sở hữu một bộ khoá , công khai khoá

để mọi người có thể xác minh chữ kí của mình, và giữ bí mật khoá để thực

hiện chữ kí trên các thông điệp mà mình muốn gửi đi. Các hàm và (khi

biết ) phải tính được một cách dễ dàng (trong thời gian đa thức), tuy nhiên hàm

là khó tính được nếu không biết – điều đó đảm bảo bí mật cho việc

kí cũng tức là đảm bảo chống giả mạo chữ kí.

Như vậy “ký số” trên “tài liệu số” là ký trên từng bit tài liệu. Kẻ gian khó có

thể giả mạo chữ ký số nếu không biết khóa lập mã.

Ngoài ý nghĩa để chứng thực nguồn gốc hay hiệu lực của tài liệu, mặt mạnh

của chữ ký số hơn chữ ký tay ở chỗ người ta có thể ký vào tài liệu từ rất xa trên

mạng công khai. Hơn thế nữa có thể ký bằng các thiết bị cầm tay (ví dụ như điện

thoại di động) tại khắp mọi nơi miễn là kết nối được mạng, đỡ tốn thời gian và chi

phí,...

Ký số thực hiện trên từng bit tài liệu, nên độ dài của chữ ký số ít nhất cũng

bằng độ dài của tài liệu. Do đó thay vì kí trên tài liệu dài, người ta thường dùng

hàm băm để tạo đại diện cho tài liệu, sau đó mới ký số lên đại diện này.

20

1.2.2.4. Chữ kí số RSA

1/ Sơ đồ chữ ký RSA [3]

a./ Sinh khóa

Chọn p, q là số nguyên tố lớn.

Tính , . Đặt .

Chọn khóa công khai và nguyên tố cùng nhau với

Khóa bí mật a là nghịch đảo của b theo modulo .

công khai, bí mật.

b./ Ký số

Chữ kí trên là .

c./ Kiểm tra chữ kí

Việc ký chẳng qua là việc mã hóa, việc kiểm tra chữ ký chính là việc giải mã:

Việc ký vào tài liệu x tương ứng với việc mã hóa tài liệu x. Kiểm tra chữ ký chính là

việc giải mã chữ ký, để kiểm tra xem tài liệu đã giải mã có đúng là tài liệu trước khi

ký không. Thuật toán và khóa kiểm thử chữ ký là công khai, ai cũng có thể kiểm thử

chữ ký được.

2/ Độ an toàn chữ ký số RSA

* Người gửi gửi tài liệu cùng chữ ký đến người nhận , có hai cách xử lý:

a) Ký trước, mã hóa sau:

G ký vào x trước bằng chữ ký , sau đó mã hóa và nhận được

. gửi cho

Nhận được , giải mã để được .

Tiếp theo kiểm tra chữ ký

21

b) Mã hóa trước, ký sau:

mã hóa trước bằng , sau đó ký vào bằng chữ ký .

gửi cho

nhận được , giải mã được

Tiếp theo kiểm tra chữ ký

* Giả sử lấy trộm được thông tin trên đường truyền từ đến

- Trong trường hợp a) lấy được . Trong trường hợp b) lấy được .

- Để tấn công , trong cả hai trường hợp đều phải giải mã thông tin lấy được.

- Để tấn công vào chữ ký, thay bằng chữ ký giả mạo thì xảy ra hai trường hợp như

sau:

+ Trường hợp a), để tấn công chữ ký , phải giải mã mới nhận được

+ Trường hợp b), để tấn công chữ ký , đã có sẵn , chỉ việc thay bằng .

thay chữ ký trên bằng chữ ký của là và gửi đến .

Khi nhận được , kiểm thử thấy sai, gửi phản hồi lại . có thể

chứng minh chữ ký đó là giả mạo. gửi chữ ký đúng cho , nhưng quá trình

truyền tin sẽ bị chậm lại. Như vậy trong trường hợp thứ hai có thể giả mạo chữ ký

mà không cần giải mã. Vì thế các chuyên gia về mật mã luôn khuyên rằng hãy ký

trước sau đó mã hóa cả chữ ký.

3/ Ví dụ

Chọn

Chọn (nguyên tố cùng nhau với 8);

Khóa bí mật .

Kí: Chọn

Kiểm tra chữ kí:

22

1.2.2.5. Chữ ký ElGamal

Sơ đồ chữ kí ElGamal được đề xuất năm 1985, gần như đồng thời với sơ đồ

hệ mật mã ElGamal, cũng dựa trên độ khó của bài toán logarit rời rạc. Sơ đồ được

thiết kế đặc biệt cho mục đích kí trên các văn bản điện tử.

1/ Sơ đồ chữ ký ElGamal [3]

a./ Sinh khóa

Cho là số nguyên tố sao cho bài toán logarit rời rạc trên là khó giải. Đặt

,

Chọn phần tử nguyên thủy , chọn khóa bí mật .

Khóa công khai .

với công khai; bí mật. Tập khóa

b./ Ký số

Chọn (vì nên , do đó tồn tại )

Chữ kí trên là là

Trong đó: ;

c./ Kiểm tra chữ ký

2/ Độ an toàn của chữ ký ElGamal

1/. Vấn đề giả mạo chữ ký ElGamal

* Trường hợp thứ nhất: Giả mạo chữ ký không cùng với tài liệu được ký

cố gắng giả mạo chữ ký trên , mà không biết khóa bí mật . Như vậy phải

tính được và

- Nếu chọn trước , phải tính qua đẳng thức (E2).

Tức là hay

23

- Nếu chọn trước , phải tính qua phương trình . Tuy

nhiên hiện nay chưa có cách hữu hiệu cho hai trường hợp trên, nhưng các chuyên

gia mật mã phỏng đoán là khó hơn bài toán logarit rời rạc.

- Nếu chọn trước , sau đó tính , phải đương đầu với bài toán logarit rời

rạc.

(E2) Ta có

Như vậy

* Trường hợp thứ hai: Giả mạo chữ ký cùng với tài liệu được ký

có thể ký trên tài liệu ngẫu nhiên bằng cách chọn trước đồng thời

- Cách 1:

+ Chọn thỏa mãn điều kiện kiểm thử như sau:

Chọn các số nguyên sao cho và tính

Trong đó được tính theo (nghĩa là nguyên tố cùng nhau với )

+ Chứng minh là chữ ký trên , bằng cách kiểm tra điều kiện kiểm thử:

- Cách 2:

+ Nếu là chữ ký trên tài liệu có từ trước, thì có thể giả mạo chữ ký trên tài

liệu khác.

Chọn các số nguyên thỏa mãn và tính

,

+ là chữ ký trên , vì thỏa mãn điều kiện kiểm thử:

Hai cách giả mạo trên đều cho chữ ký đúng trên tài liệu tương ứng, nhưng đó

không phải là tài liệu được chọn theo ý người giả mạo. Tài liệu đó đều được tính

sau khi tính chữ ký, vì vậy giả mạo này trong thực tế cũng không có ý nghĩa nhiều.

24

2/. Vấn đề phá khóa theo sơ đồ ElGamal.

Khóa bí mật có thể bị phát hiện, nếu việc ký không thận trọng, chẳng hạn

như khóa ngẫu nhiên bị lộ hay dùng cho hai lần ký khác nhau.

* Trường hợp thứ nhất: Khóa ngẫu nhiên bị lộ

Nếu bị lộ, thám mã sẽ tính được khóa mật

* Trường hợp thứ hai: dùng cho hai lần ký khác nhau.

Giả sử dùng cho hai lần ký trên và .

là chữ ký trên , là chữ ký trên , khi đó thám mã có thể tính

như sau:

Do đó ta có

Đặt ta có tương đương với

(1)

Đặt khi đó

Khi đó đồng dư thức (1) trở thành vì nên tính

và tính Suy ra với là

giá trị nào đó, . Thử với giá trị đó, ta tìm được (điều kiện thử để xác

dịnh là )

3/. Ví dụ

Chọn p = 467, a = 127, g = 2, h = ga mod p = 2127 mod 467 = 132

Kí trên bản rõ x = 100 với r = 213:

γ = 2213 mod 467 = 29 ; δ = (100 – 127*29) * 431 mod 466 = 51

Kiểm tra chữ kí: 13229 * 2951 = 2100 mod 467 = 189

25

1.3. VẤN ĐỀ QUẢN LÍ KHÓA

1.3.1. Khóa và một số khái niệm

Trong một mạng thông tin liên lạc dữ liệu, giả sử rằng một người dùng ở một

máy tính đang liên lạc với một chương trình ứng dụng hay một người dùng ở một

máy tính khác ở trong cùng một vùng hay ở một vùng khác, những người dùng này

dùng chung một khoá (khoá chính K). Khoá K này có thể là một khoá bí mật được

cung cấp và được chấp nhận trước bởi các người dùng hoặc một khoá được cấp phát

động bởi hệ thống và gán cho các người dùng này, được gọi là khoá mã hoá dữ liệu

hoặc khoá giải mã dữ liệu.

Ngày nay “an toàn thông tin” là nhu cầu của mọi ngành, mọi người, do các

thông tin chủ yếu được truyền trên mạng công khai, vì vậy kỹ thuật mật mã là công

khai cho mọi người dùng, điều bí mật ở đây là nằm ở khóa của mật mã.

Sự phân phối khoá (key distribution) được định nghĩa là cơ chế một nhóm

chọn khoá mật và sau đó truyền nó đến các nhóm khác [3].

Thoả thuận khoá (key agreement) là giao thức để hai nhóm (hoặc nhiều

hơn) liên kết với nhau cùng thiết lập một khoá mật bằng cách liên lạc trên một kênh

truyền thông công khai [3].

TA (Trust Authority) có nhiệm vụ xác minh danh tính của người dùng, chọn

và gửi khoá đến người dùng [3].

Đối phương bị động (passive adversary) là người dùng có dụng ý xấu mà hoạt

động của anh ta chỉ hạn chế ở mức nghe trộm bức điện truyền trên kênh [3].

Đối phương chủ động (active adversary) nguy hiểm hơn đối phương bị động

vì có thể làm nhiều hành vi xấu như:

- Thay đổi bức điện mà anh ta quan sát khi nó đang được truyền trên mạng.

- Lưu bức điện cho việc sử dụng lại ở lần sau.

- Cố gắng giả dạng làm người dùng khác trên mạng.

26

Mục tiêu của đối phương chủ động là:

- Lừa người dùng U và V chấp nhận 1 khoá “không hợp lệ” như là một khoá hợp

lệ ( khoá không hợp lệ có thể là khoá cũ đã hết hạn sử dụng hoặc khoá do đối

phương chọn).

- Làm cho U và V tin rằng họ có thể trao đổi khoá với người kia khi họ không có

khoá.

1.3.2. Vấn đề quản lí khóa bí mật

Với hệ mã hóa khóa đối xứng, nếu biết được khóa mã hóa thì có thể dễ tính

được khóa giải mã và ngược lại (một số hệ mã hóa khóa đối xứng có khóa lập mã

và khóa giải mã trùng nhau).

Hai bên muốn liên lạc bí mật với nhau bằng hệ mã hóa khóa đối xứng phải

thỏa thuận trước một khóa bí mật. Đồng nghĩa với việc hai người cùng có khóa bí

mật, thông thường thì càng nhiều người nắm giữ bí mật thì độ rủi ro về an toàn

thông tin càng cao.

Nếu trên mạng có người dùng thì theo phương pháp thông thường mỗi

người dùng sẽ phải quản lí khóa, và tổng số khóa bí mật giữa hai người

dùng nhiều nhất là . Nếu lớn thì giải pháp này

không thực tế, vì lượng thông tin rất lớn cần phải truyền đi, khó đảm bảo an toàn.

Như vậy điều cần quan tâm là là giảm lượng tin truyền đi và cất giữ, trong khi

vẫn cho phép người dùng U và V có chung khóa . Do đó xuất hiện nhu cầu

quản lí khóa bí mật, bao gồm các vấn đề: Phân phối khóa, thỏa thuận khóa, bảo vệ

khóa bí mật.

27

1.3.3. Vấn đề quản lí khóa công khai

Hệ mã hóa khóa công khai (hệ mã hóa khóa bất đối xứng) có ưu điểm hơn hệ

mã hóa khóa bí mật ở chỗ là có thể công khai thuật toán mã hóa và khóa lập mã

(khóa công khai) cho nhiều người sử dụng, khóa bí mật (khóa giải mã) chỉ do một

người quản lí, cho nên không cần kênh an toàn để thống nhất khóa bí mật (bằng

phân phối khóa hay thỏa thuận khóa). Tuy nhiên hầu hết các hệ mã hóa khóa công

khai đều chậm hơn các hệ mã hóa khóa bí mật. Vì thế hệ mã hóa khóa đối xứng

dùng để mã hóa các bản tin dài, hệ mã hóa khóa công khai dùng để thống nhất khóa

bí mật (của hệ mã hóa khóa đối xứng).

Hơn thế nữa, hệ mã hóa khóa công khai còn được dùng để tạo ra sơ đồ chữ kí

số hay các giao thức phục vụ bảo đảm an toàn thông tin.

Khác với hệ mã hóa khóa bí mật, với hệ mã hóa khóa công khai, hai đối tác

truyền tin an toàn không phải thống nhất khóa mật, do đó không cần phải quản lí

khóa mật mà từng người dùng tự bảo vệ khóa mật của mình, nhưng họ lại có nỗi lo

chung là quản lý tốt khóa công khai.

Tại sao phải quản lý tốt khóa công khai? Để hiểu rõ hơn điều này ta lấy ví dụ

như sau:

Trường hợp thứ nhất: Một người dùng có khóa bí mật bị người dùng

xem trộm, nếu đối tác của vẫn dùng khóa công khai (tương ứng với ) để

mã hóa các bản tin gửi cho thì có thể xem được bản tin này (vì có khóa mật

để giải mã). Trong trường hợp này, người dùng phải báo với các đối tác của

mình rằng khóa mật đã bị lộ, không dùng khóa công khai để mã hóa nữa, kẻ

xem trộm sẽ xem được các bản tin mật đã mã hóa bởi khóa . Người dùng

phải chọn cặp khóa mới và công khái khóa mới.

28

Trường hợp thứ hai: Một người dùng có khóa bí mật bị người dùng

xem trộm. Nếu không thông báo với các đối tác của mình ngay, thì sẽ dùng

khóa mật làm khóa ký lên các thông điệp giả mạo. Tuy nhiên nhờ khóa công khai

(tương ứng với ) các đối tác của vẫn kiểm thử được rằng đó chính là chữ ký

của . Trong trường hợp này, người dùng phải báo với các đối tác của mình

rằng khóa mật đã bị lộ, không dùng khóa công khai để kiểm tra chữ ký nữa.

Người dùng phải chọn cặp khóa mới và công khái khóa mới.

Vấn đề tiếp theo đặt ra là từng người dùng phải lo quản lý khóa công khai

của riêng họ, hay có cơ quan chung để quản lý khóa công khai của mọi người dùng.

Một cơ quan như vậy phải lo cấp chứng chỉ để chứng thực khóa công khai

của một người dùng nào đó vẫn còn hiệu lực. Khi người dùng bị lộ khóa bí mật, họ

phải báo cho cơ quan này biết, để xin được cấp chứng chỉ cho khóa công khai mới.

Mọi người dùng xem chứng chỉ số, sẽ biết được khóa công khai nào còn hiệu lực,

nhờ đó tránh được các tình huống như hai ví dụ trên. Hiện nay trên thế giới người ta

theo xu hướng tổ chức các cơ quan như trên để quản lý khóa công khai của người

dùng. Tổ chức này được gọi là cơ quan chứng thực khóa công khai (CA: Certificate

Authority)

29

CHƢƠNG 2. MỘT SỐ SƠ ĐỒ THỎA THUẬN KHÓA BÍ MẬT

2.1. THỎA THUẬN KHÓA BÍ MẬT BẰNG CÁCH GỬI KHÓA BÍ MẬT

Hệ mã hóa khóa bí mật (hệ mã hóa khóa đối xứng) là hệ mã hóa có khóa

lập mã và khóa giải mã là “giống nhau”, theo nghĩa biết được khóa này thì “dễ”

tính được khóa kia. Vì vậy phải giữ bí mật cả hai khóa. Đặc biệt có một số hệ mã

hóa có khóa lập mã và khóa giải mã trùng nhau ( ), như hệ mã hóa “dịch

chuyển” hay DES.

Khi cặp người dùng đã thống nhất có một khóa bí mật chung, thì một trong

hai người chọn khóa ngẫu nhiên K, sau đó truyền nó một cách an toàn đến người

kia bằng phương pháp nào đó, chẳng hạn như bằng hệ mã hóa khóa công khai, hay

phương pháp “giấu tin”. Phương pháp này phải dùng nhiều thông tin truyền đi và

cất giữ, mặt khác độ an toàn thấp vì phải truyền đi “trọn vẹn” một khóa trên

mạng công khai.

2.2. THỎA THUẬN KHÓA BÍ MẬT BẰNG CÁCH KHÔNG GỬI KHÓA

Thỏa thuận khóa bằng hệ mã hóa khóa bí mật truyền trọn vẹn khóa trên kênh

truyền, vì thế không an toàn. Phương pháp hiệu quả để thỏa thuận khóa bí mật phải

đạt được hai tiêu chí sau:

- Bảo đảm an toàn thông tin về khóa mật: Tức là đảm bảo rằng thám mã khó có thể

khám phá hay tráo đổi khóa mật.

- Giảm được lượng thông tin cần truyền đi và cất giữ, trong khi vẫn cho phép mỗi

cặp người dùng tính toán được khóa mật.

Theo phương pháp hiệu quả, người dùng không truyền cho nhau trên mạng

trọn vẹn một khóa K, mà truyền đi “vật liệu công khai” và “cách thức” tạo khóa K

đến cặp người dùng U và V.

Phương pháp này không phải dùng nhiều thông tin truyền đi và cất giữ, mặt

khác độ an toàn cao, vì người dùng chỉ truyền “vật liệu công khai” và “cách thức”

tạo khóa mật, chứ không truyền trực tiếp khóa mật. Thám mã có trộm được tin trên

đường truyền, cũng khó tính được khóa mật vì không biết “vật liệu bí mật” của

từng người dùng.

30

2.2.1.Sơ đồ thỏa thuận khóa Blom

2.2.1.1. Ý tưởng [3]

Giả thiết có một mạng có n người dùng, các khóa được chọn trên trường hữu

hạn (số nguyên tố ).

Chọn số nguyên , giá trị để hạn chế kích thước lớn nhất,

mà sơ đồ vẫn duy trì được độ mật

Trung tâm được ủy quyền TT phải thiết kế một sơ đồ thỏa thuận khóa để

thực hiện các yêu cầu sau:

Trung tâm tin cậy TT truyền đi phần tử của , cho mỗi người dùng

trên kênh an toàn (theo phương pháp phân phối khóa thông thường thì TT phải

truyền đi phần tử).

Mỗi cặp người dùng U và V phải có khả năng tính được khóa chung

.

Bảo đảm điều kiện an toàn: tập bất kỳ gồm nhiều nhất người dùng không

liên kết với U hay V, thì “khó” có thể xác định được bất kỳ thông tin nào về .

2.2.1.2. Giao thức thỏa thuận khóa Blom với k = 1

1/. Sơ đồ [3]

(1) Trung tâm được ủy quyền TT chọn số nguyên tố công khai , mỗi

người dùng U chọn phần tử công khai khác nhau.

(2) TT chọn 3 phần tử ngẫu nhiên bí mật (không cần khác biệt) và chọn

đa thức (ở đây nên ta chọn đa thức có

lũy thừa bậc 1 (tuyến tính) đối với x và y.

(3) Với mỗi người dùng U, TT tính đa thức và truyền

đến U trên kênh an toàn.

hay với

31

(4) Nếu U và V muốn liên lạc với nhau, mỗi người tự tính khóa chung:

U tính

V tính

Do tính chất đối xứng của đa thức nên

2/. Ví dụ:

(1) Giả sử có ba người dùng U, V và W.

Trung tâm được ủy quyền chọn công khai số nguyên tố p = 83.

Các phần tử công khai tương ứng với U, V và W là và

(2) Trung tâm được ủy quyền chọn ngẫu nhiên, bí mật và chọn

đa thức

(3) Trung tâm được ủy quyền TT tính các đa thức và gửi cho U, V, W tương ứng là:

(4) Nếu U và V muốn liên lạc với nhau, mỗi người tự tính khóa chung như sau:

U tính

V tính

Ba khóa chung tương ứng với ba cặp người dùng là

32

3/. Độ an toàn của sơ đồ thỏa thuận khóa Blom với an toàn với 1 đối thủ

Sơ đồ thỏa thuận khóa Blom với , khóa của một cặp đối tác là an toàn

trước bất kỳ người dùng thứ ba nào. Tức là không người dùng nào có thể xác định

được thông tin về khóa của hai người dùng khác.

Thật vậy:

Ta giả sử người dùng thứ ba là W muốn thử tính khóa chung của U và V.

Trong đó các giá trị là công khai, là bí mật.

W biết được các giá trị sau khi trung tâm TT gửi đến:

với

Ta chỉ ra rằng thông tin mà W biết phù hợp với giá trị tùy ý của khóa .

Xét phương trình ma trận sau:

(các phép toán số học được thực hiện trong )

a 1 t

b 1 0

c 0 1

Tức là hệ các phương trình:

(1)

(2)

(3)

Phương trình (1) thể hiện giả thiết rằng . Phương trình (2) và (3) cho

thấy W biết từ .

Định thức của ma trận hệ số là:

33

Vì và nên định thức ma trận hệ số khác không ( ). Do

đó phương trình ma trận có nghiệm duy nhất cho .

Nói cách khác, bất kỳ giá trị cũng có thể nhận là khóa

4/. Sơ đồ thỏa thuận khóa Blom với không an toàn trước liên minh hai đối

thủ.

Liên minh hai người dùng {W,X} (không phải là cặp người dùng {U,V}) có

khả năng xác định khóa mật bất kỳ của U và V.

Thật vậy:

Hai người dùng W và X cùng biết các đẳng thức sau:

Như vậy, họ có 4 phương trình với ba ẩn chưa biết, họ dễ dàng tính ra nghiệm

duy nhất . Từ đó họ có thể thiết lật đa thức và tính khóa chung của bất

kỳ cặp người dùng nào

2.2.1.3. Giao thức thỏa thuận khóa Blom với k > 1 [3]

Để tạo lập sơ đồ thỏa thuận khóa chống lại được liên minh đối thủ, trung

tâm TT dùng đa thức dạng sau:

Trong đó và với mọi i, j.

Các phần tử còn lại của giao thức như sơ đồ với so

2.2.2. Sơ đồ thỏa thuận khóa Diffie – Hellman

Trao đổi khóa Diffie–Hellman là một phương pháp trao đổi khóa được phát

minh sớm nhất trong mật mã học. Phương pháp trao đổi khóa Diffie–Hellman cho

phép hai bên (người, thực thể giao tiếp) thiết lập một khóa bí mật chung để mã hóa

dữ liệu sử dụng trên kênh truyền thông không an toàn mà không cần có sự thỏa

thuận trước về khóa bí mật giữa hai bên. Khóa bí mật tạo ra sẽ được sử dụng để mã

hóa dữ liệu với phương pháp mã hóa khóa đối xứng.

34

2.2.2.1. Sơ đồ [3]

Người dùng chọn số nguyên tố p rất lớn sao cho bài toán logarit rời rạc trong

là “khó” giải; chọn là phần tử nguyên thủy thuộc . Phần tử là công

khai (vật liệu công khai của sơ đồ thỏa thuận khóa Diffie – Hellman là ).

Trong giao thức này, khóa mật được tạo ra từ sự kết hợp của hai thành viên (giả sử

là U, V), như sau:

 Người dùng U: - Chọn ngẫu nhiên, bí mật

- Tính

- Gửi cho V

 Người dùng V: - Chọn ngẫu nhiên, bí mật

- Tính

- Gửi cho U

 U tính khóa bí mật chung

 V tính khóa bí mật chung

Hai giá trị khóa đó là bằng nhau.

Người dùng V Người dùng U

Hình 2.1: Thỏa thuận khoá Diffie – Hellman

Các số mũ , (của U, V) đều được chọn lại trước mỗi lần thực hiện giao

thức này. Vì thế người dung U và V đều được đảm bảo “khóa tươi”, vì khóa phiên

phụ thuộc vào cả hai số ngẫu nhiên bí mật và .

35

Tuy nhiên vì trên đường truyền không được bảo vệ bởi tổ chức tin cậy

TT, nên giao thức có thể bị tấn công bởi một đối phuơng chủ động W, những người

sử dụng cách tấn công “kẻ xâm nhập giữa cuộc”. W sẽ chặn lại các thông điệp giữa

U và V và thay thế bằng thông điệp của riêng mình.

Người dùng V Người dùng U Người dùng W

Hình 2.2: Kẻ xâm nhập giữa cuộc trong giao thức Diffie – Hellman

Khi đó, người dung U thiết lập thực sự khóa mật với W, còn V thiết lập

thực sự khóa mật với W.

Khi U mã hóa bản tin để gửi cho V, W có khả năng giải mã nó còn V thì

không thề giải mã được bản tin mà U gửi cho vì V không có khóa chung với U.

2.2.2.2. Ví dụ

Chọn công khai số nguyên tố , phần tử nguyên thủy của là

(1) Người dung U:

Chọn ngẫu nhiên số mũ bí mật

Tính

Gửi cho người dung V

(2) Người dung V:

Chọn ngẫu nhiên số mũ bí mật

Tính

Gửi cho người dùng U

- Hai người U, V tính khóa chung:

U tính được khóa

V tính được khóa là

Như vậy U và V đều tính được khóa chung

36

2.2.2.3. Độ an toàn

1/. Người dùng U, V đều được đảm bảo “khóa tươi”, vì khóa phiên phụ thuộc vào

cả hai số ngẫu nhiên bí mật

2/. Tuy nhiên, vì trên đường truyền không được bảo vệ bởi tổ chức tin cậy TT, nên

kẻ xâm nhập giữa cuộc lợi dụng lỗ hổng này để phá hoại U, W bằng cách chặn giữa

đường bắt lấy , đổi thành rồi gửi cho V, đồng thời bắt lấy , đổi thành rồi

gửi cho U.

Khi đó, người dùng U thiết lập thực sự khóa mật với W, còn V thiết lập

thực sự khóa mật với W. Khi U mã hóa bản tin để gửi cho V, W có khả năng

giải mã nó còn V thì không thề giải mã được bản tin mà U gửi cho vì V không có

khóa chung với U.

2.2.2.4. Ý tưởng cải tiến: Bổ sung xác thực danh tính U và V

Đảm bảo rằng đang thỏa thuận khóa với nhau mà không có W. Vì vậy trước

khi thỏa thuận khóa, U và V phải thực hiện các giao thức tách bạch để thông báo

danh tính của nhau, nhờ đó họ sẽ nhận ra kẻ không phải là U hay V.

2.2.3. Sơ đồ thỏa thuận khóa “Trạm tới Trạm”

Giao thức thỏa thuận khóa “Trạm tới Tram” (STS) là cải tiến của giao thức

thỏa thuận khóa Diffie-Hellman, trong đó bổ sung phần xác thực danh tính của

người dùng. STS được gọi là giao thức thỏa thuận khóa có xác thực, nhờ trung tâm

tin cậy TT. Việc xác thực ở đây không phải là xác nhận bất kỳ thông tin nào đến

việc tạo khóa của người dùng (dù là khóa bí mật hay khóa công khai), mà chỉ xác

nhận một thông tin ít quan hệ khác như thuật toán kiểm thử chữ kí của người dùng.

Còn bản thân các thông tin liên quan đến việc tạo khóa mật thì các người dùng sẽ

trao đổi trực tiếp với nhau.

37

2.2.3.1. Sơ đồ thỏa thuận khóa STS [3]

Trung tâm tin cậy TT chọn số nguyên tố p rất lớn sao cho bài toán logarit rời

rạc trong là “khó” giải; chọn là phần tử nguyên thủy thuộc .

Phần tử là công khai, có dấu xác nhận của TT.

Mỗi người dùng U có chữ ký với thuật toán xác minh

TT có chữ ký với thuật toán xác minh

Mỗi người dùng U có dấu xác nhận định danh là:

(1) Người dùng U chọn ngẫu nhiên, bí mật . Tính và

gửi nó cho V.

(2) V chọn ngẫu nhiên, bí mật . Tính ,

. Gửi tới U.

V tính khóa chung

(3) U tính khóa chung

Dùng để xác minh và xác minh nhờ

Tính . Gửi tới V

(4) V dùng để xác minh và xác minh nhờ

Thông tin trao đổi trong giao thức như sau:

Người dùng U Người dùng V

Hình 2.3: Thỏa thuận khóa trạm tới trạm

38

Khi có sự xâm nhập của W

Người dùng W

Người dùng U

Người dùng V

Hình 2.4: Giao thức trạm tới trạm có sự xâm nhập giữa đường

Kẻ tấn công chủ động W chặn bắt của U và thay nó bằng . Tiếp đó

W chặn bắt từ V.

W cũng muốn thay của V bằng , điều này có nghĩa là anh ta cũng

phải thay bằng . Nhưng W khó có thể tính

vì không biết thuật toán ký của V.

Tương tự W khó có thể thay thế bằng vì W

không biết thuật toán kí của U.

2.2.3.2. Ví dụ

1/. Trung tâm tin cậy TT chọn số nguyên tố , phần tử nguyên thủy của là

( công khai).

Chữ kí của TT (Dấu xác nhận của TT về ):

Chọn số nguyên tố

Cặp khóa (bí mật, công khai) là (37,13)

Kí xác nhận là

2/. Người dùng U

- Có chữ ký RSA (cặp khóa bí mật/công khai là (323,47)), với thật toán xác minh

- Chọn ngẫu nhiên, bí mật

- Tính

- Gửi cho V

39

3/. Người dùng V

- Có chữ ký RSA(cặp khóa bí mật/công khai là (973,47)), với thật toán xác minh

- Chọn ngẫu nhiên, bí mật

- Tính

- Kí số:

- Gửi tới U

- V tính khóa chung

4/. U tính khóa chung

Dùng để xác minh :

(true)

Xác minh C(V) nhờ

Tính

Gửi (C(U),(104,611)) tới V

5/. Dùng để xác minh như sau:

(true)

2.2.3.3. Độ an toàn

Giao thức thỏa thuận khóa STS là giao thức “3 lần” truyền tin:

Kẻ tấn công W có thể tấn công chặn bắt của U và thay nó bằng .

Tiếp đó W chặn bắt từ V.

W cũng muốn thay của V bằng , điều này có nghĩa là anh ta cũng

phải thay bằng . Nhưng W khó có thể tính

vì không biết thuật toán ký của V.

40

Tương tự W khó có thể thay thế bằng vì W

không biết thuật toán kí của U. Tuy nhiên giao thức thỏa thuận khóa STS

không đưa ra được “sự khẳng định khóa công khai”. Tức là:

Trong bước (2) và được gửi tới U, nhưng chưa đảm bảo thật an toàn.

Vì là công khai, bí mật ở đây chỉ nằm ở số mũ , mà nằm trong giới hạn

, với là số nguyên tố, thì với tốc độ phát triển về phần cứng của

CNTT như hiện nay thì việc thử lần lượt trong tương lai là có thể, và khi đã bị lộ

thì bảo mật coi như đã thất bại.

Tương tự trong bước (1) và (3) quá trình truyền gửi tới V chưa đảm

bảo an toàn.

Giải pháp có thể đảm bảo an toàn cho cả hai trường hợp trên là:

Trong bước (2) ta mã hóa bằng khóa session K:

Trong bước (3) ta mã hóa bằng khóa session K:

41

2.2.4. Sơ đồ thỏa thuận khóa MTI

2.2.4.1. Sơ đồ [3]

Matsumoto, Takashima và Imai (MTI) đã xây dựng giao thức thỏa thuận

khóa bằng cách cải biên giao thức thỏa thuận khóa STS. Giao thức MTI không đòi

hỏi U và V phải tính bất kỳ chữ ký nào và chỉ có hai lần truyền tin riêng biệt (từ U

đến V và từ V đến U)

Chọn số nguyên tố p rất lớn sao cho bài toán logarit rời rạc trong là

“khó” giải; Chọn là phần tử nguyên thủy thuộc ; Giá trị công khai, với

dấu xác nhận của trung tâm tin cậy TT;

Mỗi người dùng U có số mũ bí mật và giá trị công khai

tương ứng là ;

Trung tâm tin cậy TT có sơ đồ chữ ký với thuật toán ký bí mật và thuật

toán xác minh ;

Mỗi người dùng U có định danh và dấu xác nhận của TT là

(1) Người dùng U chọn ngẫu nhiên bí mật , tính và

gửi đến V

(2) Người dùng V chọn ngẫu nhiên bí mật , tính và

gửi đến U

(3) Người dùng U tính khóa , trong đó nhận từ

(4) Người dùng V tính khóa , trong đó nhận từ

(5) Cuối cùng U và V đều tính được khóa chung là

Người dùng U

Người dùng V

Hình 2.5: Sơ đồ thỏa thuận khóa MTI

42

2.2.4.2. Ví dụ

+ Chọn số nguyên tố , là phần tử nguyên thủy của

+ Người dùng U: chọn số mũ bí mật và tính

Có dấu xác nhận

+ Người dùng V: chọn số mũ bí mật , tính

Có dấu xác nhận

(1) U chọn , tính , gửi đến V.

(2) V chọn , tính , gửi đến U.

(3) U tính khóa chung

(4) V tính khóa chung:

Như vậy U và V đã tính được khóa chung trùng khớp nhau.

2.2.4.3. Độ an toàn:

(1) Trước tấn công thụ động, độ an toàn của giao thức MTI như bài toán Diffie-

Hellman.

(2) Nếu trong giao thức không dùng chữ ký, có thể xuất hiện tình huống không

có sự bảo vệ nào trước “kẻ xâm nhập giữa cuộc”.

Tức là kẻ xâm nhập giữa cuộc W có thể chặn giữa đường bắt lấy

mà U gửi cho V, đổi thành rồi gửi cho V và bắt chặn lấy mà V

gửi cho U, đổi thành rồi gửi cho U.

Người dùng W

Người dùng V

Người dùng U

Hình 2.6: Giao thức MTI có sự xâm nhập giữa đường

43

Mặc dù W không tính được khóa đúng của U và V vì W không biết số mũ bí

mật và tương ứng, khó mà W tính được chỉ là khóa riêng của anh ta mà thôi,

nghĩa là U và V đều đảm bảo được kẻ xâm nhập giữa cuộc chỉ có thể tính được

khóa “rởm”. Tuy nhiên khi bị W chặn giữa đường và tráo đổi giá trị của ,

thành , tương ứng thì U và V sẽ tính ra các khóa khác nhau

, cũng là bất lợi cho U và V.

2.3. THỎA THUẬN KHÓA BÍ MẬT BẰNG CÁCH CHIA SẺ KHÓA THÀNH

NHIỀU MẢNH

Trong một ngân hàng có một két phải mở hàng ngày, ngân hàng sử dụng 3

thủ quỹ lâu năm nhưng họ không tin bất kỳ người nào, bởi vậy họ cần thiết kế một

hệ thống sao cho bất kỳ 2 thủ quỹ nào cũng có thể mở được két song riêng từng

người một thì không thể mở được.

Hay trong thanh toán điện tử, hợp đồng điện tử là do đại diện một công ty,

hay một cơ quan ký. Nếu chỉ một người đại diện ký thì sẽ sinh ra tiêu cực, vấn đề

này có thể giải quyết được bằng sơ đồ chia sẻ bí mật.

Sơ đồ ngƣỡng của Sharmir [3]

Sơ đồ ngưỡng là một sơ đồ chia sẻ bí mật đặc biệt.

Định nghĩa sơ đồ ngưỡng

Cho là các số nguyên dương, . Một sơ đồ ngưỡng là một

phương pháp phân chia khoá cho một tập gồm thành viên (ký hiệu là )

sao cho thành viên bất kỳ có thể tính được giá trị nhưng không một nhóm

gồm thành viên nào có thể làm được điều đó.

Giá trị được chọn bởi một thành viên đặc biệt gọi là người phân phối

. Ta xem rằng . Khi muốn phân chia một khoá cho các thành

viên trong sẽ cho mỗi thành viên một thông tin cục bộ nào đó được gọi là các

mảnh. Các mảnh được phân phát một cách bí mật để không một thành viên nào biết

được mảnh đã trao cho thành viên khác.

44

Sơ đồ ngưỡng có tính chất như sau:

tập các thành viên giữ các mảnh.

: tập thành viên.

: tập khoá.

: tập tất cả các mảnh.

Nếu thì họ phải có khả năng tính được giá trị theo một hàm của các

mảnh. Nếu thì họ không thể tính được .

Cách xây dựng sơ đồ ngưỡng Sharmir của

Pha khởi tạo:

chọn phần tử khác nhau và khác không trong và ký hiệu là

(ở đây yêu cầu ). Với , sẽ trao giá trị xi cho

. Các giá trị là công khai.

muốn phân chia khoá sẽ chọn một cách bí mật (ngẫu

Phân phối mảnh - Giả sử nhiên và độc lập) phần tử của . , là

- Với , tính: trong đó:

- Với sẽ trao mảnh ,

cho Sơ đồ ngưỡng của Sharmir được ra năm 1979. Trong sơ đồ này, xây

dựng một đa thức ngẫu nhiên có bậc tối đa là . Trong đa thức này, thành

phần hằng số là khoá . Mỗi thành viên sẽ có một điểm trên đa thức

này.

Cách khôi phục khoá của các thành viên:

Một tập con chủ yếu gồm thành viên có thể tạo lại khoá như thế nào?

Điều này chủ yếu được thực hiện bằng phép nội suy đa thức. Có hai phương pháp

thực hiện:

45

Phương pháp 1: Giải hệ phương trình tuyến tính.

Giải hệ phương trình tuyến tính ẩn, phương trình.

Giả sử rằng các thành viên muốn xác định khóa . Họ biết rằng

trong đó là một đa thức được chọn.

Vì có bậc lớn nhất là nên ta có thể viết:

trong đó các hệ số là các phần tử chưa biết

của , còn là khoá. Vì , nên có thể thu được phương

trình tuyến tính ẩn , ở đây tất cả các phép tính số học đều thực hiện trên

. Nếu các phương trình độc lập tuyến tính thì sẽ có một nghiệm duy nhất và ta

được giá trị khoá

Ví dụ minh hoạ:

Giả sử rằng và các toạ độ công khai là

. Giả sử sẽ kết hợp các mảnh của họ (tương ứng là 8,

10, 11). Ta viết như sau: tính . Khi

đó ta nhận đựơc hệ 3 phương trình tuyến tính sau trong :

Hệ này có nghiệm duy nhất trong

Bởi vậy khoá sẽ là :

Phương pháp 2: Dùng công thức nội suy Lagrangre

Ta đã phân tích sơ đồ Shamir theo quan điểm giải hệ phương trình tuyến tính

. Có một phương pháp khác dựa trên công thức nội suy Lagrange cho các

trên đa thức. Công thức nội suy Lagrange có dạng:

46

Một nhóm gồm thành viên có thể tính được bằng cách dùng

công thức nội suy. Có thể tính đƣợc hằng số

Thay vào công thức nội suy Lagrange:

Giả sử ta định nghĩa

Khi đó

Ví dụ minh hoạ:

Các thành viên có thể tính được theo công thức cho ở

trên, chẳng hạn:

Tương tự, ta có: và

Sau đó, với các mảnh cho trƣớc tương ứng: 8, 10 và 11, họ có thể thu được:

Kết quả này giống kết quả thu được khi làm theo cách giải hệ phương trình

Vấn đề cuối cùng trong phần này là một cấu trúc đơn giản cho các sơ đồ

. muốn phân chia khoá thành viên, , anh ta thực hiện theo giao

tuyến tính mà ta không cần tìm hết các hệ số của đa thức bí mật. ngưỡng trong trường hợp đặc biệt Có thức sau: Sơ đồ ngưỡng trong :

- chọn một cách bí mật (độc lập và ngẫu nhiên) phần tử của :

- tính

- Với trao mảnh cho

Ta thấy rằng thành viên có thể tính theo công thức:

47

CHƢƠNG 3. ỨNG DỤNG TRONG “THANH TOÁN ĐIỆN TỬ”

3.1. THANH TOÁN ĐIỆN TỬ LÀ GÌ.

Sự phát triển phổ biến của Intenet đã làm cho thương mại điện tử ngày càng

phát triển nhanh chóng và trở thành phương thức kinh doanh thuận tiện, tiết kiệm,

có tính toàn cầu, đem lại nhiều lợi ích, chẳng hạn như thu thập được nhiều thông

tin; giảm chi phí sản xuất; giảm chi phí bán hàng, giảm chi phí tiếp thị và giao

dịch,… tuy nhiên việc thanh toán trong thương mại điện tử còn nhiều rủi ro nên tạo

ra tâm lí lo ngại cho khách hàng, đối tác khi sử dụng các dịch vụ thanh toán điện tử.

Thanh toán điện tử là một thành phần trong thương mại điện tử, thương mại

điện tử phát triển mạnh mẽ hay không tùy thuộc vào hệ thống thanh toán điện tử có

an toàn hay không.

Thanh toán điện tử là việc thanh toán tiền thông qua các thông điệp điện tử

(Electronic message) thay cho việc thanh toán bằng tiền Sec hay tiền mặt. Bản chất

của mô hình Thanh toán điện tử cũng là mô phỏng lại mô hình thanh toán truyền

thống, nhưng các thủ tục giao dịch, các thao tác xử lý dữ liệu, quá trình chuyển

tiền… tất cả đều được thực hiện thông qua mạng máy tính, được nối bằng các giao

thức chuyên dụng.

3.2. CÁC MÔ HÌNH THANH TOÁN ĐIỆN TỬ

3.2.1. Các mô hình thanh toán điện tử

Hệ thống Thanh toán điện tử thực hiện thanh toán cho khách hàng theo một

số cách, mà tiền mặt và séc thông thường không thể làm được. Hệ thống thanh toán

cũng cung cấp khả năng thanh toán hàng hóa và dịch vụ qua thời gian, bằng cách

cho phép người mua trả tiền ngay, trả tiền sau hay trả tiền trước.

3.2.1.1. Mô hình trả tiền sau

Trong mô hình này, thời điểm tiền mặt được rút ra khỏi tài khoản bên mua để

chuyển sang bên bán, xảy ra ngay (pay-now) hoặc sau (pay-later) giao dịch mua

bán. Hoạt động của hệ thống dựa trên nguyên tắc Tín dụng (Credit crendental). Nó

còn được gọi là mô hình mô phỏng Séc (Cheque-like model).

48

3.2.1.2. Mô hình trả tiền trước

Trong mô hình này, khách hàng liên hệ với ngân hàng (hay công ty môi giới

– Broker) để có được chứng từ do ngân hàng phát hành. Chứng từ hay Đồng tiền số

này mang dấu ấn của ngân hàng, được đảm bảo bởi ngân hàng và do đó có thể dùng

ở bất cứ nơi nào đã có xác lập hệ thống thanh toán với ngân hàng này.

Để đổi lấy chứng từ của ngân hàng, tài khoản của khách hàng bị triết khấu đi

tương ứng với giá trị của chứng từ đó. Như vậy, khách hàng đã thực sự trả tiền

trước khi sử dụng chứng từ này để mua hàng và thanh toán. Chứng từ ở đây không

phải do khách hàng tạo ra, không phải dành cho một cuộc mua bán cụ thể, mà do

ngân hàng phát hành và có thể sử dụng vào mọi mục đích thanh toán. Vì nó có thể

sử dụng giống như tiền mặt, do đó mô hình này còn được gọi là mô hình mô phỏng

tiền mặt.

Khi có người mua hàng tại cửa hàng và thanh toán bằng chứng từ như trên,

cửa hàng sẽ kiểm tra tính hợp lệ của chúng, dựa trên những thông tin đặc biệt do

ngân hàng tạo ra trên đó. Cửa hàng có thể chọn một trong hai cách: Hoặc là liên hệ

với ngân hàng để chuyển vào tài khoản của mình số tiền trước khi giao hàng

(deposit-now), hoặc là chấp nhận và liên hệ chuyển tiền sau vào thời gian thích hợp

(deposit-later).

Hiện tại hầu hết các dịch vụ mua bán hàng hoá trên mạng đều sử dụng hình

thức thanh toán bằng thẻ tín dụng (Credit card). Người sử dụng cần nhập vào các

thông tin: tên người sử dụng, mã số thẻ, ngày hết hạn của thẻ. Nhưng vì thẻ tín dụng

được dùng phổ biến cho các thanh toán khác nhau, nên những thông tin trên có

nhiều người biết. Thực tế hiện nay, các gian lận về thẻ trên Internet chiếm 6-7%

tổng số các giao dịch thẻ ở các nước châu Âu, tỷ lệ này ở châu Á là 10%. Tại Việt

nam, dịch vụ thẻ tín dụng mới sử dụng cuối năm 1996, nhưng đến nay, tỷ lệ các

giao dịch gian lận trên tổng số các giao dịch là hơn 10%.

Trên thế giới hiện nay, nhu cầu về thương mại điện tử rất phổ biến, nhưng các

vấn đề hạ tầng trong thanh toán điện tử vẫn chưa được giải quyết tương xứng và đáp

ứng được các đòi hỏi đặt ra. Việc nghiên cứu xây dựng các hệ thống thanh toán điện

tử để đảm bảo an toàn thông tin trong các dịch vụ thương mại điện tử là một hướng

nghiên cứu rất cần thiết hiện nay.

49

Xây dựng các hệ thống thanh toán điện tử về mặt kỹ thuật chính là ứng dụng

các thành tựu của lý thuyết mật mã. Các mô hình thanh toán sử dụng các giao thức

mật mã được xây dựng để đảm bảo an toàn cho việc giao dịch thông tin giữa các

bên tham gia.

3.2.2. Rủi ro về an toàn thông tin trong thanh toán điện tử

- Nguy cơ rủi ro tiềm ẩn trong kiến trúc hệ thống công nghệ thông tin, đó là: tổ

chức hệ thống kỹ thuật không có cấu trúc bảo vệ an toàn thông tin, tổ chức và khai

thác cơ sở dữ liệu, quản lý, lưu trữ và sắp đặt thông tin đã phân loại, cơ cấu tiếp cận

từ xa, sử dụng phần mềm ứng dụng, chương trình kiểm tra, kiểm soát người sử

dụng, phát hiện và sử lý sự cố,…

- Nguy cơ mất an toàn thông tin tiềm ẩn trong chính sách bảo mật/ an toàn

thông tin, đó là: sự chấp hành các chuẩn an toàn, tức là sự xác định rõ ràng cái được

phép và không được phép trong khi vận hành hệ thống thông tin, thiết lập trách

nhiệm bảo vệ thông tin không rõ ràng, việc chấp hành sử dụng các chuẩn bảo mật

thông tin được phân cấp, chuẩn an toàn mạng, truy cập từ bên ngoài, chuẩn an toàn

bức tường lửa, chính sách an toàn Internet,…

- Thông tin trong hệ thống thanh toán điện tử cũng dễ bị tổn thất nếu công cụ

quản lý và kiểm tra của các tổ chức quản lý điều khiển hệ thống không được thiết

lập như: các quy định mang tính hành chính như duy trì kiểm tra tiêu chuẩn bảo mật

thường xuyên, các công cụ phát hiện âm mưu xâm nhập nhằm báo trước các ý đồ

tiếp cận trái phép và giúp đỡ phục hồi những sự cố vốn không tránh khỏi, các công

cụ kiểm tra tính toàn vẹn dữ liệu và thông tin tránh bị cá nhân bất hợp pháp và

phương tiện khác thay đổi, công cụ chống virus,…

- Nguy cơ mất thông tin trong hệ thống thanh toán điện tử còn tiềm ẩn ngay

trong cấu trúc phần cứng của các thiết bị tin học (tuy nhiên không phải là tất cả) và

trong phần mềm hệ thống và ứng dụng (kể cả phần mềm mật mã thương mại) do

hãng sản xuất cài sẵn các loại “rệp” điện tử theo ý đồ định trước thường gọi là “bom

điện tử”.

50

- Khi cần thiết, thông qua kênh viễn thông, người ta có thể điều khiển cho “nổ”

tung thiết bị đang lưu trữ thông tin, hoặc tự động rẽ nhánh thông tin vào một địa chỉ

đã định trước mỗi khi có sự truyền và xử lý thông tin của thiết bị (hay đang sử dụng

phần mềm chương trình đó) đó trên mạng, thậm chí có thể điểu khiển làm tê liệt

hoặc làm tắc nghẽn hoạt động trao đổi thông tin của cả hệ thống mạng nếu cần,…

- Các vấn đề về bảo mật, an toàn thông tin cá nhân: Trong khi thực hiện giao

dịch thanh toán, các thông tin cá nhân của khách hàng như họ tên, số tài khoản, số

pin, số chứng minh nhân dân,…, có thể bị tin tặc bắt chặn và đánh cắp trên đường

truyền. Điều này làm ảnh hưởng, tổn hại đến khách hàng và làm giảm uy tín của

nhà cung cấp dịch vụ thanh toán cũng như các website bán hàng, tin tặc có thể ăn

cắp các thông tin cá nhân của chủ thẻ với mục đích lừa đảo.

- Vấn đề về bảo mật, bảo toàn hợp đồng thanh toán: Nếu hợp đồng thanh toán

bị tin tặc bắt chặn giữa đường sau đó chỉnh sửa thông tin (chẳng hạn như số tài

khoản của người thụ hưởng), khi đó bên thanh toán, nếu thanh toán theo số tài

khoản này thì số tiền thanh toán sẽ không đến đúng tài khoản của người thụ hưởng

mà đến tài khoản của tin tặc.

- Vấn đề xác thực hợp đồng thanh toán: Một công ty nhận được một hợp đồng

thanh toán, làm thế nào để xác nhận được đấy chính là hợp đồng mà đối tác gửi cho

họ mà không phải là một người thứ ba khác.

- Vấn đề chống chối cãi trong các hợp đồng thanh toán: Thường thì khi khách

hàng đã thanh toán tiền nhưng sau đó không nhận được sản phẩm giống như đã đặt

hàng, lúc này khách hàng không biết kêu ai.

Việc phân tích các rủi ro tiềm ẩn trên cho chúng ta thấy rằng vấn đề an toàn

thông tin của các chủ thể tham gia hệ thống thanh toán điện tử là rất quan trọng

trong việc hoạch định các phương án bảo mật thông tin trong hệ thống thanh toán

điện tử.

51

Các chủ thể tham gia trong thanh toán điện tử là người tiêu dùng, các doanh

nghiệp (nhà nước và tư nhân) và chính phủ. Nhưng mối quan tâm an toàn thông tin

của các chủ thể tuy có mục đính giống nhau song yêu cầu thì hoàn toàn khác nhau

và sự khác nhau về yêu cầu an toàn thông tin có thể còn có ngay trong cùng một chủ

thể bởi thông tin giao dịch với các chủ thể khác nhau có nguy cơ dọa mất an toàn

thông tin là khác nhau.

Chẳng hạn như: người tiêu dùng chỉ quan tâm đến bảo mật riêng tư và quá trình

thanh toán; các doanh nghiệp quan tâm chủ yếu đến việc bảo mật thông tin mang

tính cạnh tranh; đối với Chính phủ thì mối quan tâm bảo mật sẽ cao hơn, để một

mặt chống được sự xâm hại của bọn đạo tặc kinh tế, mặt khác chống được việc ăn

cắp thông tin của giới tình báo nước ngoài và bọn chống chế độ. Do đó việc bảo mật

thông tin cho các chủ thể tham gia thanh toán điện tử cần tính đến tính chất và yêu

cầu của các chủ thể để xây dựng các phương án bảo mật thông tin tiết kiệm và hiệu

quả. Không thể có một phương án chung cho mọi đối tượng. Và tất nhiên để bảo

mật thông tin trong hệ thống thông tin máy tính cũng như trong thanh toán điện tử,

người ta sử dụng mật mã đồng thời đảm bảo hài hòa lợi ích củ bốn đối tượng sau:

- Người sử dụng (cá nhân, tố chức) mong muốn thông tin của mình được bảo

vệ ở mức cao nhất, đồng thời lại không muốn sự kiểm soát của Chính phủ

(nhất là các cơ quan an ninh) đối với tài sản, thông tin riêng của mình.

- Người nghiên cứu (nhà nước, tư nhân) mong muốn không có sự kiểm soát và

hạn chế nào trong nghiên cứu và sử dụng mật mã để họ có một diễn đàn rộng

rãi nhằm triển khai, chia sẻ và công bố kết quả nghiên cứu.

- Người sản xuất các sản phẩm mật mã muốn càng ít bị kiểm soát càng tốt để

họ có một thị trường rộng đối với các loại sản phẩm mật mã của họ sản xuất

ra.

- Nhà nước vì lợi ích của cộng đồng và an ninh quốc gia, Nhà nước muốn việc

triển khai mật mã trong hệ thống thanh toán điện tử không được làm ảnh

hưởng đến khả năng phát hiện truy bắt tội phạm và làm phương hại đến lợi

ích quốc gia.

52

Để làm cân bằng các yêu cầu bảo mật thông tin của các chủ thể tham gia

thanh toán điện tử và bảo vệ quyền lợi của quốc gia trước sự xâm lược thông tin của

các cường quốc công nghệ cao, nên chính sách mật mã và cơ chế kiểm soát mật mã

cho thanh toán điện tử của từng quốc gia là không giống nhau.

Phương thức giao kết hợp đồng điện tử có những rủi ro nhất định. Thật vậy,

với sự phát triển kinh ngạc của TMĐT, người ta cũng đang phải đối mặt với những

rủi ro phát sinh từ việc giao kết và thực hiện hợp đồng điện tử, mà nguyên nhân

phát sinh những rủi ro đó là do chính tính vô hình và tính hiện đại về mặt kỹ thuật

hiện đại của hợp đồng điện tử mang lại. Trong một môi trường ảo, đôi khi rất khó

khăn để xác định năng lực pháp lý của đối tác giao kết hợp đồng, xác định xem đơn

hàng trên Internet là đơn hàng thật hay đơn hàng giả. Tính “ vô hình” khiến cho

việc lưu trữ hợp đồng nhằm đảm bảo bằng chứng về hợp đồng trong trường hợp xảy

ra tranh chấp cũng là điều không đơn giản.

Làm thế nào để có thể có được một chữ ký điện tử đáng tin cậy? Làm thế

nào để bảo mật hợp đồng hợp đồng điện tử và chữ ký điện tử? Làm thế nào để hạn

chế rủi ro chống phá sự tấn công của các hacker…Đó cũng là những câu hỏi làm

đau đầu không chỉ những nhà kinh doanh mà còn cả những nhà nhà làm luật khi

giao dịch điện tử phát triển tầm quốc tế. Trên thực tế, nhiều người đã phải chịu thiệt

hại do những rủi ro này mang lại. Nhiều khách hàng bị mất tiền do việc bảo mật

không tốt thẻ tín dụng, nhiều doanh nghiệp không lấy được tiền hàng do hợp đồng

bị giả mạo chữ ký điện tử, nhiều vụ tranh chấp rơi vào bế tắc khi cơ quan giải quyết

tranh chấp không tìm được cơ sở pháp lý để bảo vệ quyền lợi của các bên có lợi ích

bị xâm phạm v.v…

Việc thỏa thuận khóa bí mật giảm thiểu rủi ro tấn công thông tin trên đường

truyền là cần thiết trong thanh toán điện tử. Các bên tham gia thanh toán điện tử cần

một cơ chế thỏa thuận khóa bí mật để trao đổi các thông tin một cách an toàn trên

kênh công khai.

53

3.2. BÀI TOÁN: THỎA THUẬN KHÓA BÍ MẬT ĐỂ THỰC HIỆN VIỆC MÃ

HÓA SỬ DỤNG TRONG THANH TOÁN ĐIỆN TỬ

3.2.1. Bài toán: Bảo mật hợp đồng thanh toán điện tử

Vấn đề bảo mật hợp đồng thanh toán giữa doanh nghiệp với doanh nghiệp là

rất quan trọng đặc biệt là trong các doanh nghiệp xuất nhập khẩu. Thật vậy, khi

doanh nghiệp là bên bán (bên A) gửi hợp đồng thanh toán cho bên mua (bên B),

trên đường truyền có thể bị tin tặc tấn công bắt chặn lấy hợp đồng và thay đổi các

thông tin trong hợp đồng, chẳng hạn:

- Tin tặc có thể sửa thông tin của tài khoản của bên A thành tài khoản của

mình nhằm chiếm đoạt tiền. Khi bên B nhận được hợp đồng yêu cầu thanh toán và

gửi và tài khoản đã sửa này thì tiền sẽ được chuyển và tài khoản của kẻ thứ ba này

chứ không đến tài khoản đúng của bên A. Thiệt hại lúc này thuộc về bên B, vì khi B

đã thanh toán tiền thì sẽ yêu cầu bên A giao hàng nhưng thực chất bên A không

nhận được tiền nên sẽ không giao hàng, và bên A đã đánh mất lòng tin của khách

hàng rồi, một thiệt hại không hề nhỏ đối với doanh nghiệp.

- Tin tặc có thể ăn cắp các thông tin về doanh nghiệp của bên A nhằm giả

mạo bên A để thiết lập các hợp đồng thanh toán khác, đối với các khách hàng khác,

lúc này thiệt hại thuộc về cả khách hàng lẫn doanh nghiệp đồng thời làm mất lòng

tin của khách hàng đối với doanh nghiệp.

- Hoặc tin tặc cũng chỉ thay đổi các thông tin trong hợp đồng thanh toán

không đúng với thông tin như đã thỏa thuận. Mục tiêu này không phải vì chiếm đoạt

tiền mà chỉ làm mất lòng tin của đối tác đối vơi doanh nghiệp, đây là mục tiêu của

các đối thủ cạnh tranh trong TMĐT.

Vấn đề bảo mật về hợp đồng thanh toán giữa khách hàng với doanh nghiệp

chủ yếu là vấn đề bảo đảm tính bí mật đối với các thông tin cá nhân của khách hàng.

Vì nếu tin tặc lấy được thông tin cá nhân của khách hàng, như tên, địa chỉ, số điện

thoại… thì chúng sẽ sử dụng những thông tin này để giả mạo khách hàng thiết lập

các tài khoản tín dụng khác nhằm chiếm đoạt tiền của khách hàng.

54

Tóm lại bài toán bảo mật hợp đồng thanh toán là làm sao để bảo đảm tính bí

mật thông tin của bên mua, bên bán và khách hàng trong các giao dịch thanh toán

điện tử, dù là thanh toán bằng thẻ thanh toán, hay tiền điện tử hay séc điện tử.

3.2.2. Bài toán: Bảo toàn hợp đồng thanh toán điện tử

Giữa doanh nghiệp với doanh nghiệp, thì hợp đồng đồng thanh toán điện tử

là bước cuối cùng trong quá trình thực hiện giao dịch hợp đồng TMĐT, tức là hai

bên đã thỏa thuận xong hợp đồng mua bán. Giả sử bên A (bên bán) gửi hợp đồng

yêu cầu thanh toán cho bên B (bên mua) yêu cầu bên B thanh toán như đã thỏa

thuận. Vấn đề ở đây là liệu có một kẻ thứ ba trái phép nào đó chặn xem và chỉnh

sửa nội dung bản hợp đồng thanh toán, chẳng hạn:

- Kẻ thứ ba này có thể sửa thông tin của tài khoản của bên A thành tài khoản của

mình nhằm chiếm đoạt tiền. Khi bên B nhận được hợp đồng yêu cầu thanh toán và

gửi và tài khoản đã sửa này thì tiền sẽ được chuyển và tài khoản của kẻ thứ ba này

chứ không đến tài khoản đúng của bên A. Khi đó thiệt hại về kinh tế thuộc về cả hai

bên A và B đồng thời làm mất lòng tin giữa các bên, đây là mục tiêu của những kẻ

lừa đảo và chiếm đoạt tiền.

- Kẻ thứ ba có thể sửa những thông tin các thông tin trong bản hợp đồng thanh toán,

khi bên B nhận được thì nhận thấy là các thông tin trong hợp đồng thanh toán không

đúng như những điều khoản đã thỏa thuận trong bước thỏa thuận ký kết hợp đồng

và thông báo hủy hợp đồng với bên A, lúc này thiệt hại tài chính thuộc về bên A

đồng thời làm mất long tin đối với khách hàng từ đó đánh mất bạn hàng, đây là mục

tiêu của các đối thủ cạnh tranh trong TMĐT.

Vậy vấn đề mấu chốt trong bảo toàn hợp đồng thanh toán giữa doanh nghiệp

với doanh nghiệp là làm sao để bảo đảm được tính toàn vẹn thông tin (bảo toàn)

trong hợp đồng thanh toán giữa hai bên.

55

3.2.3. Bài toán: Xác thực hợp đồng thanh toán điện tử

Xác thực là thủ tục nhằm kiểm tra các thông báo nhận được, xem chúng có

đến từ một nguồn hợp lệ không và có bị sửa đổi hay không. Xác thực thông báo

cũng có thể kiểm tra tính trình tự và tính đúng lúc. Chữ ký số là một kỹ thuật xác

thực. Nó cũng bao gồm nhiều biện pháp để chống lại việc chối bỏ đã gửi hay đã

nhận thông báo của hai bên gửi và bên nhận.

Khi nhận được đơn đặt hàng, hay giao dịch nào đó chủ doanh nghiệp phải

biết rõ thông tin đó có phải đến từ một nguồn tin cậy hay không? Khách hàng cũng

như doanh nghiệp cần phải biết chính xác họ đang giao dịch với ai, và đối tác của

họ có đáng tin cậy hay không, có an toàn không?

Đôi khi khách hàng hay các nhà giao dịch không biết được mình đang giao

dịch với ai. Rất nhiều công ty ma, hay các địa chỉ ảo, các website giả mạo website

của doanh nghiệp để lừa gạt khách hàng, gây thiệt hại không nhỏ cho khách hàng

giao dịch hay các doanh nghiệp tham gia TMĐT….Sẽ thật là tai hại nếu thanh toán

tiền cho người mà mình không biết chính xác người đó là ai.

3.2.4. Bài toán: Phòng tránh chối cãi hợp đồng thanh toán

Với hợp đồng thông thường, đối tác hai bên gặp mặt nhau, cùng nhau trực

tiếp ký kết hợp đồng và thanh toán trước sự chứng kiến của bên thứ ba với luật giao

dịch rõ rang, minh bạch. Giao kết hợp đồng TMĐT được thực hiện trong môi

trường Internet,…, các bên tham gia ký kết hợp đồng xa nhau về địa lý, thậm chí họ

có thể không biết mặt nhau, thì vấn đề chối bỏ hợp đồng có thể xảy ra rất cao, mặt

khác luật pháp cho TMĐT chưa đầy đủ, gây thiệt hại lớn cho các bên tham gia ký

kết hợp đồng.

56

3.3. GIẢI QUYẾT BÀI TOÁN THỎA THUẬN KHÓA BÍ MẬT ĐỂ THỰC

HIỆN VIỆC MÃ HÓA SỬ DỤNG TRONG THANH TOÁN ĐIỆN TỬ

3.3.1. Giải quyết bài toán: Bảo mật hợp đồng thanh toán điện tử

Bài toán bảo mật hợp đồng thanh toán là làm sao để bảo đảm tính bí mật

thông tin của bên mua, bên bán trong các giao dịch thanh toán điện tử.

Phương pháp ở đây là mã hóa, cụ thể:

- Sử dụng sơ đồ thỏa thuận khóa bí mật để thỏa thuận khóa giữa hai bên với

nhau.

- Sử dụng hệ mã hóa khóa bí mật để mã hóa bản hợp đồng thanh toán.

3.3.2. Giải quyết bài toán bảo toàn hợp đồng trong thanh toán điện tử

Bên A gửi hợp đồng thanh toán cho bên B, bản hợp đồng trên đường truyền.

Khi B nhận được hợp đồng có thể xảy ra các trường hợp sau:

- Thông tin trong hợp đồng đã bị xem trước (đánh cắp thông tin)

- Thông tin trong hợp đồng bị sửa đổi

- Làm sao để xác định được đó có phải hợp đồng do A gửi hay không

Các vấn đề trên có thể giải quyết được bằng các phương pháp: Thỏa thuận

khóa bí mật, mã hóa, chữ ký số và hàm băm

3.3.2.1. Thỏa thuận khóa:

Sơ đồ DiffieHellman: Sau khi thực hiện sơ đồ này hai bên A và B có được khóa bí

mật chung.

3.3.2.2. Chữ ký số:

Để đảm bảo tính toàn vẹn của bản hợp đồng trực tuyến khi chúng được

truyền đi trên mạng trước hết ta cần một kênh truyền an toàn, với các phương pháp

đảm bảo tính toàn vẹn trong giao dịch nói chung, một kỹ thuật đặc trưng quan trọng

để đảm bảo tính toàn vẹn hợp đồng giao dịch là dùng chữ ký số.

57

Khi nội dung của bản hợp đồng bị thay đổi, thì chữ ký trên bản hợp đồng đó

cũng thay đổi theo. Chữ ký số nhằm đảm bảo tính toàn vẹn, duy nhất và không bị

sửa đổi dữ liệu gốc bởi người khác. Chữ ký số là bằng chứng xác thực người gửi

chính là tác giả của thông điệp mà không phải là một ai khác. Không những thế khi

chữ ký số được gắn với thông điệp thì đảm bảo rằng thông tin trên đường truyền sẽ

không bị thay đổi, mọi sự thay đổi dù là nhỏ nhất sẽ đều bị phát hiện dễ dàng.

- Tạo chữ ký số: Dùng hàm băn MD5 băm thông điệp gốc được mã băn có độ dài cố

định (128 bits). Lấy khóa bí mật của người gửi tác động lên mã băm này để tạo

được chữ ký của người gửi. Đính kèm chữ ký này cùng với tài liệu ban đầu gửi cho

bên nhận

- Xác thực chữ ký số: Khi bên nhận nhận được tài liệu kèm chữ ký, tách tài liệu và

chữ ký.

+ Với tài liệu: Dùng hàm băm MD5 băm thông điệp được mã băm 1.

+ Với chữ ký: Bên nhận dùng khóa công khai của người gửi tác động lên chữ ký

(thực chất là quá trình giải mã) thu được mã băm 2.

So sánh mã băm 1 với mã băm 2, nếu mã băm 1 bằng mã băm 2 tức là tài

liệu chưa bị sửa đổi. Nếu mã băm 1 khác mã băm 2 nghĩa là tài liệu đã bị thay đổi,

không còn toàn vẹn nữa.

3.3.2.4. Hàm băm:

Một thông điệp được đưa qua hàm băm sẽ tạo ra một giá trị có độ dài cố

định và ngắn hơn được gọi là “đại diện” hay “bản tóm tắt’. Mỗi thông điệp đi qua

một hàm băm chỉ cho duy nhất một “đại diện” và ngược lại: rất khó có thể tìm được

hai thông điệp khác nhau mà có cùng “đại diện” khi đi qua cùng một hàm băm.

Thay vì phải “ký số” trên tài liệu dài, kỹ thuật thay thế ở đây là dùng hàm

băm để tạo “đại điện” cho tài liệu, sau đó ký số trên tài liệu đại diện này.

58

Với tài liệu đầu vào (bản tin gốc) x, chỉ thu được giá trị băm duy nhất . Nếu

dữ liệu trong bản tin x bị thay đổi hay bị xóa để thành bản tin x’, thì giá trị băn

. Như vậy mọi thay đổi trên bản hợp đồng điện tử bị thay đồi dù là nhỏ

cũng sẽ bị phát hiện. Hơn nữa nội dung của bản tin gốc khó có thể suy ra từ giá trị

băm của nó .

* Băm thông điệp

Thông điệp đưa qua hàm băm, thu được giá trị băm duy nhất =

3.3.3. Giải quyết bài toán: Xác thực hợp đồng thanh toán điện tử

Các tranh chấp xảy ra giữa người gửi và người nhận không có sự tin cậy

tuyệt đối. Có nhiều giải pháp cho vấn đề xác thực như hàm băm, chữ ký số. Giải

pháp thường dùng là chữ ký số, chữ ký số tương tự như chữ ký tay, nó phải có các

tính chất sau:

- Có khả năng xác thực tác giả và thời gian ký.

- Có khả năng xác thực nội dung tại thời điểm ký.

- Các thành viên thứ ba có thể kiểm tra để giải quyết tranh chấp

Vì chức năng của chữ ký số bao hàm cả chức năng xác thực, dựa vào các

tính chất cơ bản này ta đưa ra một số yêu cầu sau cho chữ ký số:

- Chữ ký số phải là một mẫu bít phụ thuộc vào thông báo được ký.

- Chữ ký phải dùng thông tin duy nhất nào đó từ người gửi, nhằm ngăn chặn

tình trạng giả mạo và chối bỏ.

- Dễ nhận ra và dễ kiểm tra chữ ký.

- Khó làm giả chữ ký số bằng cách tạo ra một thông báo mơi cho một chữ ký

số hiện có, hoặc tạo ra một chữ ký giả cho một thông báo cho trước.

- Trong thực tế, cần phải lưu giữ bản sao của chữ ký số.

59

3.3.4. Giải quyết bài toán: Phòng tránh chối cãi hợp đồng thanh toán

Để chống chối bỏ hợp đồng giao dịch trong TMĐT trước hết cần có một

hành lang pháp lý cho giao dịch TMĐT. Về mặt kỹ thuật, giải pháp thông dụng để

đảm bảo chống chối bỏ hợp đồng, đó là chữ ký số và chứng thực điện tử. Ví dụ chữ

ký không thể phủ nhận, đó là chữ ký có thể chứng minh xác thực răng anh A có

tham gia vào một diao dịch điện tử nào hay không, chữ ký trên văn bản giao dịch có

đúng đích thực của anh A hay không, nếu đó là chữ ký của anh A mà A chối bỏ, sẽ

có giao thức chứng minh, buộc A không thể chối bỏ hợp đồng đã thỏa thuận.

3.4. CHƢƠNG TRÌNH THỬ NGHIỆM

3.4.1. Thỏa thuận khóa 1/ Sơ đồ thỏa thuận khóa DiffieHellman:

Nút p & apha sinh các số nguyên tố và phần tử nguyên thủy (

có độ dài 1024 bit)

Nút au & bu sinh số mũ bí mật (độ dài 512 bit) và tính

Nút PrivateKey tính khóa bí mật.

60

2/ Sơ đồ thỏa thuận khóa Blom

- Nút p & ru để khởi tạo các thành phần công khai

- Nút a, b, c để khởi tạo các thành phần bí mật

- Nút PrivateKey để tính khóa bí mật

61

3.4.2. Mã hóa bản hợp đồng điện tử bằn hệ mã hóa DES

- Mã hóa dữ liệu:

+ Nút Bản rõ mở tệp tin là bản rõ để mã hóa

+ Nút Khóa MH mở tệp tin chứa khóa để mã hóa hoặc có thể nhập khóa vào ô

Khóa

+ Nút Mã hóa để thực hiện mã hóa dữ liệu

- Giải mã dữ liệu:

+ Nút Bản mã mở tệp tin là bản mã

+ Nút Khóa_GM mở tệp tin chứa khóa giải mã hoặc có thể nhập khóa vào ô Khóa

+ Nút Giải mã để thực hiện việc giải mã

62

3.4.3. Tạo chữ ký số bằng chữ ký số RSA

- Băm thông điệp: Băm thông điệp bằng thuật toán băm MD5.

Nút Browse để chọn tài liệu cần băm Nút Băm thông điệp để băm thông điệp để tạo mã băm có độ dài cố định

- Tạo chữ ký trên mã băm

Nút Tạo khóa để tạo cặp khóa bí mật/công khai có độ dài 1024 bit

Nút Ký để tạo chữ ký trên mã băm

- Xác thực chữ ký

Nút Chữ ký để mở chữ ký cần xác thực

Nút Xác thực để xác thực chữ ký

63

KẾT LUẬN

Luận văn có hai kết quả chính: 1.

Nghiên cứu tài liệu để trình bày các vấn đề sau: -

+ Một số phương pháp thỏa thuận khóa bí mật: thỏa thuận khóa bí mật bằng

cách gửi khóa bí mật, thỏa thuậ khóa bí mật bằng cách không gửi khóa bí

mật, thỏa thuận khóa bí mật bằng cách chia sẻ khóa thành nhiều mảnh.

+ Ứng dụng thỏa thuận khóa bí mật trong thanh toán điện tử

Lập chương trình thực hiện phương pháp thỏa thuận khóa bí mật -

Thử nghiệm chƣơng trình thỏa thuận khóa bí mật 2.

Em đã tìm hiểu ngôn ngữ lập trình Java đặc biệt là thư viện số lớn

(BigInteger) và thư viện Security để mô phỏng sơ đồ thỏa thuận khóa bí mật Diffie

Hellman, sơ đồ thỏa thuận khóa Blom và hệ mã hóa RSA.

3. Hƣớng phát triển của luận văn

Từ những kết quả thu được ở trên và trong xu thế phát triển mạnh mẽ của

ngành mã hóa và bảo mật dữ liệu em nhận thấy rằng các sơ đồ thỏa thuận khóa bí

mật cần được tiếp tục nghiên cứu, cải tiến và áp dụng rộng rãi hơn nữa trong thực tế.

Sau luận văn này em có hướng phát triển tiếp theo là: dựa vào cơ sở lí thuyết

về thỏa thuận khóa bí mật để xây dựng hệ thống lưu trữ khóa mật vì hiện nay nhu

cầu tạo và lưu trữ khóa mật là rất lớn, đặc biệt là việc bảo vệ các khóa mật này. Đối

với những hệ thống lớn thì việc bảo vệ khóa mật là vấn đề sống còn. Chính vì vậy

em hi vọng sẽ có nhiều người hơn nữa quan tâm đến ngành bảo mật, nghiên cứu và

phát triển những ứng dụng trong thực tế.

Trong quá trình thực hiện luận văn, vì điều kiện thời gian cũng như kiến

thức, luận văn không thể tránh khỏi các sai sót về nội dung và hình thức, rất mong

được sự tham gia góp ý của quý thầy cô và các bạn để bản luận văn hoàn chỉnh hơn.

64

TÀI LIỆU THAM KHẢO

Tiếng Việt

[1] Phan Đình Diệu, Lý thuyết mật mã và an toàn thông tin, NXB Đại học

Quốc Gia Hà Nội, 2002.

[2] Nguyễn Đăng Hậu, Kiến thức thương mại điện tử, 11 - 2004.

[3] Trịnh Nhật Tiến, An toàn dữ liệu, NXB Đại học Quốc Gia Hà Nội, 2008.

[4] Phạm Văn Thiều, Phạm Thu Hằng (dịch), Mật mã từ cổ điển đến lượng tử,

NXB Trẻ, 2009.

[5] Luật Giao dịch điện tử Việt Nam năm 2005.

[6] Luật Thương mại Việt Nam năm 2005.

[7] Bộ Luật dân sự Việt Nam năm 2005.

Tiếng Anh

[8] A. Menezes, P. van Oorschot, S.Vanstone, Handbook of Applied

Cryptography, CRC Press 1996.

[9] Rolf Oppliger, Contemporary Cryptography, 2005.

[10] Các website:

http://www.cryptography.com

http://www.java2s.com

http://www.vi.wikipedia.org/wiki/Digital_signature

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

Xác nhận của giáo viên hƣớng dẫn

Học viên

PGS.TS. Trịnh Nhật Tiến Nông Thị Lệ Quyên