
M C L CỤ Ụ

L I NÓI Đ UỜ Ầ
Ngày nay v iơ sư xuât hiên cua may tinh, cac tai liêu văn ban giây tơ va cac
thông tin quan trong đ uề đ cượ sô hóa va xử ly trên may tinh, đ cượ truy nề đi
trong môt môi trương ma măc đinh la không an toan. Do đó yêu câu về viêc có môt cơ
chê, giai phap đê bao vê sư an toan va bi mât cua cac thông tin nhay cam, quan trong
ngày càng trở nên câp thiêt. Mât ma hoc chinh la nganh khoa hoc đam bao cho m cụ
đich nay. Khó có thê thây môt ưng dung Tin h cọ có ich nao lai không sử dung cac
thuât toan ma hóa thông tin.
Chính vì nhu c u c n thi t c a mã hóa thông tin, nhóm chúng e v i s giúp đầ ầ ế ủ ớ ự ỡ
c a giáo viên ủThs. Mai Thanh H ng ồđã ti n hành tìm hi u v “H Elgamal” – đ cế ể ề ệ ượ
bi t đ n là 1 h mã hóa s d ng bài toán Logarit r i r c – m t bài toán khó và ch a cóế ế ệ ử ụ ờ ạ ộ ư
ph ng pháp gi i hi u qu . Chính vì v y đ an toàn và kh năng ng d ng c a hươ ả ệ ả ậ ộ ả ứ ụ ủ ệ
elgamal trong mã hóa thông tin cũng r t cao và ph bi n.ấ ổ ế
Chân thành c m n s giúp đ c a cô đã giúp nhóm em – Nhóm 4_KHMT1-ả ơ ự ỡ ủ
K4_ĐHCN Hà N i hoàn thành báo cáo này.ộ

CH NG I.ƯƠ T NG QUAN V MÃ HÓAỔ Ề
1. Khái ni mệ
Trong m t mã h cậ ọ , mã hóa là ph ng pháp đ bi n thông tin (ươ ể ế phim nhả, văn
b nả, hình nhả...) t đ nh d ng bình th ng sang d ng thông tin không th hi u đ cừ ị ạ ườ ạ ể ể ượ
n u không có ph ng ti nế ươ ệ gi i mãả.
- B n rõ (plaintext or cleartext)ả
Ch a các xâu ký t g c, thông tin trong b n rõ là thông tin c n mã hoáứ ự ố ả ầ đ gi bí m t.ể ữ ậ
- B n mã (ciphertext)ả
Ch a các ký t sau khi đã đ c mã hoá, mà n i dung đ c gi bí m t.ứ ự ượ ộ ượ ữ ậ
- M t mã h c (Crytography)ậ ọ
Là ngh thu t và khoa h c đ gi thông tin đ c an toàn.ệ ậ ọ ể ữ ượ
-S mã hoá (Encryption)ự
Quá trình che d u thông tin b ng ph ng pháp nào đó đ l àm n n i dung bên trongấ ằ ươ ể ẩ ộ
g i là s mã hoá.ọ ự
-S gi i mã (Decryption)ự ả
Quá trình bi n đ i tr l i b n mã b n thành b n rõ g i là gi i mã.ế ổ ả ạ ả ả ả ọ ả
-Quá trình gi i mã và mã hóaả
2. Thành ph n c a 1 h th ng m t mãầ ủ ệ ố ậ
-Hệ mật mã : là một hệ bao gồm 5 thành phần (P, C, K, E, D) th a mãn các tínhỏ
ch t sau:ấ
P (Plaintext) là tập hợp hữu hạn các b nả rõ có th .ể
C (Ciphertext) là tập hợp hữu hạn các b nả mã có th .ể
K (Key) là tập hợp các b nả khoá có th .ể

