Mã hóa đồng cấu Homomorphic Encryption

4 1.5K 20
Mã hóa đồng cấu Homomorphic Encryption

Đang tải... (xem toàn văn)

Thông tin tài liệu

Mã hóa đồng cấu Homomorphic Encryption Khái niệm mã hóa đồng cấu Cho P là tập bản rõ, tạo thành với phép tính Còn C là tập bản mã tạo thành nhóm với phép tính Ek( m ) là hàm mã hóa bản rõ theo tham số ngẫu nhiên k Hệ mã hóa được gọi có tính chất ( , ) – đồng cấu nếu Ek1( m1 ) Ek2( m2 ) = Ek( m1 m2) Trong đó m1, m2 là hai bản rõ k1, k2 là 2 tham số ngẫu nhiên

Mã hóa đồng cấu Homomorphic Encryption 1. Khái niệm mã hóa đồng cấu Cho P là tập bản rõ, tạo thành với phép tính Còn C là tập bản mã tạo thành nhóm với phép tính E k ( m ) là hàm mã hóa bản rõ theo tham số ngẫu nhiên k Hệ mã hóa được gọi có tính chất ( , ) – đồng cấu nếu E k1 ( m1 ) E k2 ( m2 ) = E k ( m1 m2) Trong đó m1, m2 là hai bản rõ k1, k2 là 2 tham số ngẫu nhiên 2. Phương pháp mã hóa đồng cấu Hệ mã hóa Elgamal có tính chất đồng cấu nên ta có thể sử dụng hệ mã hóa này để thực hiện mã hóa.  Hệ mã Elgamal Chọn số nguyên tố lớn p sao cho bài toán logarit rời rạc trong Z p là khó giải, g là phần tử sinh ra trong Z p * . Chọn tập bản rõ p = Z p , chọn tập bản mã C = { ( a,b ) / a,b Z p } Chọn khóa bí mật a Z p * , khóa công khai h = g a Để mã hóa m, ta chọn số ngẫu nhiên bí mật k, bản mã (x,y) = E k ( m ) = ( g k , h k m ) Tài liệu được giải mã là m = y / x a .  Tại sao hệ mã hóa Elgamal có tính chất đồng cấu Vì với k = k 1 + k 2 , ta có E k1 ( m ) = ( g k1 , h k1 m 1 ) E k2 ( m ) = ( g k2 , h k2 m 2 ) Thỏa mãn công thức đồng cấu E k1 ( m ) * E k2 ( m ) = ( g k1 g k2 , h k1 h k2 m 1 m 2 ) = ( g k1 + k2 , h k1 + k2 m 1 m 2 ) = ( g k , h k m 1 m 2 ) = E k ( m 1 m 2 ) 3. Ứng dụng mã hóa đồng cấu cho loại bỏ phiếu có, không Bài toán : Cần lấy ý kiến về một vấn đề nào đó, cử tri ghi vào lá phiếu: đồng ý hay không đồng ý Nội dung lá phiếu được mã hóa và gửi về ban kiểm phiếu. Vấn đề là ban kiểm phiếu tính kết quả bỏ phiếu như thế nào, trong khi không biết nội dung từng lá phiếu?( vì chúng đã được mã hóa ) Giải quyết vấn đề Bước 1: Cử tri ghi ý kiến vào lá phiếu Giả sử có 4 cử tri tham gia bỏ phiếu là V1, V2, V 3, V4. Lá phiếu tương ứng của họ ghi:v1 = 0 (không đồng ý), v2 = 1(đồng ý), v3 = 1,v4 = 0. Chọn phần tử sinh g =3,hệ mã hoá Elgamal được sử dụng ở đây với các khoá như sau: Khóa bí mật a = 2, khóa công khai h = g a = 3 2 = 9. Mỗi cử tri V i , chọn khóa ngẫu nhiên bí mật k đề mã hóa lá phiếu m của mình thành (x, y) = (g k , h k m ). Bước 2: Cử chi mã hóa lá phiếu V 1 mã hóa lá phiếu của mình như sau và gửi tới ban kiểm phiếu: V 1 chọn ngẫu nhiên k 1 = 5, mã hóa v 1 = 0 thành ( x 1 ,y 1 ) = ( 3 5 , 9 5 * 3 0 ) = ( 3 5 , 9 5 ) V 2 mã hóa lá phiếu của mình như sau và gửi tới ban kiểm phiếu: V 2 chọn ngẫu nhiên k 2 = 3, mã hóa v 2 = 1 thành ( x 2 ,y 2 ) = ( 3 3 , 9 3 * 3 1 ) = ( 3 5 , 9 5 *3 ) V 3 mã hóa lá phiếu của mình như sau và gửi tới ban kiểm phiếu: V 3 chọn ngẫu nhiên k 3 = 3, mã hóa v 3 = 1 thành ( x 3 ,y 3 ) = ( 3 3 , 9 3 * 3 1 ) = ( 3 5 , 9 5 *3 ) V 4 mã hóa lá phiếu của mình như sau và gửi tới ban kiểm phiếu: V 4 chọn ngẫu nhiên k 4 = 7, mã hóa v 4 = 0 thành ( x 4 ,y 4 ) = ( 3 7 , 9 7 * 3 0 ) = ( 3 7 , 9 7 ) Bước 3 : Ban kiểm phiếu kiểm tra kết quả Ban kiểm phiếu không cần giải mã từng lá phiếu vẫn có thể tính được kết quả bỏ phiếu bằng cách tính nhân các lá phiếu đã được mã hóa. ( x 1 , y 1 )*( x 2, y 2 ) = ( x 1 x 2 , y 1 y 2 ) = ( g k1+k2 h k1+k2 , g v1+v2 ). Theo tính chất đồng cấu thì phép nhân trên chính là kết quả bỏ phiếu. Cụ thể tích của 4 giá trị lá phiếu đã được mã hóa là: ( X, Y ) = ( I x i , I y i ) = ( g k1+k2+k3+k4 , h k1+k2+k3+k4 g v1+v2+v3+v4 ) = ( 3 18 , 9 18 * 3 2 ) Giải mã ( X, Y ) bằng cách tính m = g v = Y/X a = 9 18 *3 2 / (3 18 ) 2 = 3 2 Như vậy số phiếu đồng ý là 2 4. Ưu điểm của Mã hóa đồng cấu trong việc bỏ phiếu có không - Có thể kiểm phiếu dể tính được ai là người có số phiếu cao nhất mà không phải giải mã từng lá phiếu của từng người

Ngày đăng: 20/10/2014, 00:31

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan