1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài tập kết thúc môn bảo mật thông tin trong máy tính Hệ Elgamal

19 21 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 1,51 MB
File đính kèm 6120440556_Trần Văn Kiếm_ĐHSTIN20-L2-CM.rar (1 MB)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

hệ mã Elgamal Elgamal là một hệ mật mã công khai. Hệ Elgamal là 1 biến thể của sơ đồ phân phối khóa DiffieHellmal, được đưa ra năm 1984. So với RSA, Hệ Elgamal không có nhiều rắc rối về vấn đề quyền sử dụng. Hệ mật mã elgamal được xây dựng dựa trên bài toán logarithm rời rạc. Tính an toàn của nó phụ thuộc vào độ phức tạp của bài toán logarithm. Bài toán logarithm được phát biểu như sau: I={p,α,β} Trong đó: p là số nguyên tố α Є Zp là là phần tử nguyên thủy β Є Zp¬ Mục tiêu: Hãy tìm một số nguyên duy nhất a ,0 ≤ a ≤ p2 : αa ≡ β(mod p) Ta sẽ xác định số nguyên a bằng loga β

Trang 1

TRƯỜNG ĐẠI HỌC ĐỒNG THÁP

LỚP LIÊN THÔNG ĐHSP TIN CÀ MAU

- -

Đề tài:

Giảng viên hướng dẫn: Nguyễn Trọng Nhân Sinh viên thực hiện: Trần Văn Kiếm

MSSV: 6120440556

CÀ MAU – 01/2022

TIỂU LUẬN KẾT THÚC MÔN

BẢO MẬT THÔNG TIN

HỆ MẬT MÃ ELGAMAL

Trang 2

MỤC LỤC

I CƠ SỞ LÝ THUYẾT 3

1 Cơ sở xây dựng hệ mã Elgamal 3

2 Hệ mã Elgamal 3

a Tạo khóa: 3

b Mã hóa: 3

c Giải mã: 3

II BÀI TẬP MINH HỌA 4

1 Bài tập 1 4

2 Bài tập 2 6

III ƯU, KHUYẾT ĐIỂM VÀ CẢI TIẾN 6

1 Ưu điểm: 7

2 Nhược điểm: 7

3 Độ phức tạp của hệ mật mã Elgamal 7

4 Thám mã đối với hệ mật mã elgamal 7

a Thuật toán Shank (cân bằng thời gian) 7

b Thuật toán Pohlig-Hellman 11

c Thuật toán mật mã khóa bất đối xúng tương lai 12

d Đánh giá độ phức tạp thuật toán 15

e Kết luận 16

III PHẦN LẬP TRÌNH 16

1 Giới thiệu 16

2 Code ngôn ngữ Python 17

3 Ảnh minh họa code 18

a Ảnh khi chạy chương trình 18

b Ảnh sau khi được mã hóa và giải mã 19

Trang 3

I CƠ SỞ LÝ THUYẾT

1 Cơ sở xây dựng hệ mã Elgamal

- Elgamal là một hệ mật mã công khai

- Hệ Elgamal là 1 biến thể của sơ đồ phân phối khóa Diffie-Hellmal, được đưa ra năm 1984

- So với RSA, Hệ Elgamal không có nhiều rắc rối về vấn đề quyền sử dụng

- Hệ mật mã elgamal được xây dựng dựa trên bài toán logarithm rời rạc Tính

an toàn của nó phụ thuộc vào độ phức tạp của bài toán logarithm

Bài toán logarithm được phát biểu như sau:

I={p,α,β}

Trong đó: p là số nguyên tố

α Є Zp là là phần tử nguyên thủy

β Є Zp*

Mục tiêu: Hãy tìm một số nguyên duy nhất a ,0 ≤ a ≤ p-2 : αa ≡ β(mod p)

Ta sẽ xác định số nguyên a bằng loga β

2 Hệ mã Elgamal

a Tạo khóa:

Cho p là số nguyên tố sao cho bài toán logarithm rời rạc trong Zp là khó giải Cho α Є Zp* là phần tử nguyên thủy Giả sử P= Zp* , C= Zp* x Zp* Ta định nghĩa : K={(p,α,a,β): β ≡ αa (mod p) }

Khóa công khai là: (p, α , β)

Khóa bí mật là : a

b Mã hóa:

Chọn 1 số ngẫu nhiên bí mật k Є Zp-1 ,(chú ý là sau khi mã hóa xong thì k sẽ bị hủy) ta xác định : ek(x,k)=(y1 , y2 )

Trong đó: y1= αk mod p

c Giải mã:

Với y1 , y2 Є Zp* ta xác định : dk(y1 , y2 )= y2(y1a )-1 mod p

Trang 4

Sơ đồ mã hóa và giải mã hệ mật Elgamal

II BÀI TẬP MINH HỌA

1 Bài tập 1

Cho p= 569 , α = 2 ,a = 109 ,x= 257 , chọn k= 79

β ≡ 2109 mod 569

= > β= 229

Vậy: Khóa công khai là : (p,α,β)=(569,2,229)

Khóa bí mật là a=109

Mã hóa

Chọn k ngẫu nhiên k=79

Khi người A gửi bản tin x=257 cho người B thì người A sẽ mã hóa như sau:

+ y1= αk mod p

= 279 mod 569

Trang 5

79 2 2

= > y1= 394

+ y2 = x βk mod p

= 257 22979 mod 569

• Tính: 22979 mod 569

= > y2 =257.140 mod 569 = 133

Vậy người A sẽ gửi bản mã (y1,y2) =(394,140) cho người B

Giải mã:

Người B nhận được bản mã (y1,y2) sẽ tiến hành giải mã :

x= y2(y1a )-1 mod p = 140.(394109)-1 mod 569

• Tính 394109 mod 569

Kq= 140 Tính (140)-1 mod 569

Trang 6

9 1 -4 15

Kq = 126

= > x =133.126 mod 569 = 257

Vậy người B sau khi giải mã sẽ nhận được bản rõ x= 257

2 Bài tập 2

Cho Hệ Elgamal có p = 2579; α = 2; a = 765; chọn k ngẫu nhiêu là 853 Bản

rõ M = 1299

Tìm khóa của hệ mã trên?

Mã hóa:

Trước hết ta tính: β = α mod p = 2765 mod 2579 = 949

Để mã hóa thông điệp M = 1299 ta tính theo k =853:

C1 = α k mod p = 2 853 mod 2579 =435

C2 = (M*β k )mod p = (1299*949 853 ) mod 2579 =2396

Vậy bản mã được gửi đi sẽ là C = (435, 2396)

Giải mã:

Với khóa bí mật a= 765:

(C 1a) -1) mod p = (C1(p-1-a)) mod p = (435(2579-1-765)) mod 2579

= (4351813) mod 2579 = 1980

M = (C2* (C 1a) -1) mod p = (2396*1980) mod 2579 = 1299

 Kết luận:

Xây dựng được hệ mã Elgamal bộ khóa:

K = (p, α, a, β) = (2579, 2, 765, 949) với:

- Thành phần khóa công khai:

𝐊𝐔 = (α, β, p)

- Thành phần khóa bí mật:

K R = (a, p) = (765, 2579)

- Mã hóa M=1299 với C(C 1 , C 2 ) = (435,2396)

III ƯU, KHUYẾT ĐIỂM VÀ CẢI TIẾN

Trang 7

1 Ưu điểm:

Do được xây dựng từ bài toán logarithm rời rạc nên hệ mã khó tìm được các loagarithm rời rạc nếu p được chọn cẩn thận Để khó tấn công p phải có ít nhất 150 chữ

số và (p-1) phải có ít nhất 1 thừa số nguyên tố lớn

Độ phức tạp của bài toán logarith lớn nên đọ an toàn cao