E (Encrytion) là tập hợp các qui tắc mã hoá có th .ể
D (Decrytion) là tập hợp các qui tắc giải mã có th .ể
Quá trình mã hóa đ c ti n hành b ng cách áp d ngượ ế ằ ụ hàm toán h cọ E lên thông
tin P, v n đ c bi u di n d i d ng s , đ tr thành thông tin đã mã hóaố ượ ể ễ ướ ạ ố ể ở C.
Quá trình gi i mã đ c ti n hành ng c l i: áp d ng hàmả ượ ế ượ ạ ụ D lên thông tin C để
đ c thông tin đã gi i mãượ ả P.
3. Khóa
3.1. Đ dài khóaộ
Độ an toàn của thuật toán mã hoá cổ điển phụ thu cộ vào hai điều đó là đ ộdài
của thuật toán và độ dài của khoá. Nhưng độ dài của khoá d b ễ ị lộ hơn. Giả sử
rằng độ dài của thuật toán là lý tưởng, khó khăn lớn lao này có th để ạt được
trong thực hành. Hoàn toàn có nghĩa là không có cách nào bẻ gãy được h ệthống mã
hoá trừ khi cố gắng thử với mỗi khoá. Nếu khoá dài 8 bits thì có 28 = 256 khoá có
thể. Nếu khoá dài 56 bits, thì có
2
56 khoá có thể. Gi ảsử rằng siêu máy tính có thể
thực hiện 1 triệu phép tính một giây, nó cũng s ẽcần tới 2000 năm để tìm ra khoá
thích hợp. Nếu khoá dài 64 bits, thì với máy tính tương tự cũng cần tới xấp xỉ
600,000 năm để tìm ra khoá trong số 2
64
khoá có thể. Nếu khoá dài 128 bits, nó
cần tới 10 25 năm , trong khi vũ tr ụcủa chúng ta chỉ tồn tại c ỡ1010 năm. Nh ưvậy
với 1025 năm có th ểlà đủ dài. Trước khi bạn gửi đi phát minh hệ mã hoá với 8
Kbyte độ dài khoá, bạn nên nhớ rằng m tộ nửa khác cũng không kém phần quan
trọng đó là thuật toán phải an toàn nghĩa là không có cách nào bẻ gãy trừ khi tìm
được khóa thích hợp. Điều này không dễ dàng nhìn thấy đưcợ, hệ thống mã hoá
nó như m t ộnghệ thuật huyền ảo. M tộ điểm quan trọng khác là độ an toàn c aủ hệ
thống mã hoá nên phụ thu c ộvào khoá, không nên ph ụthu cộ
v
ào chi tiết của thuật
toán. Nếu độ dài của h ệthống mã hoá mới tin rằng trong thực tế kẻ tấn công không
thể biết nội dung bên trong c aủ thuật toán. Nếu bạn tin rằng giữ bí mật nội
dung của thuật toán, tận d ngụ độ an toàn của hệ thống hơn là phân tích những lý
thuyết
s
ở
hữu chung thì bạn đã nhầm. Và thật ngây thơ hơn khi nghĩ rằng m tộ ai đó
không th ểg ỡtung mã nguồn của bạn hoặc đảo ngược lại thuật toán.
Giả sử rằng một vài kẻ thám mã có thể biết hết tất cả chi tiết về thuật toán
c aủ bạn. Giả sử rằng họ có rất nhiều bản mã, như họ mong mu n.ố Giả sử h ọcó
một khối lượng bản rõ tấn công với rất nhi uề dữ liệu cần thiết. Thậm chí giả sử
rằng họ có thể lựa chọn bản rõ tấn công. Nếu như hệ thống mã hoá c aủ có thể
dư thừa độ an toàn trong tất cả mọi mặt, thì bạn đã có đủ độ an toàn bạn cần.

3.2. Qu n lý khóa công khaiả
Trong th cự tế, quản lý khoá là vấn đề khó nh t ấcủa an toàn hệ mã hoá.. Để
thiết kế an toàn thuật toán mã hoá là m tộ việc là không phải dễ dàng nhưng để tạo
và lưu trữ khoá bí mật là m tộ điều khó hơn. Kẻ thám mã thường tấn công cả hai
hệ mã hoá đối xứng và công khai thông qua h ệquản lý khoá của chúng.
Đ iố với hệ mã hoá công khai việc quản lý khoá dễ hơn đối với hệ mã hoá đối
xứng, nhưng nó có m tộ vấn đề riêng duy nhất M iỗ người chỉ có một khoá công
khai, b tấ kể số người ở trên mạng là bao nhiêu.
3.3. Chứng nhận khoá công khai
Chứng nhận khoá công khai là xác định khoá thu cộ về m tộ ai đó, được quản lý
bởi một người đáng tin cậy. Chứng nhận để sử d ngụ vào việc cản trở s ực g ngố ắ
thay thế một khoá này bằng m tộ khoá khác.
Nó lưu trữ thông tin về Bob như tên, địa chỉ, ... và nó được viết bởi ai đó mà
Eva tin tưởng, người đó thường gọi là CA(certifying authority). B ng ằcách xác
nhận cả khoá và thông tin về Bob. CA xác nhận thông tin về Bob là đúng và
khoá công khai thu cộ quyền sở hữu của Bob. Eva kiểm tra lại các dấu hiệu và sau
đó cô ấy có th ểsử d nụg khoá công khai, sự an toàn cho Bob và không m tộ ai khác
biết.
3.4. Qu n lý khóa phân ph iả ố
Trong m tộ vài trường hợp, trung tâm quản l ý khoá có thể không làm vi cệ. Có
lẽ không có m tộ CA (certifying authority) nào mà Eva và Bob tin t ngưở
.
Có lẽ họ chỉ
tin tưởng bạn bè thân thiết hoặc họ không tin tưởng bất cứ ai. Quản lý khoá phân
phối, sử d ngụ trong những chương trình miền công khai, giải quyết vấn đề này với
người giới thiệu (introducers). Người giới thiệu là một trong những người dùng
khác của h ệthống anh ta là người nhận ra khoá công khai của bạn anh ta.
4. Các h m t mãệ ậ
4.1. H m t mã đ i x ngệ ậ ố ứ
Thuật toán đối xứng hay còn gọi thuật toán mã hoá cổ điển. Thuật toán này còn
có nhiều tên gọi khác như thuật toán khoá bí mật, thuật toán khoá đơn giản, thuật
toán một khoá.
Là thuật toán mà tại đó khoá mã hoá có thể tính toán ra được từ khoá giải mã.
Trong rất nhiều trường hợp, khoá mã hoá và khoá giải mã là giống nhau.
Thuật toán này yêu cầu người gửi và người nhận phải thoả thuận một khoá
trước khi thông báo được g iử đi, và khoá này phải được cất giữ bí mật. Độ an toàn

