..
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐH CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
-------------------
NGUYỄN VĂN THỰC
CHỮ KÝ SỐ VÀ ỨNG DỤNG
LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH
Chuyên ngành : Khoa học máy tính
Mã số
: 60 48 01
Thái Ngun, năm 2011
Số hóa bởi Trung tâm Học liệu – ĐHTN
i
LỜI CẢM ƠN
Tôi xin chân thành cảm ơn PGS.TS. Đặng Văn Đức đã trực tiếp
hƣớng dẫn, tạo mọi điều kiện thuận lợi cho tơi trong suốt q trình nghiên cứu
và thực hiện báo cáo luận văn. Thầy đã định hƣớng nghiên cứu, giúp tơi hồn
thành tốt luận văn này.
Trong q trình học tập và thực hiện luận văn tốt nghiệp tại Trƣờng Đại
học Công nghệ Thông tin và Truyền thông - Đại học Thái Nguyên, tôi xin
chân thành cảm ơn các thầy cô trong đào tạo sau Đại học, các thầy cơ đã trực
tiếp giảng dạy, giúp đỡ tơi hồn thành tốt chƣơng trình học tập và luận văn tốt
nghiệp.
Tơi xin cảm ơn toàn thể các anh chị học viên lớp Cao học Khoa học
máy tính, cùng gia đình, bạn bè đã động viên giúp đỡ tơi trong q trình học
tập cũng nhƣ nghiên cứu đề tài Luận văn này.
Học viên
Nguyễn Văn Thực
Số hóa bởi Trung tâm Học liệu – ĐHTN
ii
MỤC LỤC
LỜI CẢM ƠN ..............................................................................................................i
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT ................................................iv
DANH MỤC CÁC HÌNH VẼ ÐỒ THỊ ......................................................................v
MỞ ĐẦU ....................................................................................................................1
CHƢƠNG 1
TỔNG QUAN VỀ MẬT MÃ VÀ ỨNG DỤNG CHỮ KÝ SỐ ............................. 3
1.1. Giới thiệu: ...........................................................................................................3
1.2. Khái niệm hệ mật mã .........................................................................................4
1.3. Hệ mật mã đối xứng ...........................................................................................4
1.3.1. Khái niệm ......................................................................................................... 4
1.3.2. Khái niệm Block ciphers (khối mật mã) và Stream ciphers (dịng mậtmã)5
1.3.3. Thuật tốn DES ............................................................................................... 6
1.3.4. Ƣu, nhƣợc điểm của Hệ mật mã khóa đối xứng ......................................... 13
1.4. Hệ mật mã khóa cơng khai ..............................................................................14
1.4.1. Hệ mật mã khóa cơng khai là gì ?................................................................ 14
1.4.2. Thuật toán RSA ............................................................................................. 15
1.4.3. Ƣu, nhƣợc điểm của Hệ mật mã khóa cơng khai ....................................... 17
1.5. Hàm băm ...........................................................................................................19
1.5.1. Khái niệm ....................................................................................................... 19
1.5.2. Đặc tính của hàm băm một chiều ................................................................ 19
1.6. Chữ ký số ...........................................................................................................20
1.7. Hiện trạng triển khai chữ ký số ......................................................................24
1.7.1 Hiện trạng triển khai chữ ký số trên thế giới .............................................. 24
1.7.2 Hiện trạng triển khai chữ ký số tại Việt Nam ............................................. 26
1.7.3 các tiêu chuẩn đƣợc ban hành về chữ ký số tại Việt Nam .......................... 28
CHƢƠNG 2
CHỨNG CHỈ SỐ VÀ HỆ THỐNG CHỨNG THỰC SỐ ....................................31
2.1. Giới thiệu chứng chỉ số ....................................................................................31
2.1.1. Giới thiệu........................................................................................................ 31
2.1.2. Chứng chỉ khóa cơng khai X.509 ............................................................... 33
2.1.3. Thu hồi chứng chỉ.......................................................................................... 38
Số hóa bởi Trung tâm Học liệu – ĐHTN
iii
2.1.4. Chính sách của chứng chỉ ............................................................................ 38
2.1.5. Cơng bố và gửi thông báo thu hồi chứng chỉ .............................................. 39
2.2. Hạ tầng khóa cơng khai PKI ...........................................................................42
2.2.1. Các thành phần của PKI .............................................................................. 42
2.2.2. Chức năng cơ bản của PKI .......................................................................... 46
2.2.3. Một số chức năng khác của PKI .................................................................. 47
2.3. Hệ thống chứng chỉ số CA (Certificate Authority) .......................................49
2.3.1. Chức năng của CA ........................................................................................ 50
2.3.2. Các mơ hình CA ............................................................................................ 52
2.3.3. Một số chứng chỉ số do CA phát hành ........................................................ 57
CHƢƠNG 3
CÀI ĐẶT HỆ THỐNG CHỨNG CHỈ SỐ THỦ NGHIỆM ................................ 59
3.1 Tổng quan về hệ thống chứng chỉ số thử nghiệm tại Trƣờng Dự bị Đại học
Dân tộc Sầm Sơn (phát biểu bài tốn, mơ hình hệ thống)...................................59
3.1.1 Phát biểu bài tốn........................................................................................... 59
3.2. Quy trình đăng kí, cấp phát và huỷ bỏ chứng chỉ .........................................64
3.2.1. Qui trình đăng ký và cấp chứng chỉ ............................................................ 64
3.2.2. Qui trình huỷ bỏ chứng chỉ .......................................................................... 65
3.3 Xây dựng phần mềm Demo về việc tạo Ký và Xác thực ..............................65
3.3.1 Ký văn bản và xác thực chữ ký ..................................................................... 65
3.3.2 Ký trên thông điệp ......................................................................................... 68
3.3.3 Tạo chữ ký ...................................................................................................... 69
KẾT LUẬN ..............................................................................................................70
KIẾN NGHỊ CÁC HƢỚNG NGHIÊN CỨU TIẾP THEO ................................ 71
DANH MỤC TÀI LIỆU THAM KHẢO ............................................................... 72
Số hóa bởi Trung tâm Học liệu – ĐHTN
iv
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
STT
TÊN VIẾT TẮT
1
2
3
4
5
RSA
DES
PKI
VRS
AIS
6
7
8
9
10
11
12
13
CA
IIS
DNS
WAN
LAN
MMC
CRL
LDAP
14
15
16
RA
TSA
OCSP
Ý NGHĨA
Hệ mật mã khóa cơng khai
Hệ mật mã khóa đối xứng
Public key infrastructure - Hạ tầng khóa cơng khai
Hệ thống báo cáo điều hành VRS (VNPT Reports System)
Hệ thống thông tin điều hành AIS (Administrative
Information System)
Bộ cấp chứng thực số (Certificate Authorities)
Internet Information Services
Domain Name System
Wide Area Networks
Local Area Network
Microsoft Management Console
Certificate Revocation List
Giao thức truy nhập nhanh dịch vụ thƣ mục ( Lightweight
Directory Access Protocol)
Thành phần cấp quyền đǎng nhập (Registration Authorities)
Thành phần gán nhãn thời gian (Timestamp Authorities)
Online Certificate Status Protocol
Số hóa bởi Trung tâm Học liệu – ĐHTN
v
DANH MỤC CÁC HÌNH VẼ ÐỒ THỊ
Hình 2.1 : Q trình mã hóa và giải mã . ………………………………………………..4
Hình 3.1: Mơ hình mã hóa khóa đối xứng………………………………………...........5
Hình 4.1: Q trình mã hóa và giải mã trong hệ mật mã khố cơng khai .... …….14
Hình 4.2 : Thuật tốn RSA ....................................................................................... 15
Hình 4.3.2.1 : Mã hóa thơng điệp sử dụng khóa bí mật S để mã thơng điệp và khóa
cơng khai P để mã khoa bí mật S .............................................................................. 18
Hình 4.3.2.2 : Giải mã thơng điệp sử dụng khóa bí mật S để giải mã thơng điệp và
khóa riêng P để giải mã khóa bí mật S ............................................................ …….18
Hình 5.1. Minh họa hàm băm .................................................................................. 19
Hình 6.1 : Mơ hình tổng qt quá trình ký và kiểm tra chữ ký ................................ 21
Hình 6.2 a : Băm thơng điệp .................................................................................... 22
Hình 6.2 b : Ký trê n bản băm ................................................................................... 22
Hình 6.2 c : Truyền dữ liệu thơng tin cần gửi .......................................................... 22
Hình 6.3 a : Xác minh chữ ký ................................................................................... 23
Hình 6.3 b : Tiến hành băm thông điệp gốc đi kèm................................................. 23
Hình 6.3 c : Kiểm tra tính tồn vẹn của thơng điệp ................................................. 24
Hình 2.1 : Chứng chỉ số ............................................................................................ 31
Hình 2.2 : Khn dạng chứng chỉ X.509 .................................................................. 34
Hình 2.3 : Nội dung chi tiết của chứng chỉ ............................................................... 37
Hình 2.4 : Khn dạng danh sách chứng chỉ bị thu hồi ........................................... 40
Hình 2.5 : Client kiểm tra trạng thái Chứng chỉ sử dụng OCSP .............................. 42
Hình 2.6 : Các thành phần của PKI.......................................................................... 43
Hình 2.7: Mơ hình trao đổi dữ liệu giữa CA, RA, Clients với Repository ................ 45
Hình 2.7 : Mối quan hệ giữa các thành phần của PKI ............................................. 46
Hình 2.8 : Mơ hình tổng quan xác thực chéo............................................................ 48
Hình 2.9 : Mơ hình thiết lập xác thực chéo .............................................................. 49
Hình 2.10 : Quá trình cấp chứng chỉ số với khóa cơng khai do người dùng tạo ..... 50
Hình 2.11 : Quá trình cấp chứng chỉ với cặp khóa do CA tạo ra............................. 51
Hình 2.12 : Q trình chứng thực khóa cơng khai ................................................... 52
Hình 2.12 : Mơ hình CA đơn ..................................................................................... 52
Hình 2.13 : Mơ hình phân cấp .................................................................................. 53
Hình 2.15 : Mơ hình mắt lưới ................................................................................... 54
Hình 2.15 : Mơ hình Bridge CA ................................................................................ 55
Hình 2.16 : Danh sách các Root CA tin cậy trong Internet Explorer ...................... 56
Số hóa bởi Trung tâm Học liệu – ĐHTN
MỞ ĐẦU
Trong sự phát triển không ngừng của ngành Công nghệ thông tin kéo
theo là rất nhiều ứng dụng vào đời sống của con ngƣời, tạo cho chúng ta sự
thoái mái trong việc giao tiếp, trao đổi thông tin, tất cả các sự việc đều đƣợc
cập nhật một cách nhanh chóng trên các phƣơng tiện truyền thơng. Mọi thơng
tin của cá nhân, tập thể, doanh nghiệp, hay thâm chí của các Bộ, Ban ngành
các cấp đều có thể đƣợc đƣa lên mạng Internet. Làm thế nào để có thể khẳng
định những thơng tin đó là của ai? để giải quyết vấn đề này không nên sử
dụng con dấu hay chữ ký thông thƣờng mà sử dụng chữ ký số là một giải
pháp tốt nhất.
Mặt khác sự bùng nổ phƣơng thức truyền thông tin thông qua Internet
và các phƣơng tiện truyền thông khác đã đƣa chúng ta đến việc cần phải đối
mặt với việc bảo mật những thông tin cá nhân, thông tin riêng tƣ, các thông
tin cá nhân riêng tƣ có thể bị thay đổi khi đƣa lên Internet, để đảm bảo sự
khơng thể chối cãi khi ai đó đƣa thông tin cá nhân của ngƣời khác lên mạng
Internet cần phải chứng thực rằng mình đã đƣa ra thơng tin đó, để khi cần thì
các cơ quan pháp luật có thể sử dụng khi có sự kiện tụng, hay tranh chấp.
Trong sự phát triển không ngừng của ngành Công nghệ thông tin kéo
theo là rất nhiều ứng dụng vào đời sống của con ngƣời, tạo cho chúng ta sự
thoái mái trong việc giao tiếp, trao đổi thông tin, tất cả các sự việc đều đƣợc
cập nhật một cách nhanh chóng trên các phƣơng tiện truyền thông. Mọi thông
tin của cá nhân, tập thể, doanh nghiệp, hay thâm chí của các Bộ, Ban ngành
các cấp đều có thể đƣợc đƣa lên mạng Internet. Làm thế nào để có thể khẳng
định những thơng tin đó là của ai? để giải quyết vấn đề này không nên sử
dụng con dấu hay chữ ký thông thƣờng mà sử dụng chữ ký số là một giải
pháp tốt nhất.
2
Mặt khác sự bùng nổ phƣơng thức truyền thông tin thông qua Internet
và các phƣơng tiện truyền thông khác đã đƣa chúng ta đến việc cần phải đối
mặt với việc bảo mật những thông tin cá nhân, thông tin riêng tƣ, các thơng
tin cá nhân riêng tƣ có thể bị thay đổi khi đƣa lên Internet, để đảm bảo sự
không thể chối cãi khi ai đó đƣa thơng tin cá nhân của ngƣời khác lên mạng
Internet, trao đổi thông tin giữa các cơ quan, trong một cơ quan cần phải
chứng thực rằng mình đã đƣa ra thơng tin đó, để khi cần thì các cơ quan pháp
luật có thể sử dụng khi có sự kiện tụng, hay tranh chấp.
Cấu trúc của luận văn bao gồm 3 chƣơng với những nội dung cụ thể
nhƣ sau:
Chương 1: Tổng quan về mật mã và ứng dụng chữ ký số
Chương 2: Chứng chỉ số và hệ thống chứng thực số
Chương 3: Cài đặt hệ thống chứng chỉ số thử nghiệm
Số hóa bởi Trung tâm Học liệu – ĐHTN
3
CHƢƠNG 1:
TỔNG QUAN VỀ MẬT MÃ VÀ ỨNG DỤNG CHỮ KÝ SỐ
1.1. Giới thiệu:
Mật mã đã đƣợc con ngƣời sử dụng từ lâu đời. Các hình thức mật
mã sơ khai đã đƣợc tìm thấy từ khoảng bốn nghìn năm trƣớc trong nền văn
minh Ai Cập cổ đại. Trải qua hàng nghìn năm lịch sử, mật mã đã đƣợc sử
dụng rộng rãi ở khắp nơi trê n thế giới từ Đông sang Tây để giữ bí mật cho
việc giao lƣu thơng tin trong nhiều lĩnh vực hoạt động giữa con ngƣời và
các quốc gia, đặc biệt trong các lĩnh vực quân sự , chính trị, ngoại giao.
Mật mã trƣớc hết là một loại hoạt động thực tiễn, chức năng chính
của nó là để giữ bí mật thơng tin. Ví dụ muốn gửi một văn bản từ một ngƣời
gửi A đến một ngƣời nhận B, A phải tạo cho văn bản đó một bản mã mật
tƣơng ứng và thay vì gửi văn bản rõ thì A chỉ gửi cho B bản mã mật, B
nhận đƣợc bản mã mật và khôi phục lại văn bản mã mật mình nhận đƣợc
thành văn bản rõ để hiểu đƣợc thông tin mà A muốn gửi cho mình.
Do văn bản gửi đi thƣờng đƣợc chuyển qua các con đƣờng cơng khai
nên ngƣời khá c có thể “lấy trộm” đƣợc, nhƣng vì đó là bản mật mã nên
khơng đọc hiểu đƣợc nội dung thơng tin; Cịn A có thể tạo ra bản mã mật và
B có thể giải bản mã mật thành bản rõ để hiểu đƣợc là do hai ngƣời đã có
một thoả thuận về một chìa khóa chung, chỉ với khóa chung này thì A mới
tạo đƣợc bản mã mật từ bản rõ và B mới khơi phục đƣợc bản rõ từ bản mã
mật. Khóa chung đó đƣợc gọi là khóa mật mã. Để thực hiện đƣợc một
phép mật mã, ta cịn cần có một thuật tốn biến bản rõ cùng với khóa mật
Số hóa bởi Trung tâm Học liệu – ĐHTN
4
mã thành bản mã mật và một thuật toán ngƣợc lại biến bản mật cùng với
khóa mật mã thành bản rõ. Các thuật tốn đó đƣợc gọi tƣơng ứng là thuật
toán lập mã và thuật toán giải mã. Các thuật tốn này thƣờng khơng nhất
thiết phải giữ bí mật, mà cái ln cần đƣợc giữ bí mật là khóa mật mã.
Trong thực tiễn, có những hoạt động ngƣợc lại với hoạt động bảo
mật là khám phá bí mật từ các bản mã “lấy trộm” đƣợc, hoạt động này
thƣờng đƣợc gọi là mã thám hay phá khóa. [3]
1.2. Khái niệm hệ mật mã
Hệ mật mã đƣợc định nghĩa là một bộ năm (P, C, K, E, D) trong đó:
1 . P là tập hữu hạn các các bản rõ có thể
2 . C tập hữu hạn các bản mã có thể
3 . K là tập hữu hạn các khóa có thể
4 . E là tập các hàm lập mã
5 . D là tập các hàm giải mã. Với mỗi k K, có một hàm lập mã ek
E, ek : P → C và một hàm giải mã dk D, dk: C → P sao cho dk (ek(x))
=x,xP
Quá trình mã hóa và giải mã
Hình 2.1 : Q trình mã hóa và giải mã
1.3. Hệ mật mã đối xứng
1.3.1. Khái niệm
Trong các hệ mã đối xứng chỉ có một khóa đƣợc chia sẻ giữa các
bên tham gia liên lạc, trao đổi thơng tin.
Số hóa bởi Trung tâm Học liệu – ĐHTN
5
Cứ mỗi lần truyền tin bảo mật, cả ngƣời gửi A và ngƣời nhận B
cùng thoả thuận trƣớc với nhau một khóa chung K, sau đó ngƣời gửi dùng ek
để lập mã cho thông báo gửi đi và ngƣời nhận dùng dk để giải mã bản mật
mã nhận đƣợc. Ngƣời gửi và ngƣời nhận có cùng một khóa chung K, đƣợc
giữ bí mật dùng cho cả ngƣời lập mã và ngƣời giải mã. Hệ mật mã với
cách sử dụng trê n đƣợc gọi là mật mã khóa đối xứng hay cịn gọi là mật mã
khóa bí mật.
Hình 3.1: Mơ hình mã hóa khóa đối xứng
Hình 3 . 1 chính là q trình tiến hành trao đổi thơng tin giữa bên gửi
và bên nhận thông qua việc sử dụng phƣơng pháp mã hóa đối xứng. Trong
q trình này thì thành phần quan trọng nhất cần phải đƣợc giữ bí mật
chính là khóa. Việc trao đổi, thỏa thuận về thuật tốn đƣợc sử dụng trong
việc mã hóa có thể tiến hành một cách cơng khai, nhƣng bƣớc thỏa thuận
về khóa dùng cho việc mã hóa và giải mã phải tiến hành bí mật. [4]
1.3.2. Khái niệm Block ciphers (khối mật mã) và Stream ciphers
(dịng mật mã)
Mã hóa đối xứng có thể phâ n thành hai nhóm phụ :
1.3.2.1. Block ciphers (khối mật mã)
- Block ciphers: thuật tốn khối - trong đó từng khối dữ liệu trong
văn bản ban đầu đƣợc thay thế bằng một khối dữ liệu khác có cùng độ dài.
Độ dài mỗi khối gọi là block size, thƣờng đƣợc tính bằng đơn vị bit . Ví dụ :
+ Thuật tốn 3 – Way có kích thƣớc khối bằng 96 bit .
Số hóa bởi Trung tâm Học liệu – ĐHTN
6
+ Thuật tốn DES có kích thƣớc khối là 64 bit.
- Một số thuật toán khối nhƣ DES , 3DES , AES , 3 - Way…
1.3.2.2. Stream ciphers (dòng mật mã)
- Stream ciphers: thuật tốn dịng - trong đó dữ liệu đầu vào đƣợc mã
hóa từng bit một .
- Các thuật tốn dịng có tốc độ nhanh hơn các thuật toán khối, đƣợc
dùng khi khối lƣợng dữ liệu cần mã hóa chƣa đƣợc biết trƣớc, ví dụ trong
kết nối khơng dây.
- Có thể coi thuật tốn dịng là thuật tốn khối với kích thƣớc mỗi khối
là 1 bit
- Một số thuật tốn dịng nhƣ : RC4 , A5 / 1 , A5 / 2 …
1.3.3. Thuật toán DES
1.3.3.1. Sự ra đời của thuật tốn DES
Mã hóa cổ điển có thuật tốn đơn giản và dễ hiểu. Chính phƣơng
pháp mã hóa cổ điển đã giúp chúng ta tiếp cận với các thuật tốn mã hóa
đối xứng đƣợc sử dụng ngày nay.
Mã hóa cổ điển có 2 phƣơng pháp nổi bật đó là phép thay thế và
phép chuyển dịch. Trong phép thay thế, một chữ cái này đƣợc thay thế bởi
chữ cái khác và trong phép chuyển dịch, các chữ cái đƣợc sắp xếp theo
một trật tự khác.
Hệ mã chuẩn DES đƣợc xâ y dựng tại Mỹ trong những năm 70 theo
yêu cầu của Văn phòng quốc gia về chuẩn (NBS) và đƣợc sự thẩm định của
an ninh quốc gia là một ví dụ về mật mã cổ điển. DES kết hợp cả hai
phƣơng pháp thay thế và chuyển dịch. DES thực hiện mã hóa trê n từng khối
bản rõ là một xâ u 64 bit, có khóa là một xâu 56 bit và cho ra bản mã cũng
là một xâu 64 bit. Hiện nay, DES và biến thể của nó (3DES) vẫn đƣợc sử
dụng thành công trong nhiều ứng dụng.
1.3.3.2. Quy trình của thuật tốn DES
Số hóa bởi Trung tâm Học liệu – ĐHTN
7
1.3.2.2.1. Qui trình mã hóa theo DES.
Giai đoạn 1 : Bản Rõ chữ
=====
Bản Rõ số (Dạng nhị phân)
Chia thành
Giai đoạn 2 : Bản Rõ số
=====
Các đoạn 64 bit Rõ số
Giai đoạn 3 : 64 bit Rõ số
=====
64 bit Mã số
Kết nối
Giai đoạn 4 : Các đoạn 64 bit Mã số == Bản Mã số (Dạng nhị phân)
Giai đoạn 5 : Bản Mã số
=====
Bản Mã chữ
1.3.2.2.2. Lập mã và Giải mã DES
1.3.2.2.2.1. Qui trình lập mã DES
Thuật tốn DES tập trung thực hiện Giai đoạn 3 .của qui trình mã hóa.
Đó là chuyển đổi bản rõ số với 64 bit thành bản mã với 64 bit.
Sơ đồ
Bản rõ: 64 bit
L0
R0
f
L1 = R0
R1 = L0 f ( R0, k1)
f
L2 = R1
L15 = R14
Số hóa bởi Trung tâm Học liệu – ĐHTN
R16 = L15 f (R15,
k1
k2
R2 = L1 f ( R1, k2)
R15 = L14 f ( R14,
k15)
f
k16
L16 = R15
8
1.3.2.2.2.2. 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ố là xâu K, đều có độ dài 64
bit.
- Thuật tốn mã hóa DES thực hiện qua 3 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ố với những phép tốn giống nhau.
Dữ liệu đƣợc kết hợp với khố thơng qua hàm f :
L i = R i -1,
R i = L i -1 f (R i -1 , k i ), trong đó:
là phép tốn hoặc loại trừ của hai xâu bit (cộng theo modulo 2).
k1, k2, ..., k16 là các khố con (48 bit) đƣợc tính từ khóa gốc K.
Bước 3: Thực hiện phép hốn vị ngƣợc IP-1 cho xâu R16L16 , thu đƣợc
bản mã y.
y = IP -1 (R16 , L16).
- Bảng hoán vị ban đầu IP:
+ bit 1 của IP(x) là bit 58 của x.
+ bit 2 của IP(x) là bit 50 của x.
58
60
62
64
57
59
61
63
50
52
54
56
49
51
53
55
42
44
46
48
41
43
45
47
34
36
38
40
33
35
37
39
26
28
30
32
25
27
29
31
18
20
22
24
17
19
21
23
10
12
14
16
9
11
13
15
- Bảng hốn vị cuối cùng IP-1:
Số hóa bởi Trung tâm Học liệu – ĐHTN
2
4
6
8
1
3
5
7
9
40
39
38
37
36
35
34
33
8
7
6
5
4
3
2
1
48
47
46
45
44
43
42
41
16
15
14
13
12
11
10
9
56
55
54
53
52
51
50
49
24
23
22
21
20
19
18
17
64
63
62
61
60
59
58
57
1.3.2.2.2.3 Tính các khóa con k1 , k2, … , k16 từ khóa gốc K.
Sơ đồ
K
PC - 1
C0
D0
LS1
LS1
C1
LS2
D1
PC - 2
k1
PC - 2
k2
PC - 2
k16
LS2
C2
D2
……………………………
LS16
C 16
Tính khố
LS16
D 16
ki
(48 bit):
Số hóa bởi Trung tâm Học liệu – ĐHTN
32
31
30
29
28
27
26
25
10
1). Khố K là xâu dài 64 bit, trong đó 56 bit là khố và 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 q trình tính
tốn.
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.
2). Tính khố k i nhƣ sau:
+ Với khoá K độ dài 64 bit, ta loại bỏ các bit kiểm tra tính chẵn lẻ,
hốn vị 56 bit cịn lại theo phép hốn vị
PC-1:
PC-1 (K ) = C0 D0
Trong đó C0 là 28 bit đầu, D0 là 28 bit cuối cùng của PC-1( K ).
+ Với i = 1, 2, ... , 16, ta tính: Ci = LSi ( Ci-1 ),
Di = LSi ( Di-1 ).
Trong đó LS i là phép chuyển dịch 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 giá trị i
khác.
+ Với i = 1, 2, ... , 16, khóa k i đƣợc tính theo phép hốn vị PC-2
từ Ci Di :
k i = PC-2 (Ci Di )
(48 bit).
- Phép hoán vị PC - 1:
57
1
10
19
63
7
14
21
49
58
2
11
55
62
6
13
41
50
59
3
47
54
61
5
33
42
51
60
39
46
53
28
25
34
43
52
31
38
45
20
- Phép hoán vị PC - 2:
17
26
35
44
23
30
37
12
Số hóa bởi Trung tâm Học liệu – ĐHTN
9
18
27
36
15
22
29
4
14
3
23
16
41
30
44
46
17
28
19
7
52
40
49
42
11
15
12
27
31
51
39
50
24
6
4
20
37
45
56
36
1
21
26
13
47
33
34
29
5
10
8
2
55
48
53
32
11
1.3.2.2.2.4 Tính hàm f (R i -1 , k i )
Sơ đồ
ki
Ri-1
E
E(Ri-1)
+
B1
B2
B3
B4
B5
B6
B7
S1
S2
S3
S4
S5
S6
S7
C1
C2
C3
C4
C5
C6
C7
B8
S8
C8
P
f (Ri-1, ki)
Số hóa bởi Trung tâm Học liệu – ĐHTN
12
- Tính hàm f (R i -1 , k i )
Để cho đơn giản, ta không ghi chỉ số i-1, i, và mơ tả cách tính f (R ,k ):
1). Mở rộng xâu R (32 bit) thành xâu 48 bit, theo hàm mở rộng E:
E: R (32 bit) --- > E(R) (48 bit).
E(R) gồm 32 bit của cũ của R và 16 bit của R xuất hiện lần thứ 2.
2). Tính E(R) k, trong đó E(R) (48 bit) và k (48 bit).
Kết quả gồm 8 xâu Bj, mỗi xâu Bj có 6 bit (8*6 = 48):
B = B1 B2 B3 B4 B5 B6 B7 B8.
3). Tính Cj = Sj (Bj), j = 1,… , 8. Dùng 8 bảng S1, S2, …, S8.
Sj là bảng cố định với r * c số nguyên từ 0 -> 15, (0 r 3,0 c 15).
Sj thể hiện việc thay thế mỗi Bj thành Cj (Cj là xâu 4 bit) theo qui
tắc sau:
- Giả sử Bj = b1 b2 b3 b4 b5 b6. (6 bit).
+ b1 b6 xác định biểu diển nhị phân của hàng r trong Sj (0 r 3 ).
+ b2 b3 b4 b5 xác định biểu diển nhị phân của cột c trong Sj (0 c 15 ).
Xâu Cj (4bit) đƣợc định nghĩa là biểu diển nhị phân của phần tử
Sj(r,c).
4). Thực hiện 8 lần bƣớc 3), ta nhận đƣợc xâu C = C1 C2 … C8 (32 bit).
Sau hoán vị P, cho kết quả P (C), đó chính là f (R, k).
- Phép hốn vị mở rộng E:
32
4
8
12
16
20
24
28
1
5
9
13
17
21
25
29
2
6
10
14
18
22
26
30
3
7
11
15
19
23
27
31
4
8
12
16
20
24
28
32
5
9
13
17
21
25
29
1
Số hóa bởi Trung tâm Học liệu – ĐHTN
- Phép hoán vị P:
16
7 20 21 29 12 28 17
1 15 23 26
2
5 18 31 10
8 24 14 32 27
19 13 30
6 22 11
3
9
4 25
13
1.3.2.2.2.5. Qui trình giải mã DES
Qui trình giải mã của DES tƣơng tự nhƣ qui trình lập mã, nhƣng theo
dùng các khóa thứ tự ngƣợc lại:
k16 , k15, … , k1 .
Xuất phát (đầu vào) từ bản mã y, kết quả (đầu ra) là bản ró x.
1.3.4. Ưu, nhược điểm của Hệ mật mã khóa đối xứng
1.3.4.1. Ưu điểm
Các thuật tốn đối xứng nói chung địi hỏi cơng suất tính tốn ít hơn
các thuật tốn bất đối xứng. Vì vậy hiệu suất của các ứng dụng sử dụng
khóa đối xứng thƣờng tốt hơn.
Tốc độ mã hóa và giải mã nhanh.
1.3.4.2. Nhược điểm
Nhƣợc điểm của các thuật tốn khóa đối xứng bắt nguồn từ u cầu
về sự phân hưởng chìa khóa bí mật, mỗi bê n phải có một bản sao của chìa.
Do khả năng các chìa khóa có thể bị phát hiện bởi đối thủ mật mã, chúng
thƣờng phải đƣợc bảo an trong khi phân phối và trong khi dùng. Yêu cầu về
việc lựa chọn, phân phối và lƣu trữ các chìa khóa một cách khơng có lỗi,
khơng bị mất mát là một việc làm khó khăn, khó có thể đạt đƣợc một cách
đáng tin cậy.
Để đảm bảo giao thông liên lạc an toàn cho tất cả mọi ngƣời trong
một nhóm gồm n ngƣời, tổng số lƣợng chìa khố cần phải có là
Để khắc phục hiện tƣợng khơng thể lƣu trữ một khối lƣợng khóa quá
lớn đáp ứng đƣợc nhu cầu mã dịch, ngƣời ta xem xét đến việc sử dụng các hệ
mật mã khối với độ dài không lớn lắm nhƣ DES…
Mặc dù đã thực hiện việc mã hóa và giải mã bằng các hệ mật mã
khối nhƣ đã nêu ở trên thì vấn đề phân phối và thoả thuận khóa vẫn phải
đƣợc thực hiện. Nhƣ vậy phân phối và thoả thuận khóa là một vấn đề chƣa
thể đƣợc giải quyết trong các hệ mật mã khóa đối xứng.
Số hóa bởi Trung tâm Học liệu – ĐHTN
14
1.4. Hệ mật mã khóa cơng khai
Hệ mật mã khóa công khai ra đời đã giải quyết vấn đề phân phối và
thoả thuận khóa của mật mã khóa đối xứng.
1.4.1. Hệ mật mã khóa cơng khai là gì ?
Hệ mật mã khóa cơng khai hay cịn đƣợc gọi là hệ mật mã phi đối
xứng sử dụng một cặp khóa, khóa mã hóa cịn gọi là khóa cơng khai (public
key) và khóa giải mã đƣợc gọi là khóa bí mật hay khóa riê ng (private key).
Trong hệ mật này, khóa mã hóa khác với khóa giải mã. Về mặt tốn học
thì từ khóa cơng k h a i rất khó tính đƣợc khóa riê ng. Biết đƣợc khóa này
khơng dễ dàng tìm đƣợc khóa kia.
Khóa giải mã đƣợc giữ bí mật trong khi khóa mã hóa đƣợc cơng bố
cơng khai. Một ngƣời bất kỳ có thể sử dụng khóa cơng khai để mã hóa
tin tức, nhƣng chỉ có ngƣời nào có đúng khóa giải mã mới có khả năng xem
đƣợc bản rõ.
Q trình mã hóa và giải mã
Ngƣời gửi A sẽ mã hóa thơng điệp bằng khóa cơng khai của ngƣời
nhận và ngƣời nhận B sẽ giải mã thông điệp với khóa riêng tƣơng ứng của
mình.
Q trình này đƣợc mơ tả trong hình 4.1:
Hình 4.1: Q trình mã hóa và giải mã trong hệ mật mã khố cơng khai
Q trình này đƣợc mô tả cụ thể nhƣ sau :
Nếu Alice muốn gửi một thơng điệp bí mật tới Bob, Alice sẽ tìm chìa
Số hóa bởi Trung tâm Học liệu – ĐHTN
15
khóa cơng khai của Bob. Sau khi kiểm tra chắc chắn chìa khóa đó chính
là của Bob chứ khơng phải của ai khác ( thông qua chứng chỉ điện tử ),
Alice dùng nó để mã hóa thơng điệp của mình và gửi Bob.
Khi Bob nhận đƣợc bức thông điệp đã mã hóa, Bob sẽ dùng chìa
khóa bí mật của mình để giải mã nó. Nếu giải mã thành cơng thì bức thơng
điệp đó đúng là gửi cho Bob. [2]
1.4.2. Thuật toán RSA
Hệ RSA là hệ đƣợc cộng đồng chuẩn quốc tế và công nghiệp chấp
nhận rộng rãi trong việc thực
thi mật mã khóa cơng khai.
Hệ mật mã RSA, do Rivest, Shamir và Adleman tìm ra, đã đƣợc cơng
bố lần đầu tiên vào tháng 8 năm 1977 trê n tạp chí Scientific American. Hệ
mật mã RSA đƣợc sử dụng rộng rãi trong thực tiễn đặc biệt cho mục đích
bảo mật và xác thực dữ liệu số. Tính bảo mật và an toàn của chúng đƣợc
bảo đảm bằng độ phức tạp của một bài toán số học nổi tiếng là bài toán
phân tích số ngun thành các thừa số ngun tố.
Thuật tốn RSA đƣợc mơ tả nhƣ hình 4.2:
Phát sinh khóa cơng khai và khóa riêng
- Chọn 2 số nguyê n tố lớn p và q
- Tính n = p*q
- Chọn khóa lập mã e sao cho e và (p-1)*(q-1) là
số nguyê n tố cùng nhau
- Tính khóa giải mã d = e-1 mod ((p-1)*(q-1))
- Xây dựng khóa cơng khai từ (n, e)
- Xây dựng khóa riê ng từ (d, n)
Mã hóa :
c = me mod n
Hình 4.2 : Thuật tốn RSA
Số hóa bởi Trung tâm Học liệu – ĐHTN
16
Sơ đồ tạo chữ ký RSA
Sơ đồ chữ ký RSA có độ phức tạp tính tốn phụ thuộc vào việc giải
quyết bài toán lũy thừa theo modulo các số rất lớn. Các phƣơng pháp tấn công
RSA và các vấn đề khác liên quan đƣợc đƣa ra bởi Davia, Jonge và Chaum.
1/. Thuật toán sinh khoá
+ Chọn hai số nguyên tố lớn ngẫu nhiên p và q.
Tính n = pq và = (p - 1)(q - 1 ).
+ Chọn số tự nhiên ngẫu nhiên b:
1< b < và UCLN(b, ) = 1 hay b Z*p .
+ Tính số tự nhiên a (duy nhất):
1< a < và ab 1 (mod )
+ Khố cơng khai là (n, b), khố bí mật là a.
2/. Thuật tốn sinh chữ ký
+ Ký trên thơng điệp m.
+ Chọn khóa bí mật a. Tính chữ ký là
s = m a mod n
3/. Thuật toán xác nhận chữ ký
+ Xác nhận chữ ký s.
+ Chọn khố cơng khai b. Tính
m' = s b mod n
+ Chữ ký đúng nếu m = m'.
Trong trƣờng hợp nếu m là tài liệu lớn, thì ngƣời ta ký vào đại diện
tài liệu z = H(m). [2]
Ví dụ:
Chữ ký trên thơng điệp m =31229978.
Sinh khố:
+ Chọn số ngun tố p = 7927 và q = 6997.
Tính n = p * q = 5546521,
Số hóa bởi Trung tâm Học liệu – ĐHTN
= 7926 * 6996 = 55450296.
17
+ Chọn khóa cơng khai b = 5, tính khóa bí mật a = 44360237.
Sinh chữ ký: Ký trên thơng điệp m =31229978.
+ Chữ ký trên m là
55465219) = 30729435.
s = m
a
(mod n) = 31229978
4430237
(mod
Xác nhận chữ ký:
+ Tính m' = sb (mod n) = 307294355 (mod 55465219) = 31229978.
+ Chữ ký đúng vì m’ = m.
1.4.3. Ưu, nhược điểm của Hệ mật mã khóa cơng khai
1.4.3.1. Ưu điểm
Vấn đề cịn tồn đọng của hệ mật mã khóa đối xứng đƣợc giải
quyết nhờ hệ mật mã khóa cơng khai. Chính ƣu điểm này đã thu hút
nhiều trí tuệ vào việc đề xuất, đánh giá các hệ mật mã công khai.
Một vấn đề nữa nảy sinh khi sử dụng các hệ mật mã khóa cơng khai
là việc xác thực mà trong mơ hình hệ mật mã khóa đối xứng khơng đặt ra.
Do các khóa mã cơng khai đƣợc cơng bố một cách công khai trê n mạng
cho nê n việc đảm bảo rằng “ khóa đƣợc cơng bố có đúng là của đối tƣợng
cần liên lạc hay không ? ” là một kẽ hở có thể bị lợi dụng. Vấn đề xác thực
này đƣợc giải quyết cũng chính bằng các hệ mật mã khóa cơng khai. Nhiều
thủ tục xác thực đã đƣợc nghiên cứu và sử dụng nhƣ Kerberos, X.509…
Một ƣu điểm nữa của các hệ mật mã khóa cơng khai là các ứng dụng
của nó trong lĩnh vực chữ ký số, cùng với các kết quả về hàm băm, thủ tục
ký để bảo đảm tính tồn vẹn của một văn bản đƣợc giải quyết.
1.4.3.2. Nhược điểm
Do bản thân các hệ mật mã khóa cơng khai đều dựa vào các giả thiết
liê n quan đến các bài tốn khó nên đa số các hệ mật mã này đều có tốc độ
mã dịch khơng nhanh. Chính nhƣợc điểm này làm cho các hệ mật mã khóa
cơng khai khó đƣợc dùng một cách độc lập.
Số hóa bởi Trung tâm Học liệu – ĐHTN
18
Vấn đề đặt ra là “ Làm thế nào để mã hóa và giải mã các văn bản có
kích thƣớc lớn? ”. Do đó trong thực tế thay bằng việc mã hóa văn bản có
kích thƣớc lớn bằng lƣợc đồ khóa cơng khai thì văn bản này sẽ đƣợc mã
hóa bằng một hệ mã đối xứng có tốc độ cao nhƣ DES,…sau đó khóa
đƣợc sử dụng trong hệ mã đối xứng sẽ đƣợc mã hóa sử dụng mật mã khóa
cơng khai.
Phƣơng pháp này rất khả thi trong việc mã và giải mã những văn bản
có kích thƣớc lớn nhƣ đƣợc mơ tả trong hình 4.3.2.1 và 4.3.2.2
- Alice gửi dữ liệu sang cho Bob
Hình 4.3.2.1 : Mã hóa thơng điệp sử dụng khóa bí mật S để mã thơng
điệp và khóa cơng khai P để mã khoa bí mật S
Hình 4.3.2.2 : Giải mã thơng điệp sử dụng khóa bí mật S để giải mã
thơng điệp và khóa riêng P để giải mã khóa bí mật S. [8]
Số hóa bởi Trung tâm Học liệu – ĐHTN
19
1.5. Hàm băm
1.5.1. Khái niệm
Hàm băm (hash function) là giải thuật nhằm sinh ra các giá trị
băm tƣơng ứng với mỗi khối dữ liệu (có thể là một chuỗi kí tự, một đối
tƣợng…) các thuật tốn này khơng sử dụng khố để mã hố , nó có
nhiệm vụ băm thơng điệp đƣợc đƣa vào theo một thuật toán h một chiều
nào đó, rồi đƣa ra một bản băm – văn bản đại diện – có kích thƣớc cố định.
Giá trị của hàm băm là duy nhất và không thể suy ngƣợc lại đƣợc nội
dung thông điệp từ giá trị băm này.
Hàm băm nhận giá trị vào (Input) là một thông điệp M ở có chiều dài
bất kỳ, để biến (băm) thành một giá trị h ở đầu ra (Output) có chiều dài cố
định, h đƣợc gọi là giá trị băm (Hash Value).
Văn bản cần băm
Băm
(sử dụng hàm băm)
Văn bản đã băm
(độ dài cố định)
(độ dài bất kỳ)
Hình 5.1. Minh họa hàm băm
Một số thuật toán băm đƣợc biết đến nhƣ MD5 , SHA -1 …
1.5.2. Đặc tính của hàm băm một chiều
Hàm băm một chiều h có một số đặc tính quan trọng sau:
- Với thơng điệp đầu vào x thu đƣợc bản băm z = h(x) là duy nhất.
- Nếu dữ liệu trong thông điệp x thay đổi hay bị xố để thành thơng
điệp x’ thì h(x’) ≠ h(x). Cho dù chỉ là một sự thay đổi nhỏ hay chỉ là xố đi
1 bit dữ liệu của thơng điệp thì giá trị băm cũng vẫn thay đổi.
- Nội dung của thông điệp gốc không thể bị suy ra từ giá trị hàm
băm. Nghĩa là với thơng điệp x thì dễ dàng tính đƣợc z = h(x), nhƣng lại
Số hóa bởi Trung tâm Học liệu – ĐHTN