Tải bản đầy đủ (.pdf) (73 trang)

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ử

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.17 MB, 73 trang )

ĐẠ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


6

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

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  P, C, K , E, D , trong đó:
P là tập hữu hạn các bản rõ có thể
C là tập hữu hạn các bảm mã có thể

K là tập hữu hạn các khóa
E là tập các hàm lập mã
D là tập các hàm giải mã

Với khóa lập mã ke  K , có hàm lập mã ek  E , ek : P  C
e

e

Với khóa giải mã k d  K , có hàm giải mã ek  D, ek : C  P
d

d

Sao cho kk  ek  x    x, với mọi x  P
d

e

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

e

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

ke

x

ekd  C 

eke  X 

C

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ã k e , người nhận N có khóa giải
mã k d
Người gửi G muốn gửi bản tin x cho người nhận N. Để đảm bảo bí mật, G
mã hóa bản tin x bằng khóa lập mã k e đượ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 x
vì không có khóa giải mã k d .
Người nhận N nhận được bản mã C, họ dùng khóa giải mã k d để giải mã C sẽ
nhận được bản tin gốc x  d k  ek ( x) 
d

e



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 ( k d  ke ), như hệ mã hóa “dịch chuyển” hay DES.
Khóa K

Bản rõ

Mã hóa

Khóa K

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à Z 26 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)
+ Quy trình mã hóa bằng hệ mã hóa DES:
Bản rõ chữ

(1)

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

(2)

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

(3)

(5)

Bản mã chữ

(4)
Bản mã số

Các đoạn 64 bit
mã số

Hình 1.3. Quy trình mã hóa của hệ mã hóa DES


8

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

L0

R0

L0

L0

f

k1

R1  L0  f  R0 , k1 


L1  R0

L0

f

k2

R2  L1  f  R1 , k2 

L2  R1

L0
R15  L14  f  R14 , k15 

L15  R14

L0

R16  L15  f  R15 , k16 

L0

f

L16  R15
IP 1

Hình 1.4.

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

k16


9

- Thực hiện mã hóa DES theo sơ đồ
+ Bản rõ là xâu x , bản mã là xâu y , khóa là xâu K , đề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ị IP thành IP  x  .
IP  x   L0 R0 , trong đó L0 là 32 bit đầu (Left), R0 là 32 bit cuối (Right). ( IP  x 

tách thành L0 R0 )
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 f :
Li  Ri 1, Ri  Li 1  f  Ri 1, ki 

Trong đó  là phép toán hoặc loại trừ của hai xâu bit (cộng theo module 2).
k1 , k2 ,..., k16 là các khóa con (48 bit) được tính từ khóa gốc K

Bước 3: Thực hiện phép hoán vị ngược IP 1 cho xâu R16 L16 , thu được bản mã y .
y  IP1  R16 , L16  .

1/ Bảng hoán vị ban đầu IP
Bit 1 của IP  x  là bit 58 của x 58

50


42

34

26

18

10

2

Bit 2 của IP  x  là bit 50 của x 60

52

44

36

28

20

12

4

62


54

46

38

30

22

14

6

64
57
59
61
63

58
49
51
53
55

48
41
43
45

47

40
33
35
37
39

32
25
27
29
31

24
17
19
21
23

16
9
11
13
15

8
1
3
5

7

48
47
46

16
15
14

56
55
54

24
23
22

64
63
62

32
31
30

45
44
43
42

41

13
12
11
10
9

53
52
51
50
49

21
20
19
18
17

61
60
59
58
57

29
28
27
26

25

2/ Bảng hoán vị cuối cùng IP 1
40 8
39 7
38 6
37
36
35
34
33

5
4
3
2
1


10

3/ Tính khóa con k1 , k2 ,..., k16 từ khóa gốc K
K

PC 1

C0

D0


LS1

LS1

C1

D1

LS 2

LS 2

C2

D2

PC  2

k1

PC  2

k2

PC  2

k16

………………………


LS16

LS16

C16

D16

Hình 1.5. Sơ đồ tính khóa con trong hệ mã hóa DES
Khóa K 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 ki như sau:
Với khóa K độ 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ị PC 1 : PC 1 K   C0 D0 , trong đó C0 là 28 bit đầu,
D0 là 28 bit cuối của PC 1 K 

