TIỂU LUẬN PHÂN LOẠI CÁC PHƯƠNG PHÁP MÃ HÓA - Pdf 23

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

TIỂU LUẬN
PHÂN LOẠI CÁC PHƯƠNG PHÁP MÃ HÓA
Giảng viên : PGS.TS. Trịnh Nhật Tiến
Học viên : Đỗ Xuân Hoàng
Mã học viên : 13025163
Môn học : Mật mã và an toàn dữ liệu
PHÂN LOẠI CÁC PHƯƠNG PHÁP MÃ HÓA
Hà Nội – 2014
13025163 - Đỗ Xuân Hoàng Trang 2
PHÂN LOẠI CÁC PHƯƠNG PHÁP MÃ HÓA
MỤC LỤC
MỤC LỤC 3
I. TỔNG QUAN VỀ MÃ HÓA 4
II. PHÂN LOẠI CÁC PHƯƠNG PHÁP MÃ HÓA 7
13025163 - Đỗ Xuân Hoàng Trang 3
PHÂN LOẠI CÁC PHƯƠNG PHÁP MÃ HÓA
I. TỔNG QUAN VỀ MÃ HÓA
Thế kỷ XXI thế kỷ công nghệ thông tin, thông tin đã và đang tác động trực tiếp đến
mọi mặt hoạt động kinh tế xã hội của hầu hết các quốc gia trên thế giới. Thông tin có
vai trò hết sức quan trọng, bởi vậy chúng ta phải làm sao đảm bảo được tính trong
suốt của thông tin nghĩa là thông tin không bị sai lệch, bị thay đổi, bị lộ trong quá
trình truyền từ nơi gửi đến nơi nhận. Mã hóa thông tin là một trong các phương pháp
đảm bảo được tính trong suốt của thông tin. Nó có thể giải quyết các vấn đề rắc rối ở
trên giúp bạn, một khi thông tin đã được mã hóa và gửi đi thì kẻ xấu rất khó hoặc
không thể giải mã được. Phần này sẽ mô tả một cách tổng quan về mã hóa, bao gồm
những khái niệm về mã hóa thông tin, một hệ thống mã hóa bao gồm những thành
phần nào, khái niệm protocol, các loại protocol.
1. Khái niệm cơ bản

nhưng có một điều rất đáng quan tâm đó là protocol.
Protocol là một loạt các bước, bao gồm hai hoặc nhiều người, thiết kế để hoàn thành
nhiệm vụ. "Một loạt các bước" nghĩa là protocol thực hiện theo một tuần tự , từ khi
13025163 - Đỗ Xuân Hoàng Trang 5
PHÂN LOẠI CÁC PHƯƠNG PHÁP MÃ HÓA
bắt đầu cho tới lúc kết thúc. Mỗi bước phải thực hiện tuần tự và không có bước nào
được thực hiện trước khi bước trước đó đã hoàn thành. "Bao gồm hai hay nhiều
người" nghĩa là cần ít nhất hai người hoàn thành protocol, một người không thể tạo ra
được một protocol. Chắc chắn rằng một người có thể thực hiện một loạt các bước để
hoàn thành nhiệm vụ, nhưng đó không phải là protocol. Cuối cùng "thiết kế để hoàn
thành nhiệm vụ" nghĩa là mội protocol phải làm một vài điều gì đó.
Protocol có một vài thuộc tính khác nhau như sau:
1. Mọi người cần phải trong một protocol, phải biết protocol đó và tuân theo tất cả
mọi bước trong sự phát triển.
2. Mọi người phải trong một protocol và phải đồng ý tuân theo nó.
3. Một protocol phải rõ ràng, mỗi bước phải được định nghĩa tốt và phải không có cơ
hội hiểu nhầm.
4. Protocol phải được hoàn thành, phải có những hành động chỉ rõ cho mỗi trường
hợp có thể.
2.2. Protocol mật mã
Protocol mật mã là protocol sử dụng cho hệ thống mật mã. Một nhóm có thể gồm
những bạn bè và những người hoàn toàn tin cậy khác hoặc họ có thể là địch thủ hoặc
những người không tin cậy một chút nào hết. Một điều hiển nhiên là protocol mã hóa
phải bao gồm một số thuật toán mã hóa nhưng mục đích chung của protocol là một
điều gì đó xa hơn là điều bí mật đơn giản.
2.3. Mục đích của protocol
Trong cuộc sống hàng ngày, có rất nhiều nghi thức thân mật cho hầu hết tất cả mọi
điều như gọi điện thoại, chơi bài, bầu cử. Không có gì trong số chúng lại không có
protocol, chúng tiến triển theo thời gian, mọi người đều biết sử dụng chúng như thế
nào và làm việc với chúng.

