Chƣơng 3 .XÁC THỰC VÀ BẢO MẬT VỚI THẺ THễNG MINH
3.1 CÁC THUẬT TOÁN MÃ HOÁ
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à (n) = (p-1)(q-1). Đặt P = C = Zn . Chọn b nguyờn tố với (n).
Tập khoỏ: K = {(n, a, b): a*b 1 mod (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 (n), (n) = (p -1)(q - 1) = (p) (q) nờn ab = 1 + t(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 nx 1 + t(n) mod n x {x(n) mod n} mod n. x .1 mod n (vỡ (x, n) = 1, nờn x (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.
Do đú: u = p (pab – 1 - kp) = p (pt(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) .