Với i  1, 2,...,16 ta tính Ci  LSi Ci1  , Di  LSi  Di 1  , trong đó LSi là phép
chuyển vị vòng sang trái: dịch 1 vị trí nếu i  1, 2,9,16 , dịch 2 vị trí với những vị trí
i khác.

Với i  1, 2,...,16 , khóa ki được tính theo phép hoán vị PC  2 từ
Ci Di : ki  PC  2 Ci Di  (48 bit)


Phép hoán vị PC 1 :
57 49 41 33 25
1
58 50 42 34
10 2
59 51 43
19 11 3
60 52

17
26
35
44

9
18
27
36

63
7
14
21

55
62
6
13

47

54
61
5

39
46
53
28

31
38
45
20

23
30
37
12

15
22
29
4

21

13

5


28

20

12

4

Phép hoán vị PC  2
14 17 11 24
3
28 15 6
23 19 12 4
16 7
27 20

:
1
21
26
13

5
10
8
2

41
30
44


52
40
49

31
51
39

37
45
56

47
33
34

55
48
53

46

42

50

36

29


32


12

5/ Tính hàm f  Ri 1 , ki  :

ki

Ri 1

E

E  Ri 1 



B1

B2

B3

B4

B5

B6


B7

B8

S1

S2

S3

S4

S5

S6

S7

S8

C1

C2

C3

C4

C5


C6

C7

C8

P

f  Ri 1 , ki 

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


13

- Mở rộng xâu Ri 1

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

E : Ri 1 (32 bit )    E  Ri 1   48 bit  . E  Ri 1  gồm 32 bit cũ của Ri 1 và 16 bit Ri 1

xuất hiện lần thứ hai.
- Tính E  Ri 1   ki trong đó E  Ri 1  (48 bit) và ki (48 bit)
Kết quả gồm 8 xâu

Bj

mỗi xâu

có 6 bit ( 8*6  48


Bj

):

B  B1 B2 B3 B4 B5 B6 B7 B8

Tính (3) C j  S j  B j  , j  1,...,8 . Dùng 8 bảng S1 , S2 ,..., S8
S j là bảng cố định với r * c số nguyên từ 0  15,  0  r  3, 0  c  15

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

- Giả sử B j  b1b2b3b4b5b6 (6 bit)
b1b6 xác định biểu diễn nhị phân của hàng r trong S j

 0  r  3

b2b3b4b5 xác định biểu diễn nhị phân cột c trong S j  0  c  15

Xâu C j (4 bit) được định nghĩa là biểu diễn nhị phân của phần tử S j  r, c 
Thực hiện 8 lần (3), ta nhận được xâu C  C1C2 ...C8 (32 bit)
Sau hoán vị P cho kết quả P  C  , đó chính là hàm f  R, k 
Phép hoán vị mở rộng E
32 1
2
3
4
4
5
6

7
8
8
9
10 11 12
12 13 14 15 16
16 17 18 19 20
20 21 22 23 24
24 25 26 27 28
28

29

30

31

32

:
5
9
13
17
21
25
29

Phép hoán vị P
16 7

20
1
15 23
2
8
24

:
21
26
14

29
5
32

12
18
27

28
31
3

17
10
9

19


6

22

11

4

25

13

30

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: k16 , k15 ,..., k1


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 ( k d  ke ), 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 lập mã là khóa công khai. Khóa giải mã là khóa bí mật.
Khóa mã
hóa Ke


Bản rõ

Mã hóa

Khóa giải
mã Kd

Bản mã

Giải mã

Bản rõ

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 p, q là số nguyên tố lớn.
Tính n  p * q , Đặt P  C  Z n

Tính bí mật  (n)   p 1 *  q 1
Chọn khóa công khai b < Φ(n) và nguyên tố cùng nhau với Φ(n).
Khóa bí mật a là nghịch đảo của b theo modulo   n : a * b  1 mod   n
Tập cặp khóa (bí mật, công khai) K   a, b  / a, b  Z n , a * b  1 mod   n  

n, b công khai, a, p, q bí mật.


16

+ Mã hóa
Input: bản rõ x  P , khóa công khai b
Output: bản mã y
Khóa công
khai b

Bản rõ x

Eb  x   xb  mod n 

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ã
Input: bản mã y, khóa bí mật a
Output: bản rõ x

Bản mã y

Khóa bí mật

a

Da  y   y a  mod n 

Bản mã 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.


×