Bản mã phụ thuộc vào bản rõ x và giá trị ngẫu nhiên nên từ một bản rõ ta có thể

có nhiều bản ma khác nhau

2 Nhược điểm:

Dung lượng bộ nhớ dành cho việc lưu trữ các bản mã là lớn gấp đôi so với các

hệ mã khác

Do việc sử dụng các số nguyên tố nên việc sinh khóa và quản lý khóa cũng khó khăn hơn các hệ mã khối

3 Độ phức tạp của hệ mật mã Elgamal

Theo thời gian: O(p)

Theo không gian:O(1)

4 Thám mã đối với hệ mật mã elgamal

a Thuật toán Shank (cân bằng thời gian)

Nếu chúng ta có đủ bộ nhớ thì có thể sử dụng bộ nhớ đó để làm giảm thời gian thực hiện của bài toán xuống

* Thuật toán:

Gọi m=[(p-1)1/2] (lấy phần nguyên)

Bước 1: tính αm.j mod p với 0≤ j≤ m-1

Bước 2: Sắp xếp các cặp tj: (j, αm.j mod p ) theo αm.j mod p và lưu vào danh sách

L1

Bước 3: tính β.α-i mod p với 0≤i≤m-1

Bước 4: Sắp xếp các cặp ti: (I, β.α-i mod p) theo β.α-i mod p và lưu vào danh sách L2

Bước 5: Tìm trong hai danh sách L1và L2 xem có tồn tại cặp (j, αm.j mod p) và (I, β.α-i mod p) nào mà αm,j mod p= β.α-i mod p (tọa độ thứ 2 của hai cặp bằng nhau) Bước 6: a=(m.j+i) mod (p-1)

Kết quả này có thể kiểm chứng từ công thức αm.j mod p=β.α-i mod p

= > am.j+i mod p = β mod p

= > a=(m.j+i) mod (p-1)

Trang 8

* Độ phức tạp thuật toán:

Phụ thuộc vào m=[(p-1)1/2], với giá trị của m, chúng ta cần tính các phần tử thuộc 2 danh sách L1 và L2 , đều là các phép toán lũy thừa phụ thuộc vào j và i ; mà j

và I lại phụ thuộc vào m nên có thể nhận thấy là thuật toán này chỉ có thể áp dụng trong những trường hợp p nhỏ

* Ví dụ minh họa :

Cho p=79, α=2, β=55 Tìm a theo thuật toán Shank

Bài giải

Tính m=[(p-1)1/2] = 9

B1: Tính t= αm.j mod p với 0≤ j≤ m-1 : 29.j mod 79 với 0≤ j≤8

j =0 => t=1; tj (0,1)

j=1=> 29mod 79 =38; tj (1,38)

j=2=>218 mod 79=13; tj (2,22)

j=3=>227mod 79=46; tj(3,46)

j=4=>236mod 79;

=> tj(4,10)

j=5=>245mod 79

=> tj(5,64)

J=6 => 254mod 79

Trang 9

x a d=1

=>tj(6,62)

j =7 => 263mod 79

=> tj(7,65)

j =8 =>272 mod 79

2 50 x

1 51 21 =>tj(8,21)

B2: Sắp xếp các cặp tj theo hướng tăng dần của αm.j mod p

(0,1);(4,10);(2,13);(8,21);( 1,38);(3,46);(6,62); (5,64);(7,65)

B3: tính β.α-i mod p với 0≤i≤m-1 : 55.(2-i) mod 79 với 0≤i≤8

Hay tính 55.(2i)-1 mod 79

i =0: 20 mod 79 = 1 => 1-1 mod 79=1 => 55.(20)-1 mod 79 =55

= >ti(0,55)

Trang 10

i =1:21 mod 79=2 => 2-1mod 79=40(tính theo EuClic)

=> 55.(21)-1 mod 79 = 55.40 mod 79=67

= >ti(1,67)

i =2:22 mod 79 =4 => 4-1 mod 79= 20

=>55.(22)-1 mod 79= 55.20 mod 79=73

= >ti(2,73)

i =3: 23 mod 79 =8 => 8-1 mod 79 = 10

=> 55.(23)-1 mod 79=55.10 mod 79=76

= >ti(3,76)

i =4:24 mod 79=16 => 16-1 mod 79 = 5

=> 55.(24)-1 mod 79 = 55.5 mod 79=38

= >ti(4,38)

i =5:25mod 79=32=>32-1mod 79=42

= > 55.(25)-1 mod 79=55.42 mod 79= 74

= >ti(5,74)

i =6:26 mod 79 =64 =>64-1mod 79= 21

= > 55.(26)-1 mod 79 = 55.21 mod 79=49

= >ti(6,49)

i =7:27 mod 79=49 => 49-1 mod 79=50

= > 55.(27)-1 mod 79=55.50 mod 79= 64

= >ti(7,64)

i =8:28 mod 79=19 => 19-1 mod 79 =25

= > 55.(28)-1 mod 79= 55.25 mod 79 = 32

= >ti(8,32)

B4: Sắp xếp các cặp ti: (I, β.α-i mod p) theo thứ tự tăng của β.α-i mod p và lưu vào danh sách L2 :

ti(8,32) ; ti(4,38) ; ti(6,49) ; ti(0,55) ; ti(7,64) ; ti(1,67) ; ti(4,73) ; ti(5,74) ;

ti(3,76)

B5: Tìm trong hai danh sách L1và L2 xem có tồn tại cặp (j, αm.j mod p) và (I, β.α-i mod p) nào mà αm,j mod p= β.α-i mod p (tọa độ thứ 2 của hai cặp bằng nhau)

Ta thấy cặp tj(1,38) và cặp ti(4,38) có tọa độ thứ 2 bằng nhau cùng bằng 38 và cặp tj(5,64) với cặp ti(7,64) có tọa độ thứ 2 bằng 64

Trang 11

= > chon : bộ 1: j=1 ;i=4 ; bộ 2: j=5;i=7

B6:

Với bộ 1: a=(m.j+i) mod (p-1)

a =(9.1+4) mod (p-1) =13

với bộ 2: a=(9.5+7)mod 78 =52

