Professional Documents
Culture Documents
Lớp: B2D6
Nhóm 8: Đặng Trần Ngọc Thành
Trần Viết Thiện
Nguyễn Hửu Thanh
Trần Minh Thảo
Lăng Văn Thiều
Nguyễn Đức Bảo
Vũ Minh Trí
1 Trần Viết Thiện - Cài đặt thuật toán và thiết kế ứng dụng
- Thuyết trình
2 Đặng Trần Ngọc Thành - Giới thiệu tổng quan về mật mã Hill
- Nội dung slide và thuyết trình
LỜI CẢM ƠN
Tên chuyên đề: Xây dựng công cụ mã hóa và giải mã sử dụng thuật toán
mã hóa Hill
Nội dung chuyên đề:
Chương 1: Giới thiệu tổng quan về mật mã Hill
Chương 2: Lập trình cài đặt công cụ sử dụng thuật toán Hill
Chương 3: Đánh giá và hướng phát triển của đề tài
Nhóm chúng tôi xin chân thành cảm ơn các thầy, cô giáo trong Khoa mật
mã và an ninh thông tin trường Đại học Kỹ thuật - Hậu cần CAND đã tạo điều
kiện giúp đỡ nhóm trong thời gian qua để nhóm có thể hoàn thành tốt đề tài này.
Và chúng tôi xin chân thành cảm ơn Đại úy Nguyễn Thành Chung, giáo viên bộ
môn đã tận tình giúp đỡ, chỉ bảo và hướng dẫn nhóm nghiên cứu thực hiện đề tài
này.
Mặc dù rất cố gắng, tuy nhiên vì hạn chế về trình độ cũng như thời gian
thực hiện nên bài báo cáo khó tránh khỏi các sai sót. Chính vì vậy, nhóm chúng
tôi rất mong nhận được sự góp ý của các thầy, cô giáo để bài báo cáo được hoàn
thiện và chính xác hơn nữa.
Nhóm chúng tôi xin cam đoan: Những kết quả nghiên cứu được trình bày
trong đề tài là hoàn toàn trung thực, là kết quả của quá trình nghiên cứu của cả
nhóm, những nội dung sao chép được trích dẫn địa chỉ cụ thể. Nếu sai, chúng tôi
xin hoàn toàn chịu trách nhiệm.
KÝ TÊN
ii
MỤC LỤC
LỜI CẢM ƠN............................................................................................................i
MỤC LỤC................................................................................................................ii
DANH MỤC HÌNH ẢNH.......................................................................................iv
LỜI NÓI ĐẦU..........................................................................................................1
Chương 1: GIỚI THIỆU TỔNG QUAN VỀ MẬT MÃ HILL............................2
1.1. Tổng quan về mật mã...................................................................................2
1.1.1. Các khái niệm cơ bản.............................................................................2
1.1.2. Tính chất.................................................................................................3
1.3. Mã Hill...........................................................................................................6
1.3.1. Bảng chữ cái (Alphabet)........................................................................6
1.3.2. Các kiến thức ma trận cần thiết............................................................6
1.3.3. Tổng quan về mật mã Hill.....................................................................7
1.3.4. Mã hóa và giải mã bằng thuật toán Hill...............................................7
1.4. Ví dụ minh họa thuật toán Hill....................................................................8
1.5. Thám mã đối với mã Hill..............................................................................9
1.6. Đánh giá hệ mật Hill...................................................................................12
1.6.1. Ưu điểm.................................................................................................12
1.6.2. Nhược điểm...........................................................................................13
Chương 2: CÀI ĐẶT CÔNG CỤ SỬ DỤNG THUẬT TOÁN HILL................14
2.1. Sơ lược về các ngôn ngữ lập trình được sử dụng để cài đặt thuật
toán......................................................................................................................14
2.1.1. Một số đặc trưng của ngôn ngữ lập trình C++..................................14
2.1.2. Một số đặc trưng của ngôn ngữ lập trình C#....................................14
2.2. Cài đặt công cụ mã hóa sử dụng thuật toán Hill......................................14
2.3.1. Môi trường biên dịch và các công cụ cần thiết..................................14
2.3.2. Thuật toán mô phỏng các bước thực hiện.........................................15
2.3.3. Cài đặt phần lõi ứng dụng...................................................................15
2.3.4. Thiết kế giao diện người dùng.............................................................18
2.3.5. Thử nghiệm mã hóa và giải mã các trường hợp...............................20
2.4. Đánh giá.......................................................................................................22
2.4.1. Độ phức tạp giải thuật.........................................................................22
2.4.2. Ưu điểm.................................................................................................23
2.4.3. Nhược điểm...........................................................................................23
Chương 3: KẾT LUẬN..........................................................................................24
3.1. Đánh giá về đề tài........................................................................................24
3.1.1. Ưu điểm của đề tài...............................................................................24
3.1.2. Nhược điểm của đề tài.........................................................................24
iii
Trong các tính chất trên, tính chất 4 là tính chất chủ yếu ở đây. Nội dung
của nó là nếu một bản rõ R được mã hoá bằng Ek và bản mã nhận được sau đó
được giải mã bằng Dk thì ta phải thu được bản rõ ban đầu R. Alice và Bob sẽ áp
dụng thủ tục sau dùng hệ mật khoá riêng. Trước tiên họ chọn một khoá ngẫu
nhiên K K . Điều này được thực hiện khi họ ở cùng một chỗ và không bị
Oscar theo dõi hoặc khi họ có một kênh mật trong trường hợp họ ở xa nhau. Sau
đó giả sử Alice muốn gửi một thông baó cho Bob trên một kênh không mật và ta
xem thông báo này là một chuỗi:
x = x1, x2, . . ., xn
Với n1. Ở đây mỗi ký hiệu của mỗi bản rõ x i R , 1 i n. Mỗi xi sẽ
được mã hoá bằng quy tắc mã Ek với khoá K xác định trước đó. Bởi vậy Alice sẽ
tính yi = Ek(xi), (1 i n) và chuỗi bản mã nhận được: y = y 1,y2 ,. . .,yn sẽ được
gửi trên kênh. Khi Bob nhận đươc y 1,y2 ,. . .,yn anh ta sẽ giải mã bằng hàm giải
mã Dk và thu được bản rõ gốc x1,x2 ,. . .,xn.
Dưới đây là một ví dụ về một kênh liên lạc.
Tính bí mật (confidentiality): thông tin chỉ được tiết lộ cho những người
được phép
Tính toàn vẹn (integrity): thông tin không thể bị thay đổi mà không bị
phát hiện
Tính xác thực (authentication): người gửi (hoặc người nhận) có thể chứng
minh đúng họ
Tính không chối bỏ (non-repudiation): người gửi hoặc nhận sau này
không thể chối bỏ việc đã gửi hoặc nhận thông tin
1.2. Mật mã khóa bí mật
Mật mã khóa bí mật là hệ mật mà khóa dùng để giải mã và mã hóa là
giống nhau hoặc dễ dàng tính toán ra nhau. Mật mã khóa bí mật yêu cầu người
gửi và người nhận phải thỏa thuận khóa trước khi có thể liên lạc một cách bí
mật. Độ an toàn của hệ mật phụ thuộc hoàn toàn vào khóa mật mã.
Mật mã khóa bí mật vì khóa mã và khóa dịch phải giữ bí mật hoàn toàn,
có thể chia thành 2 loại hình mã dòng và mã khối.
+ Mã dòng: là các thuật toán mã khóa đối xứng thực hiện biến đổi từng
phần tử riêng lẻ của bản rõ tại một thời điểm.
+ Mã khối: là các thuật toán mật mã khóa đối xứng thực hiện biến đổi
từng nhóm các phần tử của bản rõ tại một thời điểm.
Một hệ thống thông tin sử dụng hệ mật khóa bí mật để bảo mật thông tin
gồm ba quá trình:
- Quá trình mã hóa: Khi muốn truyền thông với nhau, tại nới gửi (nguồn
thông báo) cần có một bản rõ R. Với thông báo R và khóa K thuật toán mã E k sẽ
tạo ra bản mã M = Ek(R). Bản mã M sẽ được người gửi truyền trên kênh công
khai đến nơi nhận. Kênh công khai này là kênh không được đảm bảo an toàn, và
bản mã có thể bị thu lại hoặc nghe trộm bởi những người dùng bất hợp pháp.
- Quá trình giải mã: Tại nơi nhận (đích thông báo, người nhận nhận được
bản mã M và sẽ sử dụng khóa K tương ứng giống hệt hoặc dễ dàng suy ra từ
khóa mã để thực hiện thuật toán dịch DK tạo ra bản rõ R = DK (M).
Một người mã thám thu được M nhưng không có khóa K, anh ta phải cố
gắng khôi phục R hoặc khóa K. Nếu người mã thám chỉ quan tâm đến nội dung
thông báo, họ cố khôi phục P bằng việc sinh ra một ước lượng R’ của R. Tuy
nhiên, thường người mã thám mong muốn tìm ra khóa K để dịch mã các thông
báo tiếp theo, bằng cách sinh ra một ước lượng K’ của K. Độ bảo mật của mật
mã khóa bí mật là thước đo mức độ khó khăn của việc tìm ra thông báo rõ R
hoặc khóa bí mật K khi biết bản mã.
Có thể thấy được, khi một người nhận thu được bản mã, dùng khóa K
giống hệt với khóa đã thỏa thuận trước với một người gửi xác định để giải mã và
thu được đúng bản rõ có nghĩa thì chứng tỏ người nhận nhận đúng thông tin từ
đúng người gửi mà mình mong muốn. Hay nói cách khác, mô hình sử dụng mật
mã khóa bí mật có thể đảm bảo được một cách đồng thời cả 4 thuộc tính của
thông tin là tính toàn vẹn, tính bí mật, tính xác thực và không thể chối bỏ.
Có ba phương pháp chính trong mật mã khoá bí mật (mật mã khoá riêng
hay mật mã cổ điển):
+ Hệ mật chuyển vị
+ Hệ mật thay thế
+ Xử lý bit (chủ yếu nằm trong các ngôn ngữ lập trình)
Ngoài ra còn có phương pháp hỗn hợp thực hiện kết hợp các phương pháp
trên mà điển hình là chuẩn mã dữ liệu (DES – Data Encryption Standard) của Mỹ.
Trong hệ mật thay thế bao gồm các loại mã:
+ Mã dịch vòng
+ Mã thay thế thường
+ Mã Vigenere
+ Mã Affine
+ Mã Hill
Trong đó có Mã Hill thuộc hệ mật cổ điển của mật mã khóa bí mật, đây là
một phương pháp mã hóa thực hiện đơn giản (dựa vào phép nhân ma trận), đặc
6
biệt không gian khóa lớn. Đây cũng chính là thuật toán nhóm nghiên cứu dựa
vào đó lập trình xây dựng công cụ mã hóa và giải mã.
1.3. Mã Hill
1.3.1. Bảng chữ cái (Alphabet)
Bảng chữ cái của tiếng Anh gồm có 26 ký tự viết hoa. Khi chúng ta mã
hóa hay giải mã, chúng ta sẽ đại diện bằng những con số từ 0…25. Và các chữ
cái được thể hiện như bảng sau:
A B C D E F G H I J K L M
0 1 2 3 4 5 6 7 8 9 10 11 12
N O P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Khi sử dụng mật mã Hill thì chiều dài của Alphabet có thể là số nguyên
bất kỳ m>1.
Trong bảng chữ cái bắt đầu bằng số 0, và đôi khi để phá mã Hill khó hơn
thì những chữ cái ánh xạ thành những số bất kỳ trong khoảng từ 0 đến 25; chứ
không nhất thiết phải theo thứ tự như bảng trên.
1.3.2. Các kiến thức ma trận cần thiết
Định thức
Định thức của ma trận vuông cấp n là tổng đại số của n! (n giai thừa) số
hạng, mỗi số hạng là tích của n phần tử lấy trên các hàng và các cột khác nhau
của ma trận A, mỗi tích được nhân với phần tử dấu là +1 hoặc -1 theo phép thế
tạo bởi các chỉ số hàng và chỉ số cột của các phần tử trong tích.
Gọi S(n) là nhóm các hoán vị của n phần tử 1,2,...,n.
Theo công thức Leibniz, ta có:
❑ n
det ( A )= ∑ sgn(σ ) ∏ ai , σ (i)
σϵ Sn i=1
Một ma trận thực k là khả nghịch khi và chỉ khi det(k) ≠ 0. Tuy nhiên, khi
làm việc trên Z26 thì ma trận k khả nghịch khi và chỉ khi UCLN(det(k), 26)=1.
Sau đây sẽ chứng minh kết quả ngắn gọn này:
Trước tiên, giả sử rằng ƯCLN(det(k), 26)=1. Khi đó det(k) khả nghịch
trong Z26 . Với 1 ≤i, j≤ m, định nghĩa ki, j là ma trận thu được từ k bằng cách loại
bỏ hàng thứ i và cột thứ j. Và định nghĩa ma trận k * có phần tử (i,j) của nó nhận
giá trị (-1)i+j det(ki, j) (k* được gọi là phần bù đại số của k).
Khi đó, có thể chứng tỏ rằng: k-1 = (det k)-1 k*
Bởi vậy k khả nghịch.
Ngược lại, nếu k có nghịch đảo k-1. Theo quy tắc của định thức, ta có
1 = det I = det(k.k-1) = det(k) det(k-1)
Bởi vậy det(k) có nghịch đảo trong Z26.
Công thức đối với k-1 ở trên không phải là một công thức tính toán có hiệu
quả trừ các trường hợp m nhỏ (chẳng hạn m = 2, 3).
Với m lớn, phương pháp thích hợp để tính các ma trận nghịch đảo phải
dựa vào các phép toán hàng sơ cấp.
1.3.3. Tổng quan về mật mã Hill
Mật mã Hill do nhà toán học người Mỹ tên là Lester S. Hill (1891-1961)
đề xuất năm 1929. Phép mã cũng được thực hiện trên từng bộ m ký tự. Khóa là
một ma trận cấp m, tức là một phần tử của (Z 26)m*m. Để phép biến đổi tuyến tính
xác định bởi ma trận K ϵ (Z26)m*m có phép nghịch đảo, ma trận K cũng phải có
phần tử nghịch đảo K-1 ϵ (Z26)m*m. Điều kiện cần và đủ để ma trận K có ma trận
nghịch đảo là định thức của nó, ký hiệu det K, nguyên tố cùng nhau với 26.
Mã Hill được mô tả như sau:
Cho m là số nguyên dương.αR=βM=(Z26)m*m.
Tập khóa K={K ϵ(Z26)m*m: (det K, 26)=1}.
Với mỗi K ϵ K, định nghĩa:
EK(r1,...,rm) = (r1,...,rm).K DK(m1,...,mm) = (m1,...,mm).K-1
Với ri ϵ αR, mi ϵ βM, i=1...m, và phép toán được thực hiện theo modulo 26.
1.3.4. Mã hóa và giải mã bằng thuật toán Hill
Chúng ta giả sử chiều dài của Alphabet là m>1, khóa sẽ là ma trận vuông
K bậc d với các phần tử trong Z m. Thuật toán mã hóa Hill dùng để mã hóa bản rõ
cho trước được thực hiện qua các bước sau:
Mã hóa
8
1. Người gửi tách bản rõ ra thành k nhóm, mỗi nhóm là một vecto có d ký
tự (tương ứng với bậc của khóa) và việc tách này được thực hiện từ trái qua
phải. Nếu nhóm cuối không đủ d ký tự thì ta sẽ điền thêm ký tự cuối của bản rõ
cho đến khi nhóm cuối có đủ d ký tự hoặc ta điền vào các ký tự đặc biệt như
khoảng trắng. Chuyển các vecto này thành vecto cột
2. Thay thế các ký tự tương ứng thành các chữ số từ 0 đến m-1 theo bảng
Alphabet mà ta đã định nghĩa.
3. Viết k vecto cột thành ma trận; có số dòng là d và thực hiện phép nhân
ma trận khóa K với ma trận M vừa tạo theo modun m.
C = K × M (modun m)
4. Sau khi được tích của hai ma trận thì ta sẽ thu được ma trận C. Từ ma
trận C ta sẽ viết lại thành k nhóm, mỗi nhóm gồm có d phần tử (số phần tử của
một cột ma trận). Sau đó ta sẽ tương ứng các số trong nhóm thành các ký tự và
kết quả là ta sẽ tìm được bản mã.
Giải mã
1. Khi nhận được bản mã thì người nhận cũng sẽ tác bản mã thành k
nhóm với mỗi nhóm có d ký tự
2. Thay thế các ký tự tương ứng thành các chữ số từ 0 đến m-1 theo bảng
Alphabet mà ta định nghĩa.
3. Viết k nhóm thành ma trận có số dòng là d và thực hiện phép nhân với
-1
K và tích này tính theo modun m.
M= K-1 × C(modun m)
4. Sau khi có M thì ta viết lại thành k nhóm, mỗi nhóm có d phần tử (một
cột của ma trận). Sau đó ta sẽ tương ứng các số trong nhóm thành các ký tự và
kết quả là ta sẽ tìm được bản rõ; có thể lược bỏ một số ký tự thêm vào ở cuối.
1.4. Ví dụ minh họa thuật toán Hill
|
a11 a12
Lấy m=2, và K = a a = 3 7
21 22
|| |
11 8
A B C D E F G H I J K L M
0 1 2 3 4 5 6 7 8 9 10 11 12
9
N O P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
a. Mã hóa bản rõ
Với bộ 2 ký tự (r1, r2), ta có bản mã (m1, m2)=(r1, r2).
K được tính như sau:
|11 8|
(m1, m2) = E K ( r 1 ,r 2 )= ( r 1 , r 2 )∗ 3 7 =(11*r1 +3*r2, 8*r1+7*r2)
Với bản rõ R = TUDO
Tách thành từng hai bộ ký tự, và viết dưới dạng số ta được 19 20 | 3 14
Lập bản mã theo qui tắc trên ta được
11 8
| |
(m1, m2) = E K (19, 20) = (19, 20)* 3 7 =(11*19+3*20, 8*19+7*20)
= (269 mod 26, 292 mod 26) = (9, 6)
11 8
| |
(m3, m4) = E K ( 3 ,14 )= (3 ,14 )* 3 7 =(11*3+3*14, 8*3+7*14)
= (75 mod 26, 122 mod 26) = (23, 18)
Như vậy ta được bản mã dưới dạng số là: 9 6| 23 18,
Và dưới dạng chữ là: JGXS.
b. Giải mã bản mã
Để thực hiện giải mã ta cần xác định được ma trận nghịch đảo của ma
a11 a12
trận K để làm khóa giải mã. Đối với K = ( a a ¿ là một ma trận cấp 2 ta có
21 22
K
−1
|
= −a
a22
21
−a 12
a 11| |
=
7 −8
−3 11
= | |
7 18
23 11 |
Tương tự, dùng công thức giải mã D K để tính bản rõ ta được:
|237 1811| * (9, 6) = (19, 20) |237 1811| * (23, 18) = (3, 14)
Như vậy ta được bản rõ dưới dạng số là: 19 20| 3 14,
Và dưới dạng chữ là: TUDO.
Vậy bản rõ thu được là TUDO.
1.5. Thám mã đối với mã Hill
Mật mã Hill khó bị khám phá bởi việc thám mã chỉ dựa vào bản mã,
nhưng lại dễ bị khám phá nếu có thể sử dụng phép thám mã kiểu biết cả bản rõ.
Trước hết ta giả thiết là đã biết giá trị m. Mục đích của thám mã là phát hiện
10
được khóa mật mã K, trong trường hợp mã Hill là một ma trận cấp m có các
thành phần trong Z26.
Ta chọn một bản rõ có chứa ít nhất m bộ m khác nhau các ký tự:
X1=(x11,...,x1m),...,xm = (xm1,...,xmm),
Và giả thiết biết mã tương ứng của chúng là:
Y1=(y11,...,y1m),...,ym = (ym1,...,ymm).
Ta ký hiệu X và Y là hai ma trận cấp m, X=(xij), y=(yij).
Theo định nghĩa mã Hill, ta có phương trình Y=X.K. Nếu các x i được
chọn sao cho ma trận X có nghịch đảo X -1 thì ta tìm được K=X -1.Y, tức là tìm
được khóa của hệ mã được sử dụng.
Thí dụ: Giả sử mã Hill được sử dụng có m =2, và ta biết bản rõ Friday
cùng bản mã tương ứng pqcfku. Như vậy ta biết:
eK(5,17) = (15,16), eK(8,3) = (2,5) và eK(0,24) = (10,20).
Từ hai phương trình đầu ta được:
[ ]
2 3 15
K= 5 8 12
1 13 4
Chúng ta sẽ thực hiện theo quy trình được nêu ở trên để tìm hiểu ra kích
thước khối là 3 và ma trận K.
Hãy bắt đầu với kích thước khóa là m=2.
CRYPTOGRAPHYISCOOL
2 17 24 15 19 14 6 17 0 15 7 24 8 18 2 14 14 11
Mã hóa thành
ZSHLFGLKTVDUWAQBCG
25 18 7 11 5 6 11 10 19 21 3 20 22 0 16 1 2 6
Nhận thấy
[ 2 24 ]
K= 17 15
Vì det(K) = -378 không nguyên tố cùng nhau với 26, vì vậy M không khả
nghịch.
Nếu chúng ta chuyển sang khối tiếp theo, 19 14 và giữ khối đầu tiên thì
ma trận M của chúng ta trở thành,
[ 2 19]
M= 17 14
Và det(M)= -295 = 17 mod 26. Vì 17 và 26 là 2 số nguyên tố cùng nhau
nên phương trình của chúng ta trở thành,
[ 2 19] [ 25 5 ]
K. 17 14 = 18 6
E=[ 18 6 ][ 17 14 ] =[ 18 6 ][ 25 20 ]=[ 18 2 ]
−1
25 5 2 19 25 5 10 5 11 17
Nên,
Để xem liệu rằng nó có hoạt động hay không, ta kiểm tra nó trên tin nhắn
văn bản gốc CRYPTOGRAPHYISCOOL
[ 2 19][ 2 24 19 6
Y=X.K= 17 14 17 15 14 17 15 24 18 14 11
0 7 8 2 14
]
[ 25 25 5 17 21 17 4 0 3
= 18 20 6 12 4 18 24 12 14 ]
12
Như chúng ta có thể thấy, các cột 1 và 3 mã hóa chính xác, nhưng phần
còn lại thì không chính xác. Vậy kích thước khối không phải là 2.
Tiếp tục với m=3. Nếu có thì có ma trận K có kích thước 3 x 3 với
[ ][ ]
2 15 6 15 8 14 25 11 11 21 22 1
K= 17 19 17 7 18 14 = 18 5 10 3 0 2
24 14 0 24 2 11 7 6 19 20 16 6
Chọn ba cột từ ma trận tin nhắn sẽ tạo ra một ma trận nghịch đảo 3x3.
Nhìn vào hàng cuối cùng, tất cả các mục trừ 11 đều chẵn, vì vậy cột cuối cùng
phải được sử dụng. Vì cột cuối cùng của hàng thứ nhất là chẵn nên chúng ta phải
có ít nhất một số lẻ trong hàng đầu tiên của các cột chúng tôi sử dụng. Vì vậy,
chúng tôi không thể chọn hai số còn lại các cột từ các cột 1, 3 và 5. Hơn nữa, cột
5 toàn là số chẵn nên nếu chọn sẽ là vô nghĩa. Vì vậy, chúng tôi phải có cột 6 và
ít nhất một trong các cột 2 và 4. Chúng tôi sẽ thử các cột 1, 2 và 6. Điều này
mang lại,
[ ]
2 15 14
K= 17 19 14
24 14 11
Vì det(K) = -791 đồng dư với 15 theo modun 26, chúng ta biết rằng K có
ma trận nghịch đảo. Vì thế
[ ][ ]
2 15 14 25 11 1
17 19 14 = 18 5 2
24 14 11 7 6 6
Và sau đó,
[ ][ ][ ][ ]
−1
25 11 1 2 15 14 25 11 1 13 9 24
K = 18 5 2 17 19 14 = 18 5 2 3 12 14
7 6 6 24 14 11 7 6 6 8 10 15
[ ]
2 3 15
= 5 8 12
1 13 4
Bây giờ, chúng tôi biết điều này là đúng nhưng Eve vẫn sẽ cần kiểm tra
lại, như vậy cô ấy sẽ nhận được,
[ ][ ] [ ]
2 3 15 2 15 6 15 8 14 25 11 11 21 22 1
5 8 12 17 19 17 7 18 14 = 18 5 10 3 0 2
1 13 4 24 14 0 24 2 11 7 6 19 20 16 6
Kiểm tra với bản mã và cô ấy đã tìm thấy ma trận khóa K.
Phương pháp thám mã trên chỉ phù hợp với kích thước ma trận khóa
không quá lớn, đồng thời ta cần có chính xác cả bản rõ và bản mã của một
13
chuỗi ký tự. Do đó, trong phần lớn các trường hợp, hệ mật Hill được coi là
có tính an toàn tương đối trong mã hóa và giải mã dữ liệu.
1.6. Đánh giá hệ mật Hill
1.6.1. Ưu điểm
Thực hiện đơn giản (dựa trên phép nhân ma trận).
- So với mã dịch vòng, mã thay thế thường, mã Vigenere và mã Affine thì
mã Hill sử dụng phép nhân ma trận cho độ bảo mật thông tin cao hơn.
- Không gian khóa lớn nmxm, số lượng khóa không có công thức tường
minh để tính.
- Thuật toán dễ cài đặt.
- Thám mã hệ mật Hill nếu chỉ biết bản mã thì sẽ rất khó.
- Mật mã Hill thuộc mật mã khóa bí mật, trong khi mô hình của mật mã
khóa bí mật có thể được thiết kế cho các dạng dữ liệu yêu cầu tốc độ xử lí cao.
Một số phần cứng thực thi mật mã khóa bí mật có thể thực hiện mã hóa với tốc độ
hàng trăm Mbytes/s, trong khi các phần mềm thực thi mật mã khóa bí mật cũng
có thể thục hiện tốc độ Mbytes/s. Do đó, mật mã Hill cũng có ưu điểm này.
- Khóa sử dụng cho mật mã Hill là ma trận vuông, tương đối ngắn, ngắn
hơn rất nhiều so sánh với khóa sử dụng trong một số hệ mật thuộc mật mã khóa
công khai.
- Mật mã Hill có thể được sử dụng kết hợp với một số mật mã khác như
mã dịch vòng, mã Vigenere… để tạo nên hệ mật an toàn hơn, độ phức tạp cao
hơn từ các nguyên lí khác nhau.
1.6.2. Nhược điểm
- Hệ mật Hill là hệ mật cổ điển, hiện nay ít được sử dụng do có nhiều hệ
mật mới tối ưu hơn.
- Nếu biết m cũng có thể dễ dàng dùng máy tính để giải mã.
- Do sử dụng phép nhân ma trận nên thời gian lập mã lâu hơn so với một số
hệ mật cổ điển khác như mã Vigenere, mã dịch vòng…
- Trong quá trình liên lạc giữa hai đầu mối, khóa bí mật cần phải được thỏa
thuận hoặc phân phối trước qua một kênh bí mật, an toàn.
- Số cặp khóa phải phân phối giữa các bên liên lạc tăng nhanh theo quy mô
của mạng. Đồng thời việc thay đổi các đầu mối liên lạc trong mạng phức tạp và
cần có quy trình nghiêm ngặt hơn so với mật mã khóa công khai.
- Khó sử dụng trong việc xác thực công khai trong các sơ đồ chữ kí số.
14
- Trong sử dụng thực tế, khóa của mã Hill cần phải thay đổi thường xuyên
hoặc trong một thời gian sử dụng ngắn.
15
- Tính (det K)-1 theo modulo 26 bằng thuật toán Euclid mở rộng
- Giải mã bản mã
Setting form
Nhập mã bảo vệ (mặc định là admin). Điền kích thước khóa và các giá trị
của ma trận khóa. Nhấn Apply để xác nhận.
Khóa được lưu mặc định trong file Config.ini, tránh việc nhập nhiều lần
cùng một giá trị khóa
LỜI KẾT
Trong quá trình nghiên cứu, nhóm đã không ngừng ra sức học tập cũng
như tìm tòi các tài liệu phục vụ cho quá trình nghiên cứu làm đề tài, đã phần nào
giải quyết được các yêu cầu căn bản của nhiệm vụ đề tài đưa ra, từng bước làm
rõ từng vấn đề cụ thể và đã đạt được những kết quả nhất định.
Từ đó, nhóm đã đưa ra các định hướng phát triển bảo mật hệ thống thông
tin trong thời gian đến, là phải xây dựng một công cụ mã hóa và thuật toán để
giải mã phù hợp để các kẻ xâm nhập không thể tấn công, truy cập bất hợp vào
các cơ sở dữ liệu thông tin để đánh cắp cũng như phá hủy, gây nguy hại cho hệ
thống thông tin.
Trong quá trình nghiên cứu, không thể tránh những thiếu sót, rất mong
được sự đóng góp từ các thầy cô và các bạn đọc.
Chúng tôi xin chân thành cảm ơn!
28