Tải bản đầy đủ (.ppt) (10 trang)

Báo Cáo môn Mã Hóa và an toàn dữ liệu Mã hóa đồng cấu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (537.44 KB, 10 trang )

Giảng viên: PGS TS Trịnh Nhật Tiến
HV: Nguyễn Văn Duy
- Giới thiệu mã hóa đồng cấu
- Phương pháp mã hóa đồng cấu ứng dụng trong hệ
mã Elgamal
- Ứng dụng mã hóa đồng cấu trong loại bỏ phiếu “
có, không”
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 ( X )
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 ( + , x ) – đồng cấu nếu
E
k1
( m1 ) + E
k2
( m2 ) = E
k
( m1 x m2)
Trong đó m1, m2 là hai bản rõ k1, k2 là 2 tham số ngẫu nhiên
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ính chất đồng cấu
E
k1
( m1 ) + E
k2
( m2 ) = E
k
( m1 x m2)
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
)
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?
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 ).
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
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
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
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
)
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
( 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

×