-i-
S húa bi Trung tõm Hc liu i hc Thỏi Nguyờn
Thỏi Nguyờn - 2012
-ii-
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
MỤC LỤC
MỞ ĐẦU 1
Chương 1 TỔNG QUAN HỆ MẬT MÃ KHÓA CÔNG KHAI 4
1.1. Khái niệm về hệ mật mã 4
1.1.1. Khái niệm chung về mật mã và hệ mật mã 4
1.1.2. Phân loại các hệ mật mã 6
1.2. Lý thuyết độ phức tạp 10
1.2.1. Khái niệm độ phức tạp của thuật toán 10
1.2.2. Các bài toán khó tính toán và ứng dụng trong mật mã học 12
1.3. Hệ mật mã khóa công khai 13
1.3.1. Các quan điểm cơ bản của hệ mật mã khoá công khai 13
1.3.3. Hoạt động của hệ mật mã khóa công khai 14
1.3.4. Các yêu cầu của hệ mật mã khóa công khai 14
1.4. Độ an toàn của hệ mật mã 15
1.2. Chữ ký số 16
1.2.1. Giới thiệu về chữ ký số 16
1.2.2. Quá trình ký và xác thực chữ ký 17
Chương 2 MỘT SỐ THUẬT TOÁN PHÂN PHỐI VÀ QUẢN LÝ KHÓA
CÔNG KHAI 22
2.1. Hệ mật mã khóa công khai RSA 22
Chương 3 XÂY DỰNG ỨNG DỤNG THỬ NGHIỆM 50
3.1. Bài toán quản lý đề thi trong hệ thống các trường phổ thông 50
3.2. Áp dụng hệ mật mã khóa công khai cho quản lý đề thi trong các trường phổ
thông 52
3.2.1. Mô tả hệ thống. 52
3.2.2. Chức năng và giao diện chính của chương trình 54
3.2.3. Các bước thực hiện chương trình 56
3.2.5. Mã chương trình 64
Đánh giá kết quả thử nghiệm chương 3 64
KẾT LUẬN 65
TÀI LIỆU THAM KHẢO 66
-iv-
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn tới trường Đại học CNTT & TT, Viện CNTT Việt Nam,
nơi các thầy cô đã tận tình truyền đạt các kiến thức quý báu cho tôi trong suốt quá
trình học tập. Xin cảm ơn Ban Giám Hiệu nhà trường và các cán bộ đã tạo điều kiện
tốt nhất cho chúng tôi học tập và hoàn thành đề tài tốt nghiệp của mình. Đặc biệt,
tôi xin gửi tới TS Bùi Văn Thanh, thầy đã tận tình chỉ bảo tôi trong suốt quá trình
thực hiện đề tài lời cảm ơn và biết ơn sâu sắc nhất. Bên cạnh những kiến thức khoa
học, thầy đã giúp tôi nhận ra những bài học về phong cách học tập, làm việc và
những kinh nghiệm sống quý báu. Tôi xin bày tỏ lòng biết ơn tới gia đình, bạn bè,
đồng nghiệp và những người thân đã động viên khích lệ tinh thần và giúp đỡ để tôi
hoàn thành luận văn này.
Thái Nguyên, ngày 10 tháng 10 năm 2012
NSA
National Security Agency
7
THPT
Trung học phổ thông
-vi-
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
LỜI CAM ĐOAN
Tôi xin cam đoan, toàn bộ nội dung liên quan tới đề tài được trình bày trong
luận văn là bản thân tôi tự tìm hiểu và nghiên cứu, dưới sự hướng dẫn khoa học của
TS Bùi Văn Thanh.
Các tài liệu, số liệu tham khảo được trích dẫn đầy đủ nguồn gốc. Tôi xin chịu
trách nhiệm trước pháp luật lời cam đoan của mình.
Học viên thực hiện
Hoàng Văn Quyến
-vii-
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
DANH MỤC CÁC BẢNG
Hình 3.16: Giao diện tạo khóa RSA 54
Hình 3.17: Mã hóa văn bản bằng AES 55
Hình 3.18: Mã hóa khóa bằng RSA 56
Hình 3.19: Giải mã khóa bằng RSA 56
Hình 3.20: Tạo khóa RSA tùy chọn 56
Hình 3.21:Tạo khóa RSA tự động 57
Hình 3.22:Lưu khóa RSA tự động thành tệp 57
Hình 3.23: Mã hóa nội dung văn bản 57
Hình 3.24: Mở tệp văn bản cần mã hóa 58
Hình 3.25: Thông báo mã hóa thành công. 58
Hình 3.26: Xem nội dung tệp được mã hóa 58
Hình 3.27: Mã hóa tệp *.* 58
Hình 3.28: Chọn File cần mã hóa 59
-ix-
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
Hình 3.29: Thông báo kết quả mã hóa 59
Hình 3.30: Xem kết quả file đã mã hóa 59
Hình 3.31: Giải mã nội dung văn bản 60
Hình 3.32: Chọn File cần giải mã 60
Hình 3.33: Thông báo kết quả giải mã 60
Hình 3.234: Xem nội dung tệp vừa giải mã 60
Hình 3.35: Giải mã File được mã hóa 61
Hình 3.36: Mở tệp cần giải mã 61
Hình 3.37: Thông báo kết quả giải mã 61
Hình 3.38: Xem nội dung tệp vừa giải mã 62
Hình 3.39: Mã hóa khóa RSA 62
Hình 3.40: Chọn File khóa cần mã hóa 62
Hình 3.41: Kết quả mã hóa khóa 63
thứ ba không thể biết được khóa. Phương pháp này được gọi là mã hóa bằng khóa
riêng hoặc mật mã khóa đối xứng. Có một số chuẩn thuật toán khóa đối xứng, ví dụ
như DES, AES, v.v… Người ta đã chứng minh được khả năng bảo mật cao của các
thuật toán đối xứng chuẩn nói trên và chúng đã được kiểm định qua thời gian. Tuy
nhiên, vấn đề nảy sinh với các thuật toán đối xứng là việc trao đổi khóa. Các bên
tham gia giao tiếp đòi hỏi được chia sẻ một bí mật là “khóa”, “khóa” cần được trao
đổi giữa họ qua một kênh thông tin an toàn. An toàn của thuật toán khóa đối xứng
phụ thuộc vào độ mật của khoá. Khóa thường có độ dài hàng trăm bit, tùy thuộc vào
thuật toán được sử dụng. Vì thông tin có thể trung chuyển qua các điểm trung gian
-2-
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
nên không thể trao đổi khóa một cách trực tuyến và an toàn. Trong một mạng rộng
kết nối hàng trăm hệ thống, việc trao đổi khóa trở thành quá khó khăn và thậm chí
không thực tế.
Cho đến cuối những năm 1970, tất cả các quá trình truyền thông tin bảo mật
đều sử dụng hệ mật mã đối xứng. Điều này có nghĩa rằng một ai đó có đủ thông tin
(khóa) để mã hóa thông tin thì cũng có thông tin đủ để giải mã. Năm 1976 Diffe và
Hellman [5], [6] đã nêu định hướng phát triển mới cho các hệ thống mật mã bằng
việc phát minh hệ mật mã khóa công khai. Ý tưởng chính là sử dụng hàm một chiều
(one-way function) để mã hóa. Các hàm sử dụng để mã hóa thuộc một lớp các hàm
một chiều đặc biệt, chúng là một chiều nếu một số thông tin nhất định (khóa để giải
mã) được giữ bí mật. Nói một cách hình thức, hàm mã hóa khóa công khai là một
hàm ánh xạ các dãy tin (bản rõ) thành các dãy được mật mã hóa; bất cứ ai có khóa
công khai đều có thể thực hiện việc mã hóa này. Tuy nhiên việc tính toán hàm
nghịch đảo (hàm để giải mã thông tin được mã hóa thành các dãy tin ban đầu - bản
rõ) không thể thực hiện được trong một khoảng thời gian hợp lý mà không cần thêm
một số thông tin bổ sung, gọi là khóa riêng. Điều này có nghĩa rằng mọi người có
thể gửi thông tin đến một người nào đó bằng cách sử dụng cùng một khóa để mã
được cũng như được áp dụng để giải quyết các vấn đề thực tiễn trong nhiều
lĩnh vực.
Mục đích của luận văn là trình bày các kết quả tìm hiểu được về hệ mật mã
khóa công khai, các thuật toán mã hóa và giải mã sử dụng trong các hệ mật mã khóa
công khai, đồng thời tìm hiểu khả năng ứng dụng hệ mật mã khóa công khai trong
quản lý đề thi trong các trường phổ thông.
Nội dung luận văn gồm 3 chương:
Chương I. TỔNG QUAN HỆ MẬT MÃ KHÓA CÔNG KHAI
Chương này trình bày các kiến thức tổng quan về các hệ mật mã nói chung
và hệ mật mã khóa công khai nói riêng, các yêu cầu về hệ mật mã khóa công khai
cũng như tính bảo mật của chúng.
Chương II. MỘT SỐ THUẬT TOÁN PHÂN PHỐI VÀ QUẢN LÝ KHÓA
Chương này đi sâu phân tích cơ chế hoạt động của một số hệ mật mã khóa
công khai đã được chấp nhận như các hệ chuẩn như RSA, ELGAMAL và RABIN.
Độ mật, hiệu suất thực hiện và ứng dụng của các hệ mật mã nói trên cũng được đề
cập và đánh giá.
Chương III. XÂY DỰNG ỨNG DỤNG THỬ NGHIỆM
Chương này đề cập đến việc xây dựng ứng dụng thử nghiệm để giải quyết
vấn đề quản lý và bảo mật đề thi trong hệ thống các trường phổ thông dựa vào các
thuật toán RSA và AES.
-4-
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
Chương 1
TỔNG QUAN HỆ MẬT MÃ KHÓA CÔNG KHAI
1.1. Khái niệm về hệ mật mã
1.1.1. Khái niệm chung về mật mã và hệ mật mã
Mật mã học là một lĩnh vực liên quan đến các kỹ thuật ngôn ngữ và toán học
nhằm đảm bảo an toàn thông tin. Về phương diện lịch sử, mật mã học gắn liền với
Anh có thể được mã hóa như một dãy nhị phân chiều dài 5.
P là tập hợp các dãy chữ cái (các xâu) lấy từ A. Mỗi phần tử của P được
gọi là bản rõ.
C ký hiệu tập các dãy chữ cái lấy từ một bảng chữ cái nào đó, có thể trùng
hoặc khác bảng chữ cái A. C được gọi là tập hợp các bản mã, mỗi phần tử
của C được gọi là bản mã.
K là tập hữu hạn các phần tử, mỗi phần tử được gọi là khóa. Bản thân K
được gọi là không gian khóa.
Định nghĩa 1.1 Một hệ mật mã là một bộ năm (P,C,K,E,D), trong đó P là
một tập các bản rõ, C là một tập các bản mã, K là không gian khoá và E là tập các
song ánh {E
K
:PC)}, D là tập các song ánh {E
K
:CP)} thoả mãn các điều
kiện sau:
1. Với mỗi KK tồn tại duy nhất một song ánh E
K
E, E
K
:PC. E
K
được
gọi là quy tắc mã hóa tương ứng với khóa K.
2. Với mỗi KK tồn tại một một song ánh D
K
D, D
K
:CP. D
K
Giả sử bản rõ là
12
, , . . . ,
n
P x x x
với số nguyên
1n
nào đó. Ở đây mỗi ký
hiệu của bản rõ x
i
A, 1 i n. Mỗi x
i
sẽ được mã hoá bằng quy tắc mã hóa E
K
với
khoá K được xác định trước đó: y
i
= E
K
(x
i
), 1 i n và bản mã nhận được
12
, , . . . ,
n
C y y y
sẽ được gửi. Khi nhận được
12
, , . . . ,
n
D C P
Ban đầu, bản rõ được người gửi A mã hóa với khóa K. Sau đó bản mã được
gửi tới người nhận B. Khi nhận được bản mã, người B sử dụng khóa K giải mã để
thu được bản rõ. Do đó, nếu một người khác có được khóa K thì hệ thống mã hóa
này sẽ bị tấn công (Hình 1.2).
Hình 1.2: Sơ đồ hoạt động của mã hóa khóa đối xứng
-7-
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
Thuật toán này yêu cầu người gửi và người nhận phải thoả thuận thuật toán
mã hóa và khóa dùng cho quá trình mã hoá và giải mã trước khi bản rõ được mã hóa
và được gửi đi, và khoá này phải được cất giữ bí mật. Độ an toàn của thuật toán này
phụ thuộc vào khoá, nếu khoá bị lộ, bất kì người nào có khóa cũng có thể mã hoá và
giải mã. Việc trao đổi, thoả thuận về thuật toán được sử dụng trong việc mã hoá có
thể tiến hành một cách công khai, nhưng bước thoả thuận về khoá trong việc mã
hoá-giải mã và trao đổi khóa phải tiến hành bí mật và an toàn. Sau khi đã thỏa thuận
được thuật toán mã hóa, thống nhất được khóa dùng để mã hóa và giải mã, bên gửi
sẽ mã hoá bản rõ bằng cách sử dụng khoá bí mật đã thống nhất và gửi bản mã cho
bên nhận. Sau khi nhận được bản mã, bên nhận sẽ sử dụng chính khoá bí mật mà
hai bên đã thoả thuận để giải mã và khôi phục lại bản rõ.
Chúng ta có thể thấy rằng thuật toán mã hoá đối xứng sẽ rất có lợi khi được
áp dụng trong các cơ quan hay tổ chức đơn lẻ. Nhưng nếu cần phải trao đổi thông
tin với một bên thứ ba thì việc đảm bảo tính bí mật của khoá phải được đặt lên
hàng đầu.
Trong các mã hoá cổ điển, ví dụ như phương pháp mã hóa Ceaser Cipher thì
khoá chính là phép dịch ký tự, cụ thể là phép dịch 3 ký tự. Trong phương pháp mã
hoá hoán vị thì khóa nằm ở số hàng hay số cột mà chúng ta qui định. Khoá này có
3 2 1
K K K
C E D E P
1 2 3
K K K
P D E D C
AES (Advanced Encryption Standard): được sử dụng để thay thế cho DES.
Nó hỗ trợ độ dài của khoá từ 128 bit cho đến 256 bit.
Nhận xét:
Trong các giao dịch trên mạng, khóa K phải được truyền đi trên môi
trường này, do đó nó có thể bị lấy cắp. Để an toàn, việc bảo mật cho khóa
K cần phải được chú trọng. Thường phải dùng thêm các cơ chế và giải
thuật khác trong việc quản lý, trao đổi khóa giữa các đối tượng.
Không thể xác thực được nguồn gốc nội dung của bản rõ cũng như không
có tính chất không thể phủ nhận của chủ thể.
Khi số lượng khóa bí mật tăng lên, việc quản lý các khóa này trở nên
phức tạp và khó khăn khi một người phải giữ nhiều khóa bí mật để giao
dịch với nhiều đối tượng khác nhau.
Những nhược điểm trên dẫn đến hệ mật mã khóa đối xứng khó có thể áp
dụng một cách rộng rãi.
b. Các vấn đề đối với phương pháp mã hóa đối xứng
Phương mã hóa đối xứng đòi hỏi người mã hóa và người giải mã phải sử
dụng chung một khóa. Khi đó khóa phải được giữ bí mật tuyệt đối. Hệ mã hóa đối
B
K
đã được công bố, cũng rất khó có khả năng giải mã được bản mã này trong khoảng
thời gian chấp nhận được do không biết được khóa riêng
B
k
của B.
Khóa công khai K và khóa riêng k có quan hệ toán học với nhau theo nghĩa
từ khóa riêng có thể tính toán để suy ra được khóa công khai, nhưng để từ khóa
công khai suy ra khóa riêng sẽ rất phức tạp vì số lượng phép tính toán là rất nhiều,
dẫn đến việc giải mã không khả thi trong khoảng thời gian hợp lý (nội dung thông
tin còn có tác dụng) khi chiều dài của khóa đủ lớn.
Đây cũng là mấu chốt của vấn đề bảo mật và tấn công trong các hệ mã khóa
công khai. Đó cũng chính là vấn đề an toàn của hệ mã công khai. Nghiên cứu đưa ra
các giải pháp hỗ trợ làm tăng tính an toàn của các hệ mã này bằng cách cố gắng áp
dụng các thuật toán xử lý nhanh với số lớn. Từ đó có thể tăng chiều dài của khóa mà
vẫn đảm bảo yếu tố thời gian mã hóa và giải mã chấp nhận được.
-10-
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
b. Các điều kiện của một hệ mã hóa công khai
Việc tính toán cặp khóa công khai K và bí mật k dựa trên các điều kiện ban
đầu phải thực hiện được trong khoảng thời gian hợp lý, nghĩa là thực hiện trong thời
gian đa thức.
Người gửi A có được khóa công khai K
B
của người nhận B và có bản rõ P
cần gửi đi có thể dễ dàng tạo ra được bản mã C bằng cách mã hóa
là hai hàm xác định trên tập hợp các
số nguyên dương. Ta nói
()fn
có bậc O-lớn của
()gn
, và viết
( ) ( ( ))f n O g n
hoặc
()f O g
, nếu tồn tại một hằng số C > 0 sao cho với n đủ lớn ta có
0 ( ) . ( )f n C g n
.
-11-
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
Định nghĩa 1.3. Một thuật toán được gọi là có độ phức tạp đa thức, hoặc có
thời gian đa thức, nếu số các phép tính cần thiết khi thực hiện thuật toán không vượt
quá
(log )
k
On
, trong đó n là độ lớn của đầu vào, và k là số nguyên dương nào đó.
Nói cách khác, nếu đầu vào là các số m-bit thì thời gian thực hiện thuật toán
là
()
d
Om
, tức là tương đương với một đa thức của m.
Số chữ số thập phân n
Số phép tính trên bit
Thời gian
50
1,4.1010
3,9 giờ
75
9,0.1012
104 ngày
100
2,3.1015
74 năm
200
1,2.1023
3,8.109 năm
300
1,5.1029
4,9.1015 năm
500
1,3.1039
4,2.1025 năm
Bảng 1.1. Thời gian phân tích số nguyên n ra thừa số nguyên tố
Với một thuật toán dưới mũ, thời gian làm việc với các số nguyên lớn vẫn
không khả thi. Do đó, với các ứng dụng xử lý số lớn, ta thường phải cố gắng biến
đổi để thu được một thuật toán có thời gian tính toán đa thức. Ý tưởng này sẽ được
-12-
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
.
Định nghĩa 1.5. Hàm một chiều cửa sập (trapdoor one-way function) là hàm
một chiều f được thêm vào thông tin cửa sập (trapdoor information) để có thể dễ
dàng tính
1
()x f y
với bất kỳ
yT
.
Ví dụ về hàm một chiều:
( , ) .f p q p q
là hàm một chiều với p, q là các số nguyên tố lớn. Như vậy,
ta có thể thực hiện phép nhân
.pq
với độ phức tạp đa thức; nhưng tính
1
()fn
lại là bài toán cực khó (bài toán phân tích ra thừa số nguyên tố - độ
phức tạp mũ).
,
( ): mod
x
gN
f x x g N
là hàm một chiều. Thực vậy, phép tính
sao cho
. ' 1 mod k k N
, có thể dễ
dàng tính được
1
f
từ công thức
( ) 'xk k x
. (
n
là hàm Euler, số các số
tự nhiên nhỏ hơn hoặc bằng n và là số nguyên tố tương đối với n.)
-13-
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
1.3. Hệ mật mã khóa công khai
Vào năm 1976, các nhà khoa học Whitfield Diffie, Martin Hellman và Ralph
Merkle tại Đại học Stanford giới thiệu ý tưởng về hệ thống mật mã khóa công khai
nhằm khắc phục các nhược điểm của hệ thống mật mã khoá đối xứng. Năm 1977
nhóm tác giả Ronald Rivest, Adi Shamir và Leonard Adleman đã công bố phương
pháp RSA, phương pháp mã hóa khóa công khai. RSA hiện được sử dụng rất nhiều
trong các ứng dụng mã hóa và bảo mật thông tin. RSA nhanh chóng trở thành chuẩn
thời gian và khó thực hiện được. Vì vậy, việc thám mã rất khó có thể tính toán để
thu được bản rõ từ bản mã lấy được.
‒ Một quan điểm khác dùng trong hệ mật mã khoá công khai là thông tin
“cửa sập” (trap door) mà hàm một chiều phải có. Thông tin bí mật (khoá riêng) chỉ
được đưa vào bởi người sở hữu cặp khóa. Khi có được thông tin “cửa sập” thì công
việc giải mã sẽ trở nên dễ dàng.
-14-
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
‒ Các hệ mật mã khóa công khai được xây dựng dựa trên những bài toán
khó như: bài toán logarit rời rạc trong trường hữu hạn
p
Z
(hệ ElGamal) và bài toán
phân tích một số nguyên lớn ra các thừa số nguyên tố (hệ RSA).
1.3.3. Hoạt động của hệ mật mã khóa công khai
Đối với hệ thống mã hóa khóa công khai: Mỗi người sử dụng phải tạo riêng
cho mình một cặp khóa. Trong đó, một khóa công khai (public key) cùng với thuật
toán mã hóa E, được công bố rộng rãi tại thư mục dùng chung cho mọi người sử
dụng. Còn lại là khóa riêng (private key) cùng với thuật toán giải mã D được giữ bí
mật bởi người sử dụng.
Như vậy, khi người A muốn gửi thông điệp R đến cho người B:
Giả sử: Khóa công khai của B là:
B
K
, khóa riêng của B là:
B
k
bằng khóa công
khai
B
K
của người nhận B:
( , )
B
C E K P
. Còn người nhận giải mã bằng khóa
riêng
B
k
của mình:
( , )
B
P D k C
. Vậy, có duy nhất người B mới giải mã được
thông điệp, điều này gọi là tính mật của hệ.
‒ Tính xác thực: Người gửi A thực hiện mã hóa một thông điệp
P
bằng
khóa riêng
A
k
:
( , )
A
C E k P
. Người nhận B giải mã bằng khóa công khai
A
cũng thực hiện giải mã hai lần, lần đầu tiên dùng khóa riêng
B
k
của mình
( , )
B
D k C
,
sau đó dùng khóa công khai
A
K
của người gửi A:
( , ( , ))
AB
P D K D k C
. Như vậy
chỉ người gửi mới có khóa riêng để mã hoá và cũng chỉ người nhận mới có khóa
riêng để giải mã, đây chính là tính mật và tính xác thực của hệ.
1.4. Độ an toàn của hệ mật mã
Có hai quan điểm cơ bản về độ an toàn của một hệ mật mã.
Độ an toàn tính toán: Độ an toàn này liên quan đến những nỗ lực tính toán
cần thiết để phá một hệ mật mã. Một hệ mật là an toàn về mặt tính toán nếu có một
thuật toán tốt nhất để phá nó cần ít nhất N phép toán, trong đó N là số rất lớn nào
đó. Tuy nhiên không có một hệ mật thực tế đã biết nào có thể được chứng tỏ là an
toàn theo định nghĩa này. Trên thực tế, người ta gọi một hệ mật là "an toàn về mặt
tính toán" nếu có một phương pháp tốt nhất phá hệ này nhưng yêu cầu thời gian lớn
đến mức không chấp nhận được.
Một quan điểm chứng minh về độ an toàn tính toán là quy độ an toàn của
một hệ mật mã về một bài toán đã được nghiên cứu kỹ và bài toán này được coi là
khó. Ví dụ, ta có thể chứng minh một khẳng định có dạng " Một hệ mật đã cho là an
với mọi CC (nếu
( ) 0VC
thì bản mã sẽ không
được dùng và có thể loại khỏi C). Từ đó ta tính được xác suất có điều kiện xuất hiện
bản rõ P với điều kiện bản mã C là
( | )W P C
.
Định nghĩa 1.6. Một hệ mật mã có độ mật hoàn thiện nếu
( | ) ( )W P C Q P
với mọi PP , CC, tức xác suất hậu nghiệm có bản rõ là P với điều kiện đã thu
được bản mã C là đồng nhất với xác suất tiên nghiệm để bản rõ là P.
Ta có định lý sau đây [3]:
Định lý 1.1 Giả sử (P,C,K,E,D) là một hệ mật mã với K = C = P. Khi đó,
hệ mật có độ mật hoàn thiện khi và mỗi khi khoá K được dùng với xác suất như
nhau bằng 1/K, và mỗi PP, mỗi CC có một khoá duy nhất K sao cho
()
K
E P C
.
1.2. Chữ ký số
1.2.1. Giới thiệu về chữ ký số
Chữ ký số là một bộ phận dữ liệu không thể giả mạo, để xác nhận một người
đã viết ra hoặc đồng ý với một tài liệu mà chữ ký đó được gắn vào. Chữ ký số sử
dụng công nghệ mã hoá trên nền tảng khoá công khai, để bảo đảm tính đúng đắn
tính toàn vẹn về nội dung của một dữ liệu hoặc một thông điệp điện tử và những
yêu cầu khác đối với các mục đích của một chữ ký.
Chữ ký số có các tính chất sau:
- Xác thực: người nhận kiểm tra được việc người gửi đã kí vào tài liệu.
- Không thể giả mạo được: chữ ký số xác nhận với người nhận tài liệu là không