( Kiểm tra: ta có β≡αa mod p theo trên tính a=13

= > β≡ 213 mod 79

= > β=55 đúng theo bài ra β =55

Tính theo a=52

= > β≡ 252 mod 79

= > β= 55 (đúng theo bài ra)

b Thuật toán Pohlig-Hellman

Có những trường hợp đặc biệt mà bài toán Logarithm rời rạc có thể giải quyết với

độ phức tạp nhỏ hơn O(p1/2), chẳng hạn như khi (p-1) chỉ có các ước nguyên tố nhỏ Một thuật toán làm việc với các trường hợp như vậy đã được Pohlig và Hellman đưa

ra vào năm 1978

Giả sử, p-1 = 2n

Gọi α là phần tử nguyên thủy của Z*

p, p là một số lẻ và α(p-1)/2 mod p= -1 Gọi m

là số nguyên thuộc

[0,p-2] mà chúng ta cần tìm để β= α m mod p giả sử, m được biểu diễn thành dạng nhị phân

Trang 12

m= m0+2m1 +4m2+… + 2n-1mn-1 Khi đó,

1 nếu m0=0

=

-1 nếu m0= 1

Việc tính β(p-1)/2 mất nhiều nhất 2[log2p] bước và sẻ cho ta m0 Khi xác định được

β1=β.α-m

0, ta lặp lại thao tác tương tự để tính m1:

1 nếu m1=0

=

-1 nếu m1=1

Quá trình tính toán cứ thế tiếp diễn cho tới khi chúng ta tìm được mi Độ phức tạp

của thuật toán là : n.(2[log2p]+2) ~O((log2p)2)

c Thuật toán mật mã khóa bất đối xúng tương lai

* Thuật toán

Thuật toán Elgamal còn nhược điểm khá lớn là tạo ra các văn bản mã giống nhau

nếu cùng khối văn bản gốc Điều này là một yếu điểm chung của phương pháp mật mã

khóa bất đối xứng, làm giảm tính an toàn của thuật toán vì có thế sự dụng phương pháp

thám mã theo xác suất[1,2] Mặt khác, các khối dữ liệu sau mã hóa đi trên mạng, do

chủ quan hay khách quan, một vài khối có thế bị mất đi hoặc thêm vào hoặc bị thay

đổi nội dung Nơi nhận hoàn toàn không phát hiện được Thuật toán sau giải quyết vấn

đề này

Cho p là số nguyên tố lớn có chiều dài n byte sao cho việc giải bài toán trong miền

Zp* là đủ khó Có thể chọn bằng 8, 16, 32, 64 hoặc 128 byte

- Khoá công khai Kpu = (p,α,β), trong đó: p: một số nguyên tố lớn bất kì; α: số nguyên bất phần tử sinh; β = 𝛼𝑎 mod p, với a nguyên bất kì thỏa mãn 1 ≤ a ≤ p-2

- Khóa bí mật Kpr = a

* Quá trình mã hóa

Chia dữ liệu cần mã hóa thành các khối X[i] có kích thước n byte Khối cuối cùng

có kích thước nhỏ hơn n byte sẽ không đưuọc mã hóa

Bước 1: Tính A[i] = (𝛽𝑘 mod p) XOR X[i]

Trang 13

K là số nguyên bất kì thỏa 1 ≤ a ≤ p-2

Bước 2: Thực hiện dịch vòng trái LCS(Left Circular Shift) từng byte của A[i]

theo vectơ dịch SV(Shift Vectơ) thu đưoojwc B[i]

B[i][j]=A[i][j]<<<SV

SV là ma trận hàng gồm n phần tử, mỗi phần tử thỏa điều kiện:

0≤ SV[i] ≤ 7

Bước 3: Thu được văn bản sau mã hóa bằng cách:

C[i]=B[i] XOR C[i-1]

Trong đó C[i-1] là văn bản liền trước Sử dụng vectơ khởi tạo IV(Initial Vectơ) cho lần đầu tiên

* Quá trình giải mã

Nhận được C[i], C[i-1] và biết trước khóa bí mật Kpr = a

Bước 1: Tìm B[i] = C[i] XOR C[i-1], sử dụng vectơ khởi tạo IV(Inital Vectơ)cho

lần đầu tiên

Bước 2: Sử dụng vectơ liên hiệp dịch 𝑆𝑉̅̅̅̅ dịch vòng trái LCS từng byte B[i] để thu A[i] Vectơ liên hiệp dịch là ma trận được suy ra từ vectơ SV, với 𝑆𝑉̅̅̅̅ [i]=(8-SV[i]) XOR 8

A[i][j]=B[i][j]<<< SV

Bước 3: Ta thu được X[i] = A[i] XOR (𝛼𝑎𝑘 mod p)

* Chứng minh thuật toán

Trước tiên ta cần chứng minh:

Nếu a XOR b = c thì c XOR b = a (1)

a XOR b XOR c = a XOR c XOR b (2)

xy mod z = [x(y mod z)] mod z (3)

Chứng minh(1): Xét bảng chân trị sau

So sánh cột 1 và 4, ta thấy (1) đúng với số 1 bit Vì phép XOR thực hiện trên từng bit, nên (1) cũng dúng trong trường hợp a và b là số nhiều bit Vậy (1) đã được chứng

minh

Trang 14

Chứng minh(2): Tương tự, xét bảng chân trị sau:

So sánh cột 4 và 5, ta thấy (2) đã được chứng minh

Chứng minh(3): xy mod z = [x(y mod z)] mod z

Đặt : xy mod z = r1v với 0 ≤ r1< z,

y mod z = r2v với 0 ≤ r2< z,

x(y mod z)] mod z = xr2mod z = r3v với 0 ≤ r3< z

