Tiểu luận hệ mật Elgamal, Tiểu luận hệ mật Elgamal, Tiểu luận hệ mật Elgamal, Tiểu luận hệ mật Elgamal, Tiểu luận hệ mật Elgamal, Tiểu luận hệ mật Elgamal, Tiểu luận hệ mật Elgamal, Tiểu luận hệ mật Elgamal, Tiểu luận hệ mật Elgamal, Tiểu luận hệ mật Elgamal, Tiểu luận hệ mật Elgamal, Tiểu luận hệ mật Elgamal, Tiểu luận hệ mật Elgamal, Tiểu luận hệ mật Elgamal, Tiểu luận hệ mật Elgamal, Tiểu luận hệ mật Elgamal, Tiểu luận hệ mật Elgamal, Tiểu luận hệ mật Elgamal, Tiểu luận hệ mật Elgamal, Tiểu luận hệ mật Elgamal, Tiểu luận hệ mật Elgamal,
Trang 1LỜI NÓI ĐẦU
Ta biết rằng tin truyền trên mạng rất dễ bị lấy cắp Để đảm bảo việc truyền tin an toànngười ta thường mã hoá thông tin trước khi truyền đi Việc mã hoá thường theo quy tắc nhấtđịnh gọi là hệ mật mã
Hiện nay có hai loại hệ mật mã: mật mã cổ điển và mật mã khoá công khai Mật mã cổ điển
dễ hiểu, dễ thực thi nhưng độ an toàn không cao Vì giới hạn tính toán chỉ thực hiện trongphạm vi bảng chữ cái sử dụng văn bản cần mã hoá Với các hệ mã cổ điển, nếu biết khoá lập
mã hay thuật toán lập mã, người ta có thể "dễ" tìm ra được bản rõ Ngược lại các hệ mật mãkhoá công khai cho biết khoá lập mã K và hàm lập mã Ck thì cũng rất "khó" tìm được cách giải
mã
Hệ mã hóa với khoá công khai Elgamal được đề xuất năm 1985, dựa vào độ phức tạp củabài toán lôgarit rời rạc Với chủ đề 11, “xây dựng chương trình mô phỏng hệ mã Elgamal”,chúng ta sẽ có cái nhìn tổng quan về hệ mã hóa công khai Elgamal
Nhóm 11
Trang 2PHẦN I: LÝ THUYẾT
1.1.Cơ sở xây dựng hệ mã Elgamal
Hệ mật mã elgamal được xây dựng dựa trên bài toán logarithm rời rạc
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)mod p)
Ta sẽ xác định số nguyên a bằng loga β}
1.2 Hệ mã Elgamal
* 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={(mod p)p,α,a,β}): β} ≡ αa (mod p)mod p) }
Khóa công khai là: (mod p)p, α , β})
Khóa bí mật là : a
* Mã hóa:
Chọn 1 số ngẫu nhiên bí mật k Є Zp-1 ,(mod p)chú ý là sau khi mã hóa xong thì k sẽ bị hủy) taxác định : ek(mod p)x,k)=(mod p)y1 , y2 )
Trang 4Người B nhận được bản mã (mod p)y1,y2) sẽ tiến hành giải mã :
x= y2(mod p)y1a )-1 mod p = 140.(mod p)394109)-1 mod 569
Trang 5Vậy người B sau khi giải mã sẽ nhận được bản rõ x= 257
1.4 Ưu nhược điểm của hệ mật mã Elgamal
Ư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ờirạ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à (mod p)p-1) phải có ítnhất 1 thừa số nguyên tố lớn
Theo thời gian: O(mod p)p)
Theo không gian:O(mod p)1)
1.6 Thám mã đối với hệ mật mã elgamal
1.6.1.Thuật toán Shank(cân bằng thời gian)
Trang 6Nếu chúng ta có đủ bộ nhớ thì có thể sử dụng bộ nhớ đó để làm giảm thời gian thựchiện của bài toán xuống.
Input: số nguyên tố p , phần tử nguyên thủy α của Zp , số nguyên β}
Output : cần tìm a sao cho αa mod p = β}
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: (mod p)I, β}.α-i mod p) theo β}.α-i mod p và lưu vàodanh sách L2
Bước 5: Tìm trong hai danh sách L1và L2 xem có tồn tại cặp (mod p)j, αm.j mod p)
và (mod p)I, β}.α-i mod p) nào mà αm,j mod p= β}.α-i mod p (mod p)tọa độ thứ 2 của hai cặpbằng nhau)
Bước 6: a=(mod p)m.j+i) mod (mod p)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=(mod p)m.j+i) mod (mod p)p-1)
Trang 8B2: Sắp xếp các cặp tj theo hướng tăng dần của αm.j mod p
(mod p)0,1);(mod p)4,10);(mod p)2,13);(mod p)8,21);(mod p) 1,38);(mod p)3,46);(mod p)6,62); (mod p)5,64);(mod p)7,65)
B3: tính β}.α-i mod p với 0≤i≤m-1 : 55.(mod p)2-i) mod 79 với 0≤i≤8
Hay tính 55.(mod p)2i)-1 mod 79
i =0: 20 mod 79 = 1 => 1-1 mod 79=1 => 55.(mod p)20)-1 mod 79 =55
= >ti(mod p)0,55)
i =1:21 mod 79=2 => 2-1mod 79=40(mod p)tính theo EuClic)
=> 55.(mod p)21)-1 mod 79 = 55.40 mod 79=67
= >ti(mod p)1,67)
i =2:22 mod 79 =4 => 4-1 mod 79= 20
=>55.(mod p)22)-1 mod 79= 55.20 mod 79=73
Trang 9ti(mod p)8,32) ; ti(mod p)4,38) ; ti(mod p)6,49) ; ti(mod p)0,55) ; ti(mod p)7,64) ; ti(mod p)1,67) ; ti(mod p)4,73) ; ti(mod p)5,74) ; ti(mod p)3,76)
B5: Tìm trong hai danh sách L1và L2 xem có tồn tại cặp (mod p)j, αm.j mod p) và (mod p)I, β}.α-i mod p)nào mà αm,j mod p= β}.α-i mod p (mod p)tọa độ thứ 2 của hai cặp bằng nhau)
Trang 10Ta thấy cặp tj(mod p)1,38) và cặp ti(mod p)4,38) có tọa độ thứ 2 bằng nhau cùng bằng 38 và cặp tj(mod p)5,64)với cặp ti(mod p)7,64) có tọa độ thứ 2 bằng 64
= > chon : bộ 1: j=1 ;i=4 ; bộ 2: j=5;i=7
B6:
Với bộ 1: a=(mod p)m.j+i) mod (mod p)p-1)
a =(mod p)9.1+4) mod (mod p)p-1) =13
với bộ 2: a=(mod p)9.5+7)mod 78 =52
(mod p) Kiểm tra: ta có β}≡αa mod p theo trên tính a=13
1.6.2.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ứctạp nhỏ hơn O(mod p)p1/2), chẳng hạn như khi (mod p)p-1) chỉ có các ước nguyên tố nhỏ Một thuật toán làmviệ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
Trang 11Gọi α là phần tử nguyên thủy của Z*
p, p là một số lẻ và α(mod p)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ânm= m0+2m1 +4m2+… + 2n-1mn-1 Khi đó,
1 nếu m0=0
=
-1 nếu m0= 1Việc tính β}(mod p)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
Trang 121.7 Thuật toán mật mã khóa bất đối xúng tương lai(Advanced Elgamal)
1.7.1 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ùngkhố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 đốixứ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ácsuấ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ànkhô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
Bước 2: Thực hiện dịch vòng trái LCS(mod p)Left Circular Shift) từng byte của A[i] theo vectơ
dịch SV(mod p)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(mod p)Initial Vectơ) cho lần đầutiên
1.7.3 quá trình giải mã
Trang 13Bước 1: Tìm B[i] = C[i] XOR C[i-1], sử dụng vectơ khởi tạo IV(mod p)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]=(mod p)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) mod p)
1.7.4.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 (mod p)1)
a XOR b XOR c = a XOR c XOR b (mod p)2)
xy mod z = [x(mod p)y mod z)] mod z (mod p)3)
Chứng minh(1): Xét bảng chân trị sau
Trang 14
So sánh cột 4 và 5, ta thấy (mod p)2) đã được chứng minh
Chứng minh(3): xy mod z = [x(mod p)y mod z)] mod z
Đặt : xy mod z = r1v với 0 ≤ r1< z,
y mod z = r2vvới 0 ≤ r2< z,
x(mod p)y mod z)] mod z = xr2mod z = r3v với 0 ≤ r3< z
Dễ thấy: xy= nz+ r1 (mod p)1’)
y=mz + r2 với m, n,k là các số nguyên không âm (mod p)2’)
x r2=kz + r3 (mod p)3’)Rút r2 ở biểu thức (mod p)2’) thay vào biểu thức (mod p)3’) ta được:
xy= (mod p)k+mz) + r3
So sánh với biểu thức(mod p)1’) ta được:
(mod p)k + mz)x + r3 = nz + r1
Dễ dàng nhận thấy r1 = r3 .Hay xy mod z = [x(mod p)y mod z)] mod z (mod p)đpcm)
Chứng minh thuật toán giải mã:
c
a XOR c XOR b
Trang 15C[i] = B[i] XOR C[i-1]
Dựa vào (mod p)1) suy ra B[i] = C[i] XOR C[i-1]
Do B[i] = A[i] <<SV(mod p)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) mod p) Thay A[i] ở bước 1 của quá trình
mã hóa vào ta có:
VP = (mod p) mod p) XOR X[i] XOR (mod p) mod p)
=[ mod p] XOR X[i] XOR (mod p) mod p) (mod p)*)
Trang 16Thay vào (mod p)*) ta thu được
= X[i]
=VP(mod p)đpcm)
1.7.5 Đá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ờ(mod p)khoảng 34 năm) Thế nhưng nếu sử dụng mạnggồm 100000 máy thì thời gian thám mã chỉ còn hơn 3 giờ(mod p)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 matrậ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à
vectơ Theo trung tâm ứng dụng siêu quốc gia MỸ,(mod p)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ỉ(mod p)2 ), phéptí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ínhxác SV bằng phương pháp vét cạn để thám mã là /(mod p)2 ) =5 (mod p)giây) 1.6
(mod p)năm) Rõ ràng độ bảo mật tăng lên vô cùng lớn
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 và 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ảngố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ã
Trang 17khác nhau cho dù văn bản gốc đầu đều giống nhau Điều nayloại bỏ hoàn toàn thám mã theoxá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ếttriệ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(mod p)phép dịch vòng, phép
XOR)
Hiệu quả trong thiết kế phần cứng: Sử dụng chung khoanrg2/3 kiến trúc phần cứng cho
quá trình mã hóa và giải mã
Trang 182.1.1 sơ đồ thuật toán Mã Hóa
Nhập mod 569 mod 569 mod 569 (P, mod 569 α, mod 569 ß) Nhập mod 569 mod 569 mod 569 Banro Nhập mod 569 mod 569 mod 569 K
Banma=(y1,y2)
KT(P, mod 569 α, mod 569 ß,K) KT(Banro)
y1= αk mod pBegin
Trang 192.1.2 Hàm xử lý Mã Hóa
int y1 = mod tinhMod ( alpha , k , p );
tBanMa setText ( "" +( char ) y1 );
//Vì giá trị của x2 (bản rõ) có thể lớn hơn P nên cần chia nhỏ x2 ra để xử lý
tBanMa append ( "" +( char )(( x2 [ ] * mod tinhMod ( beta , k , p )) % p ));
}
}
2.1.1 Hàm xử lý Giải Mã
tBetaGiai setText ( "" + mod tinhMod ( alpha , , ));
// Tự sinh beta=alpha^a mod p (Theo Bình phương và nhân)
int y1 =(int) banMa charAt ( );
tBanRo setText ( "" );
//Trong đó y2 là bản mã
int y0 = dao Calculate ( mod tinhMod ( y1 , a , p ), p );
tBanRo append ( "" +( char ) );
}
}
Trang 20Đ S
Đ S
2.1.2 Sơ đồ thuật toán Giải Mã
Begin
Y1=(int)banma[0]
KT( P, mod 569 α,a ) KT(Banm a)
Nhập mod 569 ( P, mod 569 α,a ) Nhập mod 569 (Banma)
hienthi(Banro)
Trang 212.3 Giao Diện Chương Trình
2.3.1 Home, Mã Hóa, Giải Mã
Trang 22TÀI LIỆU THAM KHẢO
[1] Nguyễn Văn Tảo, Hà Thị Thanh, Nguyễn Lan Oanh, bài giảng an toàn và bảo mật thông tin, 2011.
[2] Đại học Hàng Hải, giáo trình an toàn và bảo mật thông tin,2008.
[3] Tạp chí khoa học và công nghệ, tập 44,số 2, 2006.
[4]http://www.java2s.com/Tutorial/Java/0490 Security/
ElGamalexamplewithrandomkeygeneration.htm