Luận văn của em đi vào nghiên cứu tìm hiểu một số thuật toán, bảo đảm sự khi truyền thông tin trên mạng và từ đó xây dựng chơng trình ứng dụng thi từ xa.. Với các hệ mã cổ điển, nếubiết
Trang 1lời mở đầu
Với sự phát triển mạnh mẽ của công nghệ thông tin và sự giao lu thôngtin ngày càng trở nên phổ biến trên các mạng truyền thông_máy tính, yêu cầubảo đảm an toàn thông tin đã trở thành một yêu cầu chung của mọi hoạt độngkinh tế xã hội và giao tiếp của con ngời
Lí thuyết mật mã hiện đại, tiếp nối ngành mật mã truyền thông, nhng
đ-ợc xây dựng trên cơ sở những quan niệm mới về bảo mật: phơng pháp bảo mậtdựa vào độ phức tạp tính toán, đã cho ta những giải pháp hữu hiệu
Luận văn của em đi vào nghiên cứu tìm hiểu một số thuật toán, bảo đảm
sự khi truyền thông tin trên mạng và từ đó xây dựng chơng trình ứng dụng thi
từ xa
Nội dung chính của luận văn gồm 3 chơng:
Chơng 1 Các khái niệm và thuật toán cơ bản
Chơng 2 Sơ đồ định danh
Chơng 3 Một số ứng dụng
Trang 2Chơng 1
Các khái niệm và thuật toán cơ bản
1 Một số khái niệm số học, đại số.
1.1 Kí hiệu và khái niệm.
1.1.1 Kí hiệu chia hết.
Cho a và b là hai số nguyên dơng
Số a chia hết cho số b ký hiệu là a : b Û Tồn tại n ẻ N sao cho a= b * n
Khi đó ngời ta nói b là ớc của a và ký hiệu: b | a
1.1.2 Ước số chung lớn nhất.
Cho a và b là hai số nguyên dơng
Ước số chung lớn nhất của a và b là số tự nhiên m lớn nhất sao cho m | a và m
| b Khi dó ký hiệu là UCLN(a, b) = m
1.1.3 Hai số nguyên tố cùng nhau.
Cho a và b là hai số nguyên dơng
Số a và số b đợc gọi là 2 nguyên tố cùng nhau Û UCLN (a, b) = 1
1.1.4 Đồng d module.
Cho n ẻ N, n ạ 0 và a, b ẻ Zn
Ký hiệu a º b (mod n) nghĩa là a đồng d với b theo mod n
Û tồn tại số nguyên b ẻ Zn* sao cho a= b + k * n
Tức là (a - b) = k * n, nh vậy n | (a – b )
1.1.5 Một số tính chất của đồng d module.
(a ± b) ( mod n ) º [( a mod n ) ± (b mod n)]( mod n)
(a * b) ( mod n ) º [( a mod n ) * ( b mod n)] (mod n)
2
Trang 31.1.6 Khái niệm nhóm.
Nhóm là một cặp (G, *) Trong đó G là tập hợp khác rỗng, * là phéptoán hai ngôi trên G thoả mãn ba điều kiện sau:
Nếu không tồn tại số tự nhiên n để gn = e thì G có cấp là
Trong trờng hợp ngợc lại, tồn tại số tự nhiên nhỏ nhất n mà gn = e thì G
sẽ gồm n phần tử khác nhau: e, g, g2, g3, , gn-1 Khi đó G đợc gọi là nhómCyclic hữu hạn cấp n
Phần tử ẻ G đợc gọi là có cấp d nếu d là số nguyên dơng nhỏ nhấtsao cho
d = e Nó có cấp 1 nếu = e Chính vì lẽ trên, nhóm Cyclic còn đợc
định nghĩa nh sau: Nhóm G đợc gọi là nhóm Cyclic nếu tồn tại số g sao chomọi phần tử trong G đều là một luỹ thừa nguyên nào đó của g
1.1.8 Nhóm con.
Cho G là một nhóm, cho S è G và S ạ f S đợc gọi là nhóm con của Gnếu:
Phần tử trung lập e của G nằm trong S
S khép kín đối với luật hợp thành trong G ( tức x * yẻS với mọi x, y ẻ S)
Trang 4Tập này cùng với phép cộng lập thành nhóm Cyclic có phần tử sinh là
đó là nhóm hữu hạn có cấp n
Zn = { e ẻ Zn, e là nguyên tố cùng nhau với n} Tức là e ạ 0
Đó là tập các số nguyên dơng < n, nhng nguyên tố cùng nhau với n đợcgọi là tập Thặng d thu gọn theo mod n, lập thành một nhóm với phép nhânmod n
Do đó với mọi b ẻ ZR* (tức b nguyên tố với p)
Thì bf(n) º 1 (mod n) hay bp-1 º 1 (mod n)
*Định lý :
Nếu p là số nguyên tố thì ZR* là nhóm Cyclic
4
Trang 5Chú ý:
Theo các định nghĩa trên ta có: phần tử ẻ Zn có cấp d nếu d là số nguyên dơng nhỏ nhất sao cho d = e trong Zn , tức là d º 1 (mod n)
1.2 Logarit rời rạc.
*Khái niệm Logarit rời rạc:
Cho p là số nguyên tố, là phần tử nguyên thuỷ của ZP, b ẻ ZP
Logarit rời rạc chính là việc giải phơng trình x = log b (mod p) với ẩn x
Hay phải tìm số x duy nhất sao cho: x º b (mod p)
Với p là một số nguyên tố và (a, p) = 1 thì ap-1 (mod p) = 1
1.3 Thặng d bậc hai và ký hiệu Legendre.
* Thặng d bậc hai:
Cho p là số nguyên tố lẻ, x là một số nguyên dơng Ê p - 1
x đợc gọi là thặng d bậc hai mod p, nếu phơng trình y2 º x có lời giải
* Ký hiệu Legendre:
Cho p là số nguyên tố lẻ, và a là một số nguyên dơng bất kỳ
Ký hiệu Legendre nh sau:
ap
0 nếu a º 0 mod p
1 nếu a là thặng d bậc hai mod p
1 trong các tr ờng hợp còn lại
Trang 61.4 Hàm một phía và hàm cửa sập một phía.
Hàm f(x) đợc gọi là hàm một phía nếu tính y = f(x) thì “ dễ ”, nhng tính
x = f-1 (y) lại rất “ khó ”
Hàm f(x) = xa ( mod n) ( với n là tích của hai số nguyên tố lớn n = p
*q ) là hàm một phía Nếu chỉ biết a và n thì tính x = f –1 (y) rất khó nhng nếubiết cửa sập p và q thì tính đợc f –1(y) là khá dễ
1.5 Thuật toán nghịch đảo.
Cho a ẻ Zn* , a-1 ( mod n ) = 1
Một số thuật toán tính nghịch đảo:
Cho a-1 chạy từ 2 đến n-1 đến khi đợc a*a-1 (mod n) = 1
Nếu biết f ( n ) thì chỉ cần tính: a-1 º af(n) –1 (mod n )
6
Function lagendre (a, n : longint) :longint;
Var tam : longint;
Trang 7Dùng thuật toán Euclidean mở rộng nh sau:
Đầu vào: b và n
1.6 Thuật toán phân tích ra thừa số
Bài toán : Cho n là tích của hai số nguyên tố lớn p và q, n = p*q, bàitoán đặt ra là nếu biết n, có cách nào để tìm đợc p và q không ?
Hiện nay ngời ta cha có cách nào tính trực tiếp p, q hữu hiệu từ n trừ khibiết f(n) Vì khi biết f(n), ta có:
Ngoài ra theo cách cổ điển, sử dụng thuật toán:
Đầu ra: - nghịch đảo của b theo mod n nếu tồn tại
p thoả mãn p | n
0 trong tr ờng hợp ng ợc lạifor i = 3 to i <= sqrt (n)
Trang 8Trong thuËt to¸n trªn vßng lÆp lµ ( n1/2/2 ) NÕu n cã 512 bit, gi¸ trÞ línnhÊt cña n lµ 2512 NÕu 1 m¸y tÝnh thùc hiÖn 106 chØ lÖnh trong 1 gi©y th× thêigian thùc hiÖn lµ:
T = n1/2/ 2 £ 21/2 512/2 = 2256/2 = 2555 (gi©y) » 2238 (ngµy) » 2230 (n¨m).NÕu kÎ gi¶ m¹o muèn t×m p, q theo c¸ch nµy th× ®©y lµ ®iÒu kh«ng tëng
8
Trang 91.7 ThuËt to¸n tÝnh sè mò to
§Çu vµo lµ : x, b, n lµ c¸c sè nguyªn d¬ng
§Çu ra lµ : x mò b theo mod n
Begin i:=1;
du(i) : = nguyen Mod 2;
nguyen : = nguyen div 2;
Until (nguyen = 0) For j := i downto 1 do
b( j ) : = du( j );
For k : = i + 1 downto 0 do begin
Trang 101.8 ThuËt to¸n céng hai sè nguyªn lín
§Çu vµo lµ 2 sè nguyªn lín chøa trong 2 x©u A vµ B
If Lenth ( A ) > Lenth ( B ) Thenbegin
Trang 111.9 ThuËt to¸n Trõ hai sè nguyªn lín
§Çu vµo lµ 2 sè nguyªn lín chøa trong 2 x©u A vµ B
kt = SoSanh(A, B)
If kt = 2 ThenBegin
C := A ; A := B ; B := C ; dau=’-’
EndElse If kt = 3 Then Begin
If (x >= (y + nho)) Then
begin
so = x - (y + nho) nho = 0
kq = Str(so) + kqend
Elsebegin
x = x + 10
so = x - (y + nho)nho = 1
kq = Str(so) + kqend;
kq=dau + kq;
End;
END
Trang 12Chó ý : Hµm
1 NÕu A > B
2 NÕu A < B
3 NÕu A=B
1.10 ThuËt to¸n Nh©n hai sè nguyªn lín.
§Çu vµo lµ 2 sè nguyªn lín chøa trong 2 x©u A vµ B
For j = 1 To Lenth(A) Do Begin
Val(j, y, code); So = x*y + chuc
If So > 10 Then begin
chuc = So div 10;
dv = So mod 10;
kq = Str(dv) + kq;
end Else
Trang 131.11 ThuËt to¸n chia hai sè nguyªn lín
§Çu vµo
- Hai sè nguyªn lín chøa trong 2 x©u A vµ B
- P : Sè ch÷ sè phÇn thËp ph©n
§Çu ra lµ x©u kq chøa Th¬ng cña 2 sè nguyªn lín
Function Chia(A : String; B :String; P :integer) : String
solan = solan + 1; A := Tru(A, B);
Trang 142.Vấn đề mã hoá
2.1.Đặt vấn đề.
Ta biết rằng tin truyền trên mạng rất dễ bị lấy cắp Để đảm bảo việctruyền tin an toàn, ngời ta thờng mã hoá thông tin trớc khi truyền đi Việc mãhoá cần theo quy tắc nhất định gọi là hệ mật mã Hiện nay có hai loại 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ựcthi nhng có độ 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í dụ Z26 nếu dùng các chữcái tiếng anh, Z256 nếu dùng bảng mã ASCII ) Với các hệ mã cổ điển, nếubiết khoá lập mã hay thuật toán lập mã, ngời ta có thể tìm ra ngay đợ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ậpmã ek, thì cũng rất khó tìm đợc cách giả mã Và việc thám mã là rất khó khăn
do có độ phức tạp tính toán lớn Vì thế trong chơng này, đầu tiên ta định nghĩakhái niệm về mật mã sau đó tìm hiểu hệ mật mã công khai RSA vì nó thiếtthực cho ký điện tử
Sau đây là khái niệm hệ mật mã
Đờng đi của thông tin trong sơ đồ mã hoá nh sau:
Ngời gửi G muốn gửi một văn bản cho ngời nhận N, thay vì gửi văn bảnbình thờng, G mã hoá văn bản đó rồi mới gửi (tất nhiên phải cho ngời nhậnbiết khoá để giải mã ) Khi ngời N nhận đợc bản mã, họ dùng khoá do G gửi
để giải mã thì mới đọc đợc Nếu H lấy cắp bản tin này trên mạng thì anh tacũng không đọc đọc đợc nếu không có khoá mở
Trang 151.Sau này khi nhắc đến các ký hiệu P, C, K, E, D, ta ngầm định chúng
Hệ mật mã đối xứng (Hệ mã hoá cổ điển) là hệ mật mã mà khoá mã hoá
có thể tìm ra đợc từ khoá giải mã Trong nhiều trờng hợp, khoá mã hoá và
khoá giải mã là giống nhau Hệ này còn tên gọi khác nh Hệ mật mã khoá bí
mật, Hệ mật mã khoá đơn giản, Hệ mật mã một khoá.
Hệ mật mã đối xứng yêu cầu ngời gửi và ngời nhận phải thoả thuận mộtkhoá trớc khi tin tức đợc gửi đi, khoá này đợc cất giữ bí mật Độ an toàn của
hệ này phụ thuộc vào khoá Nếu để lộ khoá, thì bất cứ ngời nào cũng có thểmã hoá và giải mã thông báo
*Các đặc điểm của hệ mật mã đối xứng.
1 Các phơng pháp mã hoá cổ điển đòi hỏi ngời mã hoá và ngời giải mãphải có chung một khoá
2 Khoá phải đợc giữ bí mật tuyệt đối, khoá phải đợc gửi đi trên kênh antoàn Vì dễ dàng xác định một khoá nếu biết khoá kia
3 Khi bị lộ khoá phải viết lại thuật toán Thuật toán không thể phổ biến
đợc cho nhiều ngời dùng
*Nơi ứng dụng.
Hệ mật mã đối xứng thờng đợc sử dụng trong môi trờng mà khoá có thể
dễ dàng trao chuyển bí mật, chẳng hạn trong cùng một văn phòng Nó cũng
đ-ợc dùng để mã hoá thông tin khi lu trữ trên đĩa
2.3.2 Hệ mật mã phi đối xứng.
Vào những năm 1970 Difie và Hellman đã phát minh ra một hệ mật mã
hoá mới đợc gọi là hệ mật mã phi đối xứng hay hệ mật mã khoá công khai.
Trong hệ mật mã này, khoá mã hoá khác với khoá giải mã Mặt khác
Trang 16Khoá mã hoá còn gọi là khoá công khai (public key), khoá giải mã đợcgọi là khoá bí mật hay khoá riêng (private key).
*Các đặc điểm của hệ mật mã phi đối xứng.
1.Khi biết các điều kiện ban đầu, việc tìm ra cặp khoá công khai Kn và
bí mật kn phải đợc thực hiện một cách dễ dàng, tức là trong thời gian đa thức
2.Ngời gửi G có khoá công khai, có bản tin P thì có thể tạo ra đợc bảnmã C nhanh gọn, nghĩa là cũng trong thời đa thức
3.Ngời N nhận đợc bản tin mã hoá C với khoá bí mật kn thì có thể giảimã bản tin dễ dàng trong thời gian đa thức
4.Nếu kẻ phá hoại biết khoá công khai Kn, cố gắng tìm khoá bí mật kn,thì khi đó chúng phải đơng đầu với tính toán nan giải, rất khó khả thi về mặtthời gian
5.Nếu kẻ phá hoại biết đợc khoá công khai Kb, và hơn nữa cả bản mãhoá C, thì việc tìm ra bản rõ P là bài toán khó, số các phép thử là vô cùng lớn,không khả thi
6.Hệ mật mã phi đối xứng tiện lợi hơn hệ mật mã đối xứng ở chỗ thuậttoán đợc viết một lần cho nhiều lần dùng và cho nhiều ngời dùng Chỉ cần bímật khoá riêng
*Nơi ứng dụng.
Sử dụng chủ yếu trên các mạng công khai nh Internet, khi mà việc traochuyển khoá bí mật tơng đối khó khăn Đặc trng nổi bật của hệ mã hoá côngkhai là cả khoá công khai (public key) và bản mã (ciphertext) đều có thể gửi
đi trên một kênh an toàn thông tin không an toàn
16
Trang 19*ThuËt to¸n gi¶i m·
Procedure giaima;
Var t: integer;
Begin
Writeln (‘ Ban ma chu: ’,MC) ;
Writeln (‘ Ban ma so: ’) ; i:=1;
Trang 202.4.2 Xét độ an toàn trong hệ mật mã RSA.
Ta thấy hệ mật mã RSA chỉ đợc an toàn khi giữ bí mật khoá giải mã a
và 2 thừa số p và q hay giữ bí mật f(n)
Trờng hợp biết đợc p, q thì H dễ dàng tính đợc f(n) = (q-1)*(p-1) Khibiết đợc f(n) thì H sẽ tính đợc a theo thuật toán Euclidean mở rộng.Khi biết athì toàn hệ thống sẽ bị phá vỡ ngay lập tức
Vì khi biết a, toàn bộ khoá K = (n, a, b) đều đợc biết và H đọc ngay đợcbản rõ Ngoài ra, H có thể lập mã trên văn bản khác để gửi tiếp đến N Mà tabiết việc H đọc đợc bản rõ hay lập mã trên văn bản khác là cực kì nguy hiểm.Nhất là những thông tin liên quan đến an ninh quốc gia, quân đội, ngân hàng
20
Trang 212.5 Hệ mật mã DES (Data Encryption Standard)
2.5.1 Giới thiệu về DES:
Hệ mã hoá DES đợc xây dựng vào những năm đầu những thập kỷ 70,
Uỷ ban tiêu chuẩn quốc gia Mỹ đã công bố một khuyến nghị cho các hệ mậtmã trong hồ sơ quản lý liên bang Điều này cuối cùng đã dẫn tới sự phát triểncủa Chuẩn mã dữ liệu (DES: Data Encryption Standard) và nó trở thành một
hệ chuẩn mã sử dụng rộng rãi nhất trên thế giới DES đợc IBM phát triển vàxem nh là một cải biến của hệ mật LUCIPHER DES và đợc công bố lần đầutiên vào ngày 17/03/1975 Sau nhiều cuộc tranh luận công khai cuối cùng DES
đợc công nhận nh một chuẩn liên bang vào ngày 23/11/1976 và đợc công bốvào ngày 15/01/1977 Vào năm 1980, “Cách dùng DES ” đợc công bố Từ đó
cứ chu kỳ 5 năm DES đợc xem xét lại một lần bởi Uỷ ban tiêu chuẩn quốc gia
Mỹ và lần gần đây nhất là năm 1994
2.5.2 Mô tả thuật toán DES:
Thuật toán DES sử dụng một khoá K có độ dài là 56 bit để mã hoá bản
rõ x độ dài 64 bit thành bản mã y cũng có độ dài là 64 bit Quy trình của thuật
toán đợc thực hiện qua 3 bớc nh sau:
Bớc 1:Với bản rõ cho trớc x, một xâu bit x0 sẽ đợc xây dựng bằng cáchhoán vị các bit của x theo phép hoán vị cố định ban đầu IP
Đặt x 0 = IP(x) = L0R0 với L0 = 32 bit đầu tiên và R0 là 32 bit cuối
Bớc 2: Tiếp theo thực hiện 16 vòng mã hoá với những phép toán giốngnhau, ở đây dữ liệu đợc kết hợp với khoá thông qua hàm f xác định Ta sẽ tính
LiRi, với 1 ≤ i ≤ 16 theo qui tắc:
Trang 232.5.3 Các hàm của DES:
2.5.3.1 Hàm f:
Hàm f có hai biến vào: biến thứ nhất R là một xâu bit độ dài 32, biếnthứ hai K là một xâu bit độ dài 48 Đầu ra của f là một xâu độ dài 32 Các bớcthực hiện của f nh sau:
1 Mở rộng xâu bit R độ dài 32 bit thành một xâu bit có độ dài 48 bittheo hàm mở rộng cố định E: R -> E(R) , E(R) gồm 32 bit của cũ R với 16của R xuất hiện 2 lần
2 Tính E(R) K và viết kết quả thành một chuỗi 8 xâu, một xâu có
độ dài 6 bit (8*6 = 48): B = B1 B2 B3 B4 B5 B6 B7 B8
3 Dùng 8 bảng S1,S2,… ,S ,S8 Mỗi Si là một bảng cố định 416 có cácphần tử là các số nguyên từ 0 -> 15 với mỗi xâu bít có độ dài 6
(kí hiệu Bj = b1 b2 b3 b4 b5 b6), ta tính Sj(Bj) nh sau:
- hai bit b1b6 xác định biểu diển nhị phân của hàng r trong Sj (0 Ê r Ê3 )
- bốn bit b2 b3 b4 b5 xác định biểu diển nhị phân của cột trong Sj (0 Ê c Ê
Trang 25* B¶ng ho¸n vÞ ban ®Çu IP :
B¶ng nµy cã nghÜa lµ bit 58 cña xlµ bit ®Çu tiªn cña IP, bit 50 cña x lµ bit thø 2 cña IP … ,S
Trang 26*Các hộp S.
Tiêu chuẩn chọn các hộp S nh sau:
Mỗi hàng của hộp S phải là một hoán vị của 0, 1, … ,S,15
Không một hộp S nào là một hàm tuyến tính hay apphin của các
đầu vào của nó
Thay đổi một bit vào ở một hộp S gây ra sự thay đổi ít nhất haibit ra của nó
Nếu hai xâu vào của một hộp S giống nhau ở hai bit đầu và haibit cuối thì hai xâu ra phải khác nhau ít nhất ở hai bit
Nếu hai xâu vào của một hộp S khác nhau ở hai bit đầu và giốngnhau ở hai bit cuối thì hai xâu ra phải khác nhau
Với mỗi hộp S, nếu ta cố định một bit vào xét giá trị của một bit
ra nào đó, thì số các xâu vào tạo ra giá trị 0 ở bit ra đó cũng phải xấp xỉ bằng
số các xâu vào tạo ra giá trị 1 ở bit ra đó
Trang 282.5.3.2 Tính toán bảng khoá:
Ta cần tính toán bảng khoá từ khoá K Trên thực tế K là một xâu bit dài
64, trong đó 56 bit là khoá và 8 bit để kiểm tra tính chẵn lẻ nhằm phát hiệnsai Các bit kiểm tra tính chẵn lẻ nằm ở các vị trí 8, 16, 24, … ,S, 56, 64 đợc xác
định sao cho mỗi byte chứa một số lẻ các số "1" Bởi vậy mỗi sai sót đơn lẻ
đ-ợc xác định trong mỗi nhóm 8 bit Các bit này không tham gia vào quá trìnhtính toán Các bớc để tính toán khoá đợc mô tả theo các bớc sau :
Với một khoá K có độ dài 64 bit cho trớc, ta loại bỏ các bit kiểm tratính chẵn lẻ và hoán vị các bit còn lại của K theo phép hoán vị PC-1
LSi là phép chuyển dịch vòng sang trái, chuyển dịch một vị trí nếu i = 1, 2, 9,
16 và chuyển dịch hai vị trí với những giá trị còn lại
Với mỗi 1 ≤ i ≤ 16, Ki đợc tính bởi phép hoán vị PC-2 từ CiDi
Trang 30Các hoán vị PC-1 và PC-2 đợc dùng trong bảng khoá
Trang 312.5.4 Cách dùng DES.
Trong báo cáo này thì DES đợc sử dụng theo cách thông thờng là tachia bản rõ (là dãy bit) thành từng khối x1,x2,… ,S Và dùng khoá K đễ mã cáckhối đó, đợc bản mã y1,y2,… ,S với yi=eK(xi)
2.5.5 Tính bảo mật và độ phức tạp của DES.
Khi DES đợc đề xuất nh một chuẩn mật mã, đã có rất nhiều ý kiến phêphán Một lý do phản đối DES có liên quan đến các hộp S Tuy nhiên ngời takhông đa đợc tiêu chuẩn đầy đủ để xây dựng S Một số ngời gợi ý là các hộp Snên chứa đựng các thành phần phi tuyến và chứa các “cửa sập” đợc giấu kín.Trong cấu trúc thực hiện của thuật toán DES, ở mỗi vòng lặp đều thực hiệnxen kẽ liên tiếp nhau các phép chuyển dịch và thay thế, điều đó nói chung cótác dụng tăng thêm tính bảo mật của S
Bí mật của thuật toán nằm ở việc chọn khoá - là một xâu 56 bit Trongcác phơng pháp thám mã thì không tránh đợc độ phức tạp của cách tầm thờng
là duyệt toàn bộ Nhng số lợng khoá để duyệt toàn bộ là 256 một con số khôngphải là nhỏ
2.5.6 DES trong thực tế.
Trong thực tế DES chỉ mã hoá một xâu 64 bit và kết quả của nó cho xâu
64 bit mã hoá Thế còn toàn bộ văn bản thì sao? Điều này thật đơn giản,chúng ta chỉ việc chia văn bản thành các xâu 64 bit và mã hoá từng xâu
đó.Khi chúng ta nhận đợc đầy đủ các xâu mã hoá 64 bit có nghĩa là chúng tathu đợc một văn bản ban đầu
Mặc dù việc mô tả DES khá dài dòng song ngời ta vẫn có thể thực hiệnDES rất hữu hiệu bằng cả phần cứng lẫn phần mềm Các phép tính số học duynhất cần đợc thực hiện là phép hoặc loại trừ các xâu bit Hàm mở rộng E, cáchộp S, các hoán vị IP và P, và việc tính toán K1,… ,S,K16 đều có thể thực hiệncùng lúc bằng cách tra bảng(trong phần mềm) hoặc bằng cách nối cứng chúngthành một mạch
Các ứng dụng phần cứng hiện thời có thể đạt đợc tốc độ mã hoá cựcnhanh Công ty Digital Equiment đã thông báo tại hội nghị CRYPTO’92 rằng
họ đã có chế tạo một chip có 50 nghìn tranzistor có thể mã hoá với tốc độ 1Gbit/s bằng cách dùng nhịp có tốc độ 250MHz
Trang 32Phép giải mã đợc thể hiện nhờ dùng cùng thuật toán nh phép mã nếu
đầu vào là y nhng dùng bảng khoá theo thứ tự ngợc lại K16,… ,S K1 Đầu ra củathuật toán sẽ là x
32
Trang 333.Vấn đề ký điện tử.
3.1 Đặt vấn đề.
Trong các sơ đồ chữ ký điện tử, việc kiểm thử tính đúng đắn của chữ ký
là đo ngời nhận thực hiện, nhằm tránh việc nhân bản chữ ký để sử dụng nhiềulần, tốt nhất là ngời gửi tham gia trực tiếp vào việc kiểm thử chữ ký Điều đó
đợc thực hiện bằng một giao thức kiểm thử dới dạng một giao thức mời hỏi vàtrả lời
Giả sử văn bản cần ký là B gửi tới A, khi sự cộng tác của B là một đòihỏi cùng kiểm thử chữ ký thì một văn bản khác đẩy ra và làm soa để ngăn cản
B chối bỏ một chữ ký mà anh ta đã ký bằng cách tuyên bố chữ ký đó là giảmạo? Để thực hiện đợc việc đó cần có thêm một giao thức chối bỏ, giao thức
đó B có thể chứng minh một chữ ký là giả mạo Nếu B từ chối tham gia vàogiao thức đó thì có thể xem rằng B không chứng minh đợc chữ ký là giả mạo
Một sơ đồ chữ ký gồm 3 phần: một thuật toán ký, một giao thức kiểmthử và một giao thức chối bỏ
3.2 Khái niệm ký điện tử.
5 V là tập các thuật toán kiểm thử
6 Với mỗi KẻK, có một thuật toán ký sigkẻ S, sigk:P A, và một thuậttoán kiểm thử verkẻV, verk:P A{đúng, sai},thoả mãn điều kiện sau đâyvới mọi xẻP, yẻA:
Trang 347 K là một tập hữu hạn các chữ ký có thể.
Verk(x,y) = đúng, nếu y = sigk(x),
sai, nếu y ạ sigk(x)
Ta hình dung một quá trình ký, nhận và kiểm thử nh sau:
- Ngời gửi G chuyển văn bản trên mạng cho ngời nhận N Khi đợc N sẽkiểm thử xem chữ ký đó là đúng hay sai để hồi đáp lại cho G Kẻ tấn công H
có thể đột nhập vào quá trình truyền thông tin từ G đến N, lấy cắp văn bản, giảmạo chữ ký sau đó mới gửi đến N
Liệu H có thể giả mạo không? Điều này là hoàn toàn có thể khi cácthuật toán verk và sigk làcác thuật toán đa thức, tập văn bản và tập chữ ký đều
là hữu hạn, thì H sẽ thử mọi trờng hợp có thể để đạt đợc điều kiện kiểm thử
đúng
Cụ thể là để chuyển đi văn bản x, G ký y = sigk sao cho verk(x,y) = true.Khi trộm đợc x, H kiểm tra với mọi y có thể trên x cho đến khi verk(x,y) =true
Hiện nay có nhiều loại sơ đồ chữ ký, RSA là một trong những sơ đồ chữ
Trang 353.3 Chữ ký RSA.
Thuật toán ký phải dựa vào hệ mã hoá bởi vì các thông tin cần đợc kýchắc là các thông tin phải đợc giữ bí mật hoặc là phải tránh bị tấn công, do đóbản ký và cả chữ ký đều cần đợc bảo mật Trên cơ sở một số hệ mật mã, ngời
ta đã xây dựng nên các sơ đồ chữ ký tơng ứng Sơ đồ chữ ký RSA đợc xâydựng dựa trên hệ mã RSA
- kiểm thử chữ ký verk(x,y) = true
nếu thoả mãn điều kiện x º y b mob n