Dễ thấy: xy= nz+ r1 (1’)

y=mz + r2 với m, n,k là các số nguyên không âm (2’)

x r2=kz + r3 (3’)

Rút r2 ở biểu thức (2’) thay vào biểu thức (3’) ta được:

So sánh với biểu thức(1’) ta được:

(k + mz)x + r3 = nz + r1

Dễ dàng nhận thấy r1 = r3 .Hay xy mod z = [x(y mod z)] mod z (đpcm)

Chứng minh thuật toán giải mã:

Theo bước 3 của quá trình mã hóa, ta có:

Dựa vào (1) suy ra B[i] = C[i] XOR C[i-1]

Do B[i] = A[i] <<SV(bước 2 quá trinh mã hóa), mặt khác, 𝑆𝑉̅̅̅̅ là vectơ liên hiệp dịch của SV, việc dịch vòng trái từng byte của khối B[i] thao 𝑆𝑉̅̅̅̅ [i] bit chính là trả về trị ban đầu A[i] Nghĩa là: A[i] = B[i] << 𝑆𝑉̅̅̅̅

Ta chỉ cần chứng minh X[i] = A[i] XOR (𝛼𝑎𝑘 mod p) Thay A[i] ở bước 1 của quá trình mã hóa vào ta có:

VP = (𝛼𝑎𝑘 mod p) XOR X[i] XOR (𝛼𝑎𝑘 mod p)

Trang 15

=[(𝛼𝑎 𝑚𝑜𝑑 𝑝)𝑘 mod p] XOR X[i] XOR (𝛼𝑎𝑘 mod p) (*)

Mặt khác, ta lại có:

𝛼𝑎𝑘 mod p = 𝛼𝑎(𝑘−1) 𝛼𝑎 mod p

= [𝛼𝑎(𝑘−1) (𝛼𝑎 mod p) mod p] (theo 3)

=(𝛼𝑎 mod p) 𝛼𝑎(𝑘−1)mod p

=(𝛼𝑎 mod p) 𝛼𝑎(𝑘−2)𝛼𝑎 mod p

=[(𝛼𝑎 mod p) 𝛼𝑎(𝑘−2)(𝛼𝑎 mod p)] mod p (theo (3)) =(𝛼𝑎 mod p)2 𝛼𝑎(𝑘−2) mod p

= (𝛼𝑎 mod p)𝑘 mod p

Thay vào (*) ta thu được

VP = [(𝛼𝑎 mod p)𝑘 mod p] XOR X[i] XOR[(𝛼𝑎 mod p)𝑘 mod p]

= [(𝛼𝑎 mod p)𝑘 mod p] XOR [(𝛼𝑎 mod p)𝑘 mod p] XOR X[i]

= X[i]

=VP(đpcm)

d Đánh giá độ phức tạp thuật toán

Thuật toán phát triển dựa trên độ khó của bài toàn logarit trong Elgama nên vẫn giữ được ưu điểm khó thám mã tương đương với RSA và Elgamal

Để thám mã thành công thuật toán Elgamanl độ dài 64 byte, với máy tính đơn có

bộ vi xử lý PIV 2.6 GHz, cần thời gian 300000 giờ(khoảng 34 năm) Thế nhưng nếu

sử dụng mạng gồm 100000 máy thì thời gian thám mã chỉ còn hơn 3 giờ(theo tài liệu tính toán của RSA Inc)

Thuật toán Elgamal giải quyết tốt vấn đề bảo mạt, nhờ sử dụng vectơ dịch SV theo ma trận hàng Một số tính năng ưu việt nổi bật của thuật toán này như sau:

Độ bảo mật được tăng cường rất lớn so với các thuật toán khóa mã công khai hiện tại Với cùng kích thước bài toán 64byte nhu trên, vectơ dịch SV là ma