Mã hóa cổ điển là một dạng của mật mã học đã được sử dụng trong lịch sử phát triển
của loài người nhưng ngày nay đã trở nên lạc hậu do các phương thức mã hóa này quá
đơn giản và những kẻ tấn công có thể dễ dàng bẻ khóa thông qua nhiều phương thức
13025163 - Đỗ Xuân Hoàng Trang 7
PHÂN LOẠI CÁC PHƯƠNG PHÁP MÃ HÓA
như tấn công vét cạn hay dựa trên tấn công thống kê (dựa trên tần suất xuất hiện các
chữ cái).
Mật mã học cổ điển hoạt động trên cơ sở bảng chữ cái và chúng được thực hiện bằng
tay hay một số máy móc cơ khí đơn giản. Các phương thức mã hóa cổ điển chủ yếu
dựa trên mật mã hóa hoán vị và mật mã hóa thay thế.
Mã hóa hoán vị bao gồm: Mật mã ceasar, Mật mã playfair, Mật mã hill
+ Mật mã ceasar
Thế kỷ thứ 3 trước công nguyên, nhà quân sự người La Mã Julius Ceasar đã nghĩ ra
phương pháp mã hóa một bản tin như sau: Thay thế mỗi chữ trong bản tin bằng chữ
đứng sau nó k vị trí trong bảng chữ cái. Giả sử chọn k=3 ta có bảng chuyển đổi như
sau:
Chữ ban đầu: a b c d e f g h i j k l m n o p q r s t u v w x y z
Chữ thay thế: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
(sau Z sẽ vòng lại là A, do đó x -> A, y -> B và z -> C)
Phương pháp Ceasar được biểu diễn như sau: với mỗi chữ cái p thay bằng chữ mã
hóa C, trong đó: C = (p + k) mod 26 (trong đó mod là phép chia lấy số dư)
Và quá trình giải mã đơn giản là: p = (C – k) mod 26 k được gọi là khóa. Dĩ nhiên là
Ceasar và cấp dưới phải cùng dùng chung một giá trị khóa k, nếu không bản tin giải
mã sẽ không giống bản rõ ban đầu.
Ngày nay phương pháp mã hóa của Ceasar không được xem là an toàn. Giả sử đối
thủ của Ceasar có được bản mã PHHW PH DIWHU WKH WRJD SDUWB
và biết được phương pháp mã hóa và giải mã là phép cộng trừ modulo 26.
+ Mật mã Playfair
Mật mã Playfair xem hai ký tự đứng sát nhau là một đơn vị mã hóa, hai ký tự này
được thay thế cùng lúc bằng hai ký tự khác. Playfair dùng một ma trận 5x5 các ký tự

