ĐẠ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 Nguyên, năm 2011
Số hóa bởi Trung tâm Học liệu – ĐHTN
http://www.lrc-tnu.edu.vn
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 quá 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 hoàn
thành tốt luận văn này.
Trong quá 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 hoà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 quá 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
http://www.lrc-tnu.edu.vn
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 toá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
http://www.lrc-tnu.edu.vn
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 toán, mô hình hệ thống)...................................59
3.1.1 Phát biểu bài toá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
http://www.lrc-tnu.edu.vn
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
http://www.lrc-tnu.edu.vn
v
DANH MỤC CÁC HÌNH VẼ ÐỒ THỊ
Hình 2.1 : Quá 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: Quá trình mã hóa và giải mã trong hệ mật mã khoá công khai .... …….14
Hình 4.2 : Thuật toá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 quát 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 toàn vẹn của thông điệp ................................................. 24
Hình 2.1 : Chứng chỉ số ............................................................................................ 31
Hình 2.2 : Khuôn 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 : Khuôn 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 : Quá 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
http://www.lrc-tnu.edu.vn
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
http://www.lrc-tnu.edu.vn
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 toá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
http://www.lrc-tnu.edu.vn
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 toá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 toán này thƣờng không nhất
thiết phải giữ bí mật, mà cái luôn 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 : Quá 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
http://www.lrc-tnu.edu.vn
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à quá 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
quá 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 toá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 toá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 toá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
http://www.lrc-tnu.edu.vn
6
+ Thuật toá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 toán dòng - trong đó dữ liệu đầu vào đƣợc mã
hóa từng bit một .
- Các thuật toá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 toán dòng là thuật toán khối với kích thƣớc mỗi khối
là 1 bit
- Một số thuật toá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 toán DES
Mã hóa cổ điển có thuật toá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 toá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 toán DES
Số hóa bởi Trung tâm Học liệu – ĐHTN
http://www.lrc-tnu.edu.vn
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 toá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
http://www.lrc-tnu.edu.vn
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, Khoá là xâu K, đều có độ dài 64
bit.
- Thuật toá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ã hoá với những phép toán giống nhau.
Dữ liệu đƣợc kết hợp với khoá 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 toán hoặc loại trừ của hai xâu bit (cộng theo modulo 2).
k1, k2, ..., k16 là các khoá 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 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 hoán vị cuối cùng IP-1:
Số hóa bởi Trung tâm Học liệu – ĐHTN
http://www.lrc-tnu.edu.vn
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 khoá
LS16
D 16
ki
(48 bit):
Số hóa bởi Trung tâm Học liệu – ĐHTN
http://www.lrc-tnu.edu.vn
32
31
30
29
28
27
26
25
10
1). Khoá K là xâu dài 64 bit, trong đó 56 bit là khoá 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 quá trình tính
toá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 khoá 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ẻ,
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ù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 hoá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
http://www.lrc-tnu.edu.vn
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
http://www.lrc-tnu.edu.vn
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 hoá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
http://www.lrc-tnu.edu.vn
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 toán đối xứng nói chung đòi hỏi công suất tính toán ít hơn
các thuật toá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 toán khóa đối xứng bắt nguồn từ yêu cầu
về sự phân hưởng chìa khóa bí mật, mỗi bê n phải có một bản sao của chìa.
Do khả năng các chìa khóa có thể bị phát hiện bởi đối thủ mật mã, chúng
thƣờng phải đƣợc bảo 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 khoá 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
http://www.lrc-tnu.edu.vn
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 toá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õ.
Quá 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.
Quá trình này đƣợc mô tả trong hình 4.1:
Hình 4.1: Quá trình mã hóa và giải mã trong hệ mật mã khoá công khai
Quá 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
http://www.lrc-tnu.edu.vn
- Xem thêm -