Chỳng ta cú thế nhận thấy kết quả bằng với khối bản mó cuối cựng nhận được từ mó hoỏ CBC. Điều đú cú nghĩa là khi thực hiện mó hoỏ DES dạng CBC, MAC cú thể nhận được bằng cỏch mó hoỏ cỏc dữ liệu liờn quan và ta lấy kết quả là khối 64 bit cuối cựng của bản mó.
3.1.1.2 Thuật toỏn mó húa AES
Tiờu chuẩn mó hoỏ tiờn tiến ( Advanced Encryption Standard - AES ) là sự kế thừa của hệ mó hoỏ DES. Rất nhiều thuật toỏn đó được đưa ra như là chuẩn mới và qua quỏ trỡnh lựa chọn rộng rói. Trong năm thuật toỏn lọt vào vũng cuối cựng, NIST chọn thuật toỏn Rijndael được thiết kế bởi Joan Daemen và Vincent Rijmen.
Rijndael là thuật toỏn mó hoỏ khối với độ dài khối thay đổi và khoỏ cú độ dài 128, 192 hoặc 256 bit để mó hoỏ khối với độ dài 128, 192 hoặc 256 bit. Tất cả chớn sự kết hợp độ dài khoỏ với độ dài khối cú thểđược thực hiện trong Rijndael và nú cú thể mở rộng cảđộ dài khoỏ và độ dài khối tới bội số của 32 bit.
Lựa chọn những tuỳ chọn trờn, AES cho phộp kớch thước khối 128 bit và độ dài khoỏ 128, 192 hoặc 256 bit, cỏc tuỳ chọn khỏc khụng được chấp nhận trong chuẩn. Thuật toỏn AES cú thể thực hiện một cỏch hiệu quả bởi phần mềm cũng như phần cứng.
3.1.2 Mó hoỏ khoỏ cụng khai
í tưởng cơ bản dẫn đến mó hoỏ khoỏ cụng khai là cặp khoỏ, một cho mó hoỏ và một cho giải mó, đồng thời khú thể tớnh được một khoỏ nếu biết khoỏ kia. Khỏi niệm
này được phỏt minh đồng thời bởi Whitfield Diffie và Martin Hellman và độc lập bởi Ralph Merkle.
Rất nhiều thuật toỏn đó được đưa ra nhưng hầu hết khụng an toàn hoặc khụng khả thi. Cỏc thuật toỏn mó hoỏ khoỏ cụng khai rất chậm so với thuật toỏn mó hoỏ khoỏ bớ mật. Thuật toỏn RSA chậm hơn 1000 lần so với DES khi thực hiện bởi phần cứng và 100 lần khi thực hiện bằng phần mềm.
Tuy vậy thuật toỏn mó hoỏ khoỏ cụng khai cú ưu điểm rất lớn khi được dựng để đảm bảo tớnh riờng tư của kết nối. Thuật toỏn khoỏ cụng khai dựng cỏc khoỏ khỏc nhau cho việc mó hoỏ và giải mó. Khoỏ bớ mật chỉđược người sở hữu biết và giữ bớ mật. Nú cú thể dựng để tạo chữ ký điện tử và giải mó thụng tin đó được mó hoỏ bởi khoỏ cụng khai. Khoỏ cụng khai dựng để kiểm tra chữ ký điện tử hoặc để mó hoỏ thụng tin. Khụng cần phải giữ bớ mật khoỏ cụng khai, vỡ khú cú thể tớnh được khoỏ bớ mật nếu biết khoỏ cụng khai.
3.1.2.1 Hệ mó hoỏ RSA
Sơ đồ
Cho n = p*q, trong đú p, q là hai số nguyờn tố lớn và F(n) = (p-1)(q-1). Đặt P = C = Zn . Chọn b nguyờn tố với F(n).
Tập khoỏ: K = {(n, a, b): a*b º1 mod F(n)}.
Với mỗi k = (n , a, b), mỗi x ẻ P, y ẻ C, định nghĩa: Hàm mó hoỏ : ek (x) = xb mod n Hàm giải mó : dk(y) = ya mod n Cỏc giỏ trị n, b là cụng khai. Cũn p, q, a là bớ mật. Kiểm tra quy tắc giải mó Do ab º1mod F(n), F(n) = (p -1)(q - 1) = F(p) F(q) nờn ab = 1 + tF(n), với t là số nguyờn khỏc 0. Chỳ ý rằng 0 Êx < n. Giả sử (n, x) = 1 ta cú.
yamod n º (xb)a mod nºx 1 + tF(n) mod n ºx {xF(n) mod n} mod n. º x .1 mod n (vỡ (x, n) = 1, nờn xF(n) mod n =1) = x (d x < n). Nếu (x, n) = d > 1 thỡ d = p hoặc d =q hoặc d = n.
Nếu d = n thỡ x = 0 và đương nhiờn y = 0. Do đú ya mod n = 0 = x. Giả sử d = p khi đú do 0 Êx < n nờn x = p.
Ta cú: ya mod n º xab mod n º pab mod n. Ký hiệu: u = pab mod n.
Thế thỡ: u + kn = pa, 0 Ê u < n, hay u + kpq = pab. Do đú: u = p (pab – 1 - kp) = p (ptF(n) - kp).
Vế phải chia hết cho p nờn vế trỏi phải chia hết cho p, nghĩa là u phải chia hết cho p. Nhưng 0 Êu <n nờn hoặc u = 0 hoặc u = p.
Nếu u = 0 thỡ pab – 1 chia hết cho p. Suy ra p chia hết cho q. Vụ lý vỡ p, q là hai số nguyờn tố khỏc nhau.
Thế thỡ u = p = x tức là ya mod n = x. Vậy (xb)a mod n = x, "x ẻ {1, n - 1}.
3.1.2.2 Mó hoỏ đường cong Elliptic
Đường cong Elliptic được đề nghị lần đầu tiờn cho cỏc hệ mó húa khoỏ cụng khai vào năm 1985. Cỏc thuật toỏn dựng đường cong Elliptic nhanh hơn RSA hoặc DSA và yờu cầu kớch thước khoỏ nhỏ hơn với cựng mức độ yờu cầu bảo mật. Đường cong Elliptic trờn trường xỏc định GF (2n) đặc biệt thỳ vị bởi vỡ chỳng cho phộp thực hiện hiệu quả.
Ưu điểm của đường cong Elliptic làm cho chỳng là ứng cử viờn tiềm năng để ỏp dụng cho thẻ thụng minh. Bởi vỡ việc tớnh toỏn cú thể được thực hiện trờn thẻ mà khụng cần bộđồng xử lý mó hoỏ, kớch thước khoỏ nhỏ, tiết kiệm khụng gian lưu trữ.
Tuy nhiờn hệ mó hoỏ này chỉ được một số ớt thẻ thụng minh hỗ trợ. Hầu hết cỏc sản phẩm thương mại điện tử trờn thị trường như Web Server, Certificate Authorities, middle – ware, cỏc thư viện mó hoỏ , SSL… đó hỗ trợ RSA và DSA, nờn thẻ thụng minh phải hỗ trợ cỏc thuật toỏn này để cú thể sử dụng trờn cơ sở hạ tầng khoỏ cụng khai đang tồn tại.
Để hỗ trợ RSA và DSA trong thẻ thụng minh yờu cầu bộ đồng xử lý mó hoỏ và bộ nhớ cốđịnh ớt nhất là 8 Kbytes.
Thuật toỏn mó húa và giải mó như sau:
Đ Mó húa bất kỳ thụng tin M nào dựa trờn một điểm của đường cong elliptic Pm. Đ Chọn đường cong phự hợp và điểm G trờn đường E(Fp) .
Đ Mỗi người chọn một khúa riờng Private Key nA <n. Đ Sinh ra khúa cụng khai Public Key PA = nA x G. Đ Mó húa Pm: Cm = {kG, Pm+kPB}, với k là ngẫu nhiờn.
Đ Giải mó Cm: Pm + kPB – nB(kG) = Pm + k(nBG) – nB(kG) = Pm.
3.2 GIAO THỨC XÁC THỰC VÀ BẢO MẬT VỚI THẺ THễNG MINH 3.2.1 Giao thức xỏc thực với thẻ thụng minh 3.2.1 Giao thức xỏc thực với thẻ thụng minh
Trong phần này ta xem xột cỏc giao thức để thiết lập sự tin tưởng giữa cỏc thực thể tham gia - sử dụng thẻ thụng minh. Đú là cỏc giao thức xỏc thực, trong đú thực thể ngoài luụn là ”chủ”, thẻ thụng minh luụn là ”tớ”.
a. Thẻ thụng minh xỏc thực thực thể ngoài
Thẻ thụng minh (thẻ TM) đi kiểm tra thực thể ngoài (TTN). Thẻ thụng minh và TTN xõy dựng giao thức yờu cầu - đỏp ứng (challenge - response) như sau:
TTN Thẻ TM
Yêu cầu thẻ TM gửi số ngẫu nhiên r
Thông báo kết quả kiểm tra
Tạo và ghi lại số ngẫu nhiên r
Mã hoá r thành bản mã
e (r)
Gửi bản mã (e (r))
Giải mã và kiểm tra d (e (r)) = r ? ext k_ ext k_ ext k_ card k_
Gửi số ngẫu nhiên r