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

CHỮ ký số và ỨNG DỤNG

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.77 MB, 78 trang )

Số hóa bởi Trung tâm Học liệu – ĐHTN

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

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

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

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


iv
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
STT
TÊN VIẾT TẮT
Ý NGHĨA
1
RSA
Hệ mật mã khóa công khai
2
DES
Hệ mật mã khóa đối xứng
3
PKI
Public key infrastructure - Hạ tầng khóa công khai
4
VRS
Hệ thống báo cáo điều hành VRS (VNPT Reports System)
5
AIS
Hệ thống thông tin điều hành AIS (Administrative
Information System)
6
CA
Bộ cấp chứng thực số (Certificate Authorities)
7
IIS
Internet Information Services
8
DNS

Domain Name System
9
WAN
Wide Area Networks
10
LAN
Local Area Network
11
MMC
Microsoft Management Console
12
CRL
Certificate Revocation List
13
LDAP
Giao thức truy nhập nhanh dịch vụ thƣ mục ( Lightweight
Directory Access Protocol)
14
RA
Thành phần cấp quyền đǎng nhập (Registration Authorities)
15
TSA
Thành phần gán nhãn thời gian (Timestamp Authorities)
16
OCSP
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 : 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
ã t
hô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

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


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.

Số hóa bởi Trung tâm Học liệu – ĐHTN

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

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ã e
k
 E, e
k
: P → C và một hàm giải mã d
k
 D, d
k
: C → P sao cho d
k
(e
k
(x))
= x ,  x  P
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


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 e
k
để lập mã cho thông báo gửi đi và ngƣời nhận dùng d
k
để 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

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

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ơ đồ


















L
16
= R
15

R
16
= L
15

f (R
15
,
k
16
)
f
R
15

= L
14

f ( R
14
,
k
15
)

L
15
= R
14

R
1
= L
0

f ( R
0
, k
1
)
L
1
= R
0


f
R
2
= L
1

f ( R
1
, k
2
)

L
2
= R
1

L
0

R
0

Bản rõ: 64 bit

f
k
1

k

2

k
16


Số hóa bởi Trung tâm Học liệu – ĐHTN

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) = L
0
R
0
,trong đó L
0
là 32 bit đầu (Left),R
0
là 32 bit cuối (Right).
(IP (x) tách thành L

0
R
0
).
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).
k
1
, k
2
, , k
16
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 R

16
L
16
, thu đƣợc
bản mã y.
y = IP
-1
(R
16
, L
16
).
- 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.







- Bảng hoán vị cuối cùng IP
-1
:
58
50
42
34

26
18
10
2
60
52
44
36
28
20
12
4
62
54
46
38
30
22
14
6
64
56
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


Số hóa bởi Trung tâm Học liệu – ĐHTN

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

45
13
53
21
61
29
36
4
44
12
52
20
60
28
35
3
43
11
51
19
59
27
34
2
42
10
50
18
58
26

33
1
41
9
49
17
57
25
1.3.2.2.2.3 Tính các khóa con k
1
, k
2
, … , k
16
từ khóa gốc K.
Sơ đồ






C
0
D
0







C
1

D
1





C
2

D
2



……………………………







C
16



D
16


Tính khoá k
i
(48 bit):
K
PC - 1
LS
16

LS
16

PC - 2
k
16
LS
1

LS
1

LS
2

LS

2

PC - 2
k
1
PC - 2
k
2

Số hóa bởi Trung tâm Học liệu – ĐHTN

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 ) = C
0
D
0

Trong đó C
0

là 28 bit đầu, D
0
là 28 bit cuối cùng của PC-1( K ).
+ Với i = 1, 2, , 16, ta tính: C
i
= LS
i
( C
i-1
), D
i
= LS
i
( D
i-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ừ C
i
D
i
:
k

i
= PC-2 (C
i
D
i
) (48 bit).
- Phép hoán vị PC - 1: - Phép hoán vị PC - 2:









57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4

14 17 11 24 1 5
3 28 15 6 21 10
23 19 12 4 26 8
16 7 27 20 13 2
41 52 31 37 47 55

30 40 51 45 33 48
44 49 39 56 34 53
46 42 50 36 29 32

Số hóa bởi Trung tâm Học liệu – ĐHTN

11
1.3.2.2.2.4 Tính hàm f (R
i -1
, k
i
)
Sơ đồ



















B
1
B
2

B
3

B
4

B
5

B
6

B
7

B
8




S
1
S

2

S
3

S
4

S
5

S
6

S
7

S
8




C
1
C
2

C
3


C
4

C
5

C
6

C
7

C
8



















R
i-1

k
i

E
+
E(R
i-1
)
P
f (R
i-1
, k
i
)

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 B
j
, mỗi xâu B
j
có 6 bit (8*6 = 48):
B = B
1
B
2
B
3
B
4
B
5
B
6
B
7
B
8
.

3). Tính C
j
= S
j
(B
j
), j = 1,… , 8. Dùng 8 bảng S
1
, S
2
, …, S
8
.
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 việc thay thế mỗi B
j
thành C
j

(C
j
là xâu 4 bit) theo qui
tắc sau:
- Giả sử B
j
= b
1
b
2
b
3
b
4
b
5
b
6
. (6 bit).
+ b
1
b
6
xác định biểu diển nhị phân của hàng r trong S
j
(0

r

3 ).

+ b
2
b
3
b
4
b
5
xác định biểu diển nhị phân của cột c trong S
j
(0

c

15 ).
Xâu C
j
(4bit) đƣợc định nghĩa là biểu diển nhị phân của phần tử
S
j
(r,c).
4). Thực hiện 8 lần bƣớc 3), ta nhận đƣợc xâu C = C
1
C
2
… C
8
(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: - Phép hoán vị P:


32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1




16 7 20 21 29 12 28 17
1 15 23 26 5 18 31 10
2 8 24 14 32 27 3 9
19 13 30 6 22 11 4 25

Số hóa bởi Trung tâm Học liệu – ĐHTN

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: k
16
, k
15
, … , k
1
.

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

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 khai 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

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ố nguyên thành các thừa số nguyên tố.

Thuật toán RSA đƣợc mô tả nhƣ hình 4.2:






















Hình 4.2 : Thuật toán RSA


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 = m
e
mod n


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 toá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 )
+ Khoá công khai là (n, b), khoá bí mật là a.
2/. Thuật toá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 khoá 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 khoá:
+ Chọn số nguyên tố p = 7927 và q = 6997.
Tính n = p * q = 5546521,  = 7926 * 6996 = 55450296.

Số hóa bởi Trung tâm Học liệu – ĐHTN

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à s = m

a
(mod n) = 31229978
4430237
(mod
55465219) = 30729435.
Xác nhận chữ ký:
+ Tính m' = s
b
(mod n) = 30729435
5
(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 toà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 toá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


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
ã t
hô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 toán này không sử dụng khoá để mã hoá , 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).














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ị xoá để 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à xoá đ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
Băm
(sử dụng hàm băm)
Văn bản đã băm
(độ dài cố định)
Văn bản cần băm

(độ dài bất kỳ)

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×