Chương 4 : Các Phương pháp bảo mật trong mạng cảm biến không dây
4.5 Mã hóa bất đối xứng ECC dành cho mạng cảm biến
Mã hóa ECC có thể giải quyết những vấn đề về tốc độ và năng lực xử lý mà mã hóa RSA đang gặp phải nhờ sử dụng key có độ dài ngắn hơn nhưng vẫn cung cấp mức độ bảo mật tương đương. Điều này làm giảm gánh nặng xử lý khi phải mã hóa một lượng lớn dữ liệu.
Trang 30
4.5.1 Cơ sở lý thuyết của thuật tốn ECC:
Trong mã hóa ECC, phép toán được sử dụng là phép cộng. Phép nhân là phép cộng được lặp lại nhiều lần.
a x k = ( a + a + … + a ) (k lần) (4. 1)
Tập hợp các điểm thuộc Elliptic Curve có Phương trình như sau: y2 = x3 + ax + b (4a3 + 27b2 ) (4. 2)
Phép công đại số của 2 điểm thuộc tập hợp của Elliptic Curve thực hiện như sau:
P(xP, yP) và Q(xQ, yQ) là 2 điểm khác nhau: R = P + Q thì R (xR, yR) có giá trị như sau với
R = P + P = 2P thì R(xR, yR) được tính như sau:
Trang 31
Elliptic Curve trong miền Zp
Đối với prime curve trong miền Zp, chúng ta dùng một phương trình bậc 3 để diễn tả tất cả các giá trị từ 0 tới p – 1 và các phép toán được thực bằng phép module p.
y2 mod p = (x3 + ax + b) mod p (4. 3)
Ep(a, b) được định nghĩa là tập hợp tất cả các điểm (x, y) thỏa mãn phương trình trên.
4.5.2 Mơ hình hoạt động của mã hóa ECC
Ứng dụng thuật toán ECC vào Diffie-Hellman Key Exchange Chọn những thông số Global:
o Chọn một tập hợp Elliptic Curve biểu diễn bằng Ep(a,b) với a,b và p là các tham số của phương trình y2 mod p = (x3 + ax + b) mod p. Với p là một số nguyên tố.
o Tìm G là một điểm có bâc n sao cho n là một số rất lớn. ( Bậc n là số n nhỏ nhất sao cho n*G = 0)
Tạo Private Key và Public Key cho người dùng A
Chọn một số nA ngẫu nhiên làm private key, nA < n
Tính Public key PA: PA = nA * G (4. 4) Tạo Private Key và Public Key cho người dùng B
Chọn một số nB ngẫu nhiên làm private key, nB < n
Tính Public key PB: PB = nB * G (4. 5)
Tính Share Secret Key của Người dùng A và Người dùng B
Người dùng A: K = nA * PB (4. 6)
Trang 32
Để tìm được Share Secret Key của mã hóa trên, người tấn cơng cần phải tính được private key của người dùng A hoặc người dùng B khi đã biết được điểm G, Public Key của người dùng A và B. Việc này rất khó bởi vì mặc dù ta có thể dễ dàng tính được PB = nB * G nhưng khơng có phép tốn ngược lại để tính nB.
Ứng dụng thuật tốn ECC vào mã hóa và giải mã
Tương tự với cơ chế Key Exchange, mã hóa ECC cũng cần tìm một điểm G và một tập hợp điểm của một Elliptic Group Ep(a, b).
Mã hóa: Mỗi người dùng chọn một private key nA với nA < n. n là bậc của
điểm G thuộc Ep(a, b).
Thơng điệp cần mã hóa là Pm cần được gửi tới người dùng B có public key là PB. A chọn một số k ngẫu nhiên để tạo ra chuỗi mã hóa Cm có cấu trúc như sau:
Cm = {k*G, Pm + k*PB}(4. 8)
Giải mã: Để giải mã thông điệp Cm, người dùng B dùng private key của
mình để khơi phục lại Pm với biểu thức như sau:
Pm + k*PB – nB*(k*G) = Pm + k*(nB*G) - nB*(k*G) = Pm (4. 9)
Số k được tạo ngẫu nhiên được giữ bí mật bởi người dùng A. Kẻ tấn công muốn khôi phục lại thông điệp Pm cần phải tìm được k khi đã biết k*G và G, điều này rất khó để thực hiện.
So sánh mã hóa ECC và RSA về mức độ tin cậy dựa theo độ dài key:
Bảng dưới đây so sánh các thuật tốn mã hóa với các độ dài key khác nhau dưới góc độ chống lại các kiểu tấn công. Mã hóa ECC sử dụng key có độ dài ngắn hơn so với mã hóa RSA nhưng vẫn có độ tin cậy tương đương.
Trang 33
Bảng 2 - So sánh mức độ tin cậy dựa vào độ dài key của Mã hóa đối xứng-ECC-RSA [2]