traanj1x64, mỗi phân của SV có giá trị 0 ddeens7 Đế thám mã thành công thuật toán Elgamal, ngoài việc vượt qua độ khó của bài toán logarit như trên, cần phải tìm được chính xác SV Tập không gian SV là864 = 2192 = 10192𝑙𝑔2 ≈ 1058 vectơ Theo trung tâm ứng dụng siêu quốc gia MỸ,(12/2003), một hệ thống siêu mạnh với 1500 máy chủ có thể thực hiện được 20 nghìn tỉ(2.1013), phép tính trên giây Với hệ thống siêu mạng này, theo ước tính của tác giả, thời gian để tìm ra chính xác SV bằng

phương pháp vét cạn để thám mã là 1058/(2.1013) =5.1044(giây) ≈1.6.1037 (năm)

Rõ ràng độ bảo mật tăng lên vô cùng lớn

Trang 16

Kích thước dữ liệu sau mã hóa không thay đổi So với thuật toán Elgamal, ứng

với mỗi dữ liệu x sẽ cho ra văn bản mã c gồm 𝑦1 và 𝑦2 Riêng thuật toán Elgamal, chỉ sinh ra văn bản mã C[i] có kích thước bằng với kích thước văn bản gốc X[i]

Chống thám mã theo xác suất xuất hiện Các phương pháp mã hóa theo mô hình

khóa đối xứng đều có cùng nhược điểm là tạo ra các khối văn bản mã giống nhau với cùng văn bản gốc Nhờ phép XOR với văn bản mã liền trước, Advanced Elgamal sẽ tạo ra các văn bản mã khác nhau cho dù văn bản gốc đầu đều giống nhau Điều này loại bỏ hoàn toàn thám mã theo xác suất

Nhận ra sự thay đổi dữ liệu trên đường truyền Một ai đó cố tình phá hoại hệ

thống bảo mật bằng cách tạo ra các khối giống với khối văn bản mã, hay cố tình sủa đối nội dung văn bản mã trên đường truyền Theo thuật toán Elgamal và RSA, nơi nhận không phát hiện điều này Kĩ thuật XOR các văn bản mã với nhau trong thuật toán Advanced Elgamal giúp giải quyết triệt để vấn đề này

Tốc độ thực thi cao nhờ sử dụng các phép gần với ngôn ngữ máy(phép dịch

vòng, phép XOR)

Hiệu quả trong thiết kế phần cứng: Sử dụng chung khoảng 2/3 kiến trúc phần

cứng cho quá trình mã hóa và giải mã

e Kết luận

Tuy tốc độ mã hóa và giải mã được cải thiện rõ nét, nhưng không ngoại lệ, thuật toán Advanced Elgamal cũng giống như các thuật toán thuộc hệ mã công khai, vẫn còn cồng kềnh so với thuật toán hệ bí mật Vì vậy, thuật toán rất thích hợp cho các ứng dụng có kích thước nhỏ, đòi hỏi độ bảo mật cao, không cần định danh trước đối tác sử dụng khóa Do đó, khả năng ứng dụng trong thương mại, giao dịch điện tử, thu tín điện tử là rất lớn

III PHẦN LẬP TRÌNH

1 Giới thiệu

Elgamal Encryption là một loại thuật toán khóa bất đối xứng được sử dụng để

mã hóa Nó được sử dụng cho mật mã khóa công khai và dựa trên trao đổi khóa

Diffie-Hellman

Ở đây, em sẽ bao gồm phần giới thiệu, cách sử dụng, thuật toán và mã bằng Python cho thuật toán mã hóa Elgamal

Mật mã mã hóa khóa không đối xứng này dựa trên sự khó khăn trong việc tìm kiếm lôgarit rời rạc trong một nhóm tuần hoàn, nghĩa là chúng ta biết g ^ a và g ^ k, tính g ^ ak

Sử dụng: Hệ thống mật mã kết hợp sử dụng thuật toán này

Thuật toán:

Thuật toán mã hóa Elgamal có ba phần:

- Chọn khóa

Ngày đăng: 14/03/2022, 23:00

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w