+ Mã Hill
Trong mã Hill mỗi chữ cái được gán cho một con số nguyên từ 0 đến 25
13025163 - Đỗ Xuân Hoàng Trang 9
PHÂN LOẠI CÁC PHƯƠNG PHÁP MÃ HÓA
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Mã Hill thực hiện mã hóa một lần m ký tự bản rõ (ký hiệu p1, p2,…,pm),
thay thế thành m ký tự trong bản mã (ký hiệu c1, c2,…,cm). Việc thay thế này được
thực hiện bằng m phương trình tuyến tính. Giả sử m = 3, chúng ta minh họa m phương
trình đó như sau:
Ba phương trình trên có thể biểu diễn thành vector và phép nhân ma trận như sau:
Hay: C = KP mod 26 với P và C là vector đại diện cho bản rõ và bản mã, còn K là
ma trận dùng làm khóa.
Xét ví dụ bản rõ là paymoremoney cùng với khóa K là
Ba chữ cái đầu tiên của bản rõ tương ứng với vector (15, 0, 24) . Vậy
Thực hiện tương tự ta có bản mã đầy đủ là LNSHDLEWMTRW
13025163 - Đỗ Xuân Hoàng Trang 10
PHÂN LOẠI CÁC PHƯƠNG PHÁP MÃ HÓA
Để giải mã chúng ta cần sử dụng ma trận nghịch đảo của K là K-1, tức là K-1K mod
26 = I là ma trận đơn vị (không phải mọi ma trận K đều tồn tại ma trận nghịch đảo,
tuy nhiên nếu tồn tại thì ta có thể tìm được ma trận đơn vị bằng cách tính hạng det của
ma trận)
Ví dụ ma trận nghịch đảo của ma trận trên là:
Khi đó bảng giải mã là: K-1C mod 26 = K-1KP mod 26 = P
Có thể thấy mã hóa Hill ẩn giấu các thông tin về tần suất nhiều hơn mã hóa Playfair
do có thể mã hóa 3 hoặc nhiều hơn nữa các ký tự cùng lúc.
Mã hóa thay thế bao gồm: Mật mã rail fence, mật mã hoán vị nâng cao
2. Mã hóa đối xứng
Thuật toán đối xứng 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

Hai phương pháp mã dòng tiêu biểu là A5/1 và RC4
2.2. Mã khối
2.2.1. Mô hình mã hóa khối
Mã hóa sử dụng các thuật toán khối gọi đó là mã hóa khối, thông thường kích thước
của khối là 64 bits. Một số thuật toán mã hóa khối sẽ được trình bày sau đây.
+ Mô hình dây truyền khối mã hóa
Dây truyền sử dụng kỹ thuật thông tin phản hồi, bởi vì kết quả của khối mã hóa trước
lại đưa vào khối mã hóa hiện thời. Nói một cách khác khối trước đó sử dụng để sửa
đổi sự mã hóa của khối tiếp theo. Mỗi khối mã hóa không phụ thuộc hoàn toàn vào
khối của bản rõ.
Trong dây truyền khối mã hóa, bản rõ đã được XOR với khối mã hóa kế trước đó
trước khi nó được mã hóa. Hình 2.2.1. Thể hiện các bước trong dây truyền khối mã
hóa
Sau khi khối bản rõ được mã hóa, kết quả của sự mã hóa được lưu trữ trong thanh ghi
thông tin phản hồi. Trước khi khối tiếp theo của bản rõ được mã hóa, nó sẽ XOR với
thanh ghi thông tin phản hồi để trở thành đầu vào cho tuyến mã hóa tiếp theo. Kết quả
của sự mã hóa tiếp tục được lưu trữ trong thanh ghi thông tin phản hồi, và tiếp tục
XOR với khối bản rõ tiếp theo, tiếp tục như vậy cho tới kết thúc thông báo. Sự mã hóa
của mỗi khối phụ thuộc vào tất cả các khối trước đó.
13025163 - Đỗ Xuân Hoàng Trang 13
PHÂN LOẠI CÁC PHƯƠNG PHÁP MÃ HÓA
Sự giải mã là cân đối rõ ràng. Một khối mã hoá giải mã bình thường và mặt khác được
cất giữ trong thanh ghi thông tin phản hồi. Sau khi khối tiếp theo được giải mã nó
XOR với kết quả của thanh ghi phản hồi. Như vậy khối mã hoá tiếp theo được lưa
trữ trong thanh ghi thông tin phản hồi, tiếp tục như vậy cho tới khi kết thúc thông
báo.
Công thức toán học của quá trình trên như sau :
+ Mô hình mã hóa với thông tin phản hồi
Trong mô hình dây truyền khối mã hoá(CBC_Cipher Block Chaining Mode), sự
mã hóa không thể bắt đầu cho tới khi hoàn thành nhận được một khối dữ liệu. Đây

thể giải mã được. Do đó phương án này không đảm bảo tính bảo mật. Tuy nhiên lại
có tính chất quan trọng là đảm bảo tính chứng thực và tính không từ chối. Vì chỉ có
13025163 - Đỗ Xuân Hoàng Trang 15
PHÂN LOẠI CÁC PHƯƠNG PHÁP MÃ HÓA
duy nhất Alice biết được khóa K1, nên nếu Bob dùng K2 để giải mã ra bản tin, thì
điều đó có nghĩa là Alice là người gửi bản mã. Nếu Trudy cũng có khóa K1 để gửi
bản mã thì Alice sẽ bị quy trách nhiệm làm lộ khóa K1. Trong phương án này cũng
không cần phải truyền K2 trên kênh an toàn.
Vì vậy nếu kết hợp phương án 1 và phương án 2, thì mô hình đề xuất của chúng ta
khắc phục được các nhược điểm của mã hóa đối xứng.
Trong cả hai phương án, một khóa được giữ bí mật chỉ một người biết, còn khóa kia
được công khai. Do đó mô hình mã hóa trên được gọi là mã hóa khóa công khai (hay
mã hóa bất đối xứng). Để thuận tiện ta quy ước lại các ký hiệu như sau:
- Để tránh nhầm lẫn với khóa bí mật của mã đối xứng, khóa bí mật trong mô hình
trên được gọi là khóa riêng (private key) và ký hiệu là KR.
- Khóa công khai (public key) được ký hiệu là KU.
- Bản rõ được ký hiệu là M, còn bản mã giữ nguyên ký hiệu là C
- Phương án 1 viết lại thành:
C = E(M, KU)
M = D(C, KR)
- Phương án 2 viết lại thành:
C = E(M, KR)
M = D(C, KU)
Vấn đề còn lại ở đây là liệu có tồn tại một mô hình mã hóa và giải mã dùng hai khóa
khác nhau như vậy không? Dĩ nhiên là hai khóa KU và KR không thể nào hoàn toàn
độc lập với nhau. Phải có một mối quan hệ nào đó giữa KU và KR thì mới có thể tiến
hành giải mã hóa và giải mã được. Có nghĩa là KR = f(KU). Tuy nhiên một yêu cầu
rất quan trọng là việc tính KR = f(KU) phải là bất khả thi về mặt thời gian. Nếu
nguyên tắc này bị vi phạm thì việc giữ bí mật khóa KR không còn ý nghĩa vì từ khóa
công khai KU có thể tính được KR. Để có được cặp khóa KR và KU như trên,

i-1
< N < 2
i
. Với i = 1024 thì N là một số nguyên dài khoảng 309 chữ số.
2) Tính n = (p-1)(q-1)
3) Tìm một số e sao cho e nguyên tố cùng nhau với n
4) Tìm một số d sao cho e.d = 1 mod n (d là nghịch đảo của e trong phép modulo n)
5) Hủy bỏ n,p và q. Chọn khóa công khai K
u
là cặp (e,N), khóa riêng K
R
là cặp (d,N)
13025163 - Đỗ Xuân Hoàng Trang 17
PHÂN LOẠI CÁC PHƯƠNG PHÁP MÃ HÓA
6) Việc mã hóa thực hiện theo công thức:
▪ Theo phương án 1, mã hóa bảo mật: C = E(M, K
u
) = M
e
mod N
▪ Theo phương án 2, mã hóa chứng thực: C = E(M,K
R
) = M
d
mod N
7) Việc giải mã thực hiện theo công thức:
▪ Theo phương án 1, mã hóa bảo mật:
▪ Theo phương án 2, mã hóa chứng thực:
Bản rõ M có kích thước i-1 bít, bản mã C có kích thước i bít.
Để đảm bảo rằng RSA thực hiện đúng theo nguyên tắc của mã hóa khóa công khai, ta

U
= (e, N) = (3, 33). Khóa bí mật K
R
= (d, N) = (7, 33)
Theo phương án 1 (mã hóa bảo mật):
6) Mã hóa bản rõ M = 15:
C = M
e
mod N = 15
3
mod 33 = 9
7) Giải mã bản mã C = 9:
Theo phương án 2 (mã hóa chứng thực):
6) Mã hóa bản rõ M = 15:
C = M
d
mod N = 15
7
mod 33 = 27
7) Giải mã bản mã C = 27:
+ Độ an toàn RSA
Sau đây chúng ta sẽ xem xét một số tấn công phương pháp RSA.
1) Vét cạn khóa. Với N lớn việc tấn công bất khả thi.
2) Phân tích N thành thừa số nguyên tố N = p.q. Với N khoảng 309 chữ số an toàn thật
sự.
3) Đo thời gian
Đo thời gian: Đây là một phương pháp phá mã không dựa vào mặt toán học của thuật
toán RSA, mà dựa vào một “hiệu ứng lề” sinh ra bởi quá trình giải mã RSA. Hiệu
ứng lề đó là thời gian thực hiện giải mã. Giả sử người phá mã có thể đo được thời
giải mã M = C

một số trường hợp người ta không cần tính bảo mật mà chỉ cần tính chứng thực, nên
sử dụng MAC tiết kiệm được thời gian xử lý hơn.
Trong thực tế, người ta hay dùng mô hình CBC và phương pháp DES của mã hóa đối
xứng để tính giá trị MAC. Hình dưới đây trình bày lại mô hình CBC
Như vậy thông điệp M sẽ được chia thành các khối (P0, P1, …, Pn-1), dùng thêm
một vector khởi tạo IV, thì bản mã Cn-1 được chọn làm giá trị MAC cho M. Như
vậy kích thước của MAC là 64 bít, kích thước của khóa K là 56 bít.
4.2. Hàm băm
Trong khi phương pháp checksum CRC cho phép hai dãy bít có cùng checksum, thì
hàm băm H(x) là một hàm tính checksum mạnh thỏa mãn các yêu cầu sau:
1) H có thể áp dụng cho các thông điệp x với các độ dài khác nhau
2) Kích thước của output h = H(x) là cố định và nhỏ
3) Tính một chiều: với một h cho trước, không thể tìm lại được x sao cho h = H(x)
(về mặt thời gian tính toán)
4) Tính chống trùng yếu: cho trước một x, không thể tìm y≠ x sao cho H(x) = H(y)
13025163 - Đỗ Xuân Hoàng Trang 21
PHÂN LOẠI CÁC PHƯƠNG PHÁP MÃ HÓA
5) Tính chống trùng mạnh: không thể tìm ra cặp x, y bất kỳ (x≠y) sao cho H(x) =
H(y), hay nói cách khác nếu H(x) = H(y) thì có thể chắc chắn rằng x = y.
Kích thước của input x là bất kỳ còn kích thước của h là nhỏ, ví dụ giả sử kích thước
của x là 512 bít còn kích thước của h là 128 bít. Như vậy trung bình có khoảng 2384
giá trị x mà có cùng giá trị h. Việc trùng là không thể loại bỏ. Tính chống trùng của
hàm Hash là yêu cầu rằng việc tìm ra hai input x như vậy thì phải là rất khó về mặt
thời gian tính toán.
Lấy ví dụ với đối tượng con người. Xét hai hàm sau: hàm lấy khuôn mặt và hàm lấy
dấu vây tay. Có thể thấy hàm lấy khuôn mặt không phải là hàm hash vì chúng có thể
tìm ra 2 người giống nhau ở khuôn mặt. Còn hàm lấy dấu vân tay là hàm hash vì trên
khắp thế giới không tìm ra hai người giống nhau về dấu vân tay.
4.3. Trình bày hàm băm MD5
Sau đây chúng ta sẽ tìm hiểu hàm băm MD5 với kích thước giá trị băm là 128 bít,

trị W0, W1,…, W63 mỗi giá trị 32 bít. Block Mi 512 bít được chia thành 16 block 32
bít ứng
với các giá trị W0, W1, …, W15 (16×32=512). Tiếp theo, 16 giá trị này được lặp
lại 3 lần tạo thành dãy 64 giá trị.
Sau vòng cuối cùng, các giá trị abcde được cộng với các giá trị abcd của Hi-1 để cho
ra các giá trị abcd của Hi. Phép cộng ở đây là phép cộng modulo 2
32
.
Tiếp theo ta tìm hiểu cấu trúc của một vòng. Việc biến đổi các giá trị abcd trong
vòng thứ i được thể hiện trong hình bên dưới.
13025163 - Đỗ Xuân Hoàng Trang 24
PHÂN LOẠI CÁC PHƯƠNG PHÁP MÃ HÓA
Trong đó:
▪ Hàm f(x, y, z):
▪ Hàm ROTL(t, s): t được dịch vòng trái s bít, với s là các hằng số cho vòng thứ i như
sau:
13025163 - Đỗ Xuân Hoàng Trang 25


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status