Hệ mã hóa khóa công khai GGH

Một phần của tài liệu Lý thuyết dàn và ứng dụng trong mật mã (Trang 25 - 28)

Alice chọn một tập các vectơ độc lập tuyến tính.

v1, v2, . . . , vn ∈Zn

trực giao với nhau. Alice có thể kiểm tra lựa chọn các vectơ của Alice bằng cách tính tỷ lệ Hadamard (chú ý 1.5.3) cơ sở và xác minh nó không phải là quá nhỏ. Các vectơ v1, ..., vn là khóa riêng của Alice. Để thuận tiện, cho V là ma trận cỡ n.n có hàng là các vectơ v1, ..., vn, và ta chọn L là dàn được tạo ra bởi các vectơ này.

Chọn một ma trận cỡ n.n là U với hệ số nguyên và det(U) =±1. U là tích của một lượng lớn ma trận đơn vị được chọn ngẫu nhiên. Tính W = UV.

Các vectơ hàng w1, ..., wn của W là một cơ sở mới của L. Nó là khóa công khai của cô. Khi Bob muốn gửi một thông điệp tới cô, ông chọn một vectơ m nhỏ là bản rõ, ví dụ, m có thể là một vectơ nhị phân . Bob cũng chọn một phân phối ngẫu nhiên vectơ r nhỏ hoạt động như một khóa không bền. Ví dụ, Bob có thể chọn các tọa độ của r ngẫu nhiên giữa −δ và δ, δ là nơi cố định tham số chung. Sau đó ông tính toán vectơ

e = mW +r =

n

X

i=1

miwi+r

là bản mã của Bob. Chú ý e không phải là một điểm dàn, nhưng nó gần đến điểm dàn mW khi r nhỏ.

Alice sử dụng thuật toán Babai được mô tả trong định lý 1.6.1, với các cơ sở tốt v1, ..., vn để tìm một vectơ trong L gần e. Khi Alice sử dụng một cơ sở tốt và r nhỏ, các vectơ dàn Alice tìm là mW. Sau đó nhân bởi W−1 để phục hồi m.

Ví dụ 1.7.1. Có thể minh họa hệ mã hóa GGH với một ví dụ 3 chiều.Cho cơ sở tốt của Alice ta lấy

v1= (- 97, 19, 19), v2 = (- 36, 30, 86), v3 = (- 184, -64, 78).

Dàn L thêm bởi v1, v2, v3 có det(L) = 859516 và tỷ lệ Hadamard của cơ sở là

H(v1, v2, v3) = (det(L)/kv1k kv2k kv3k)1/3 ≈ 0,74620.

Alice nhân cơ sở riêng với ma trận

U =    4327 −15447 23454 3297 −11770 17871 5464 −19506 29617   

ở đó det(U) = −1, để tạo cơ sở chung

w1 = (- 4179163, -1882253, 583183),

w2 = (- 3184353, -1434201, 444361),

w3 = (- 5277320, -2376852, 736426 ). Tỷ lệ Hadamard của cơ sở chung là rất nhỏ,

Bob quyết định gửi Alice bản rõ m = (86, -35, -32), sử dụng phân phối ngẫu nhiên r = (- 4, -3, 2). Bản mã tương ứng là

e= (86,−35,−32).    −4179163 −1882253 583183 −3184353 −1434201 444361 −5277320 −2376852 736426   +(−4,−3,2) = ( -79081427, -35617462, 11035471).

Alice sử dụng thuật toán Babai để giải mã.Alice viết e là kết hợp tuyến tính của các cơ sở riêng của Alice với hệ số thực,

e ≈ 81878,97v1 - 292300,00v2 + 443815,04v3.

Làm tròn hệ số đến số nguyên gần nhất và tính toán một vectơ dàn gần e v = 81879v1 - 292300v2 + 443815v3 = (- 79081423, -35617459, 11035471) Alice phục hồi m bằng cách để v là một kết hợp tuyến tính của các cơ sở chung và dừng hệ số,

v = 86w1 - 35w2 - 32w3

Giờ giả sử Eve giải mã thông điệp của Bob, nhưng cô chỉ biết cơ sở chung

w1, w2, w3. Nếu Alice áp dụng thuật toán Babai bằng cách sử dụng các cơ sở chung tìm ra

e ≈ 75,76w1 - 34,52w2 + 24,18w3. Làm tròn, Alice có được một vectơ dàn

v’ = 75w1 - 35w2 - 24w3 = (- 79508353, -35809745, 11095049)

Vectơ dàn này cho các bản rõ không chính xác (76, -35, -24), không phải là bản rõ đúng m = (86, -35, -32). Thuật toán Babai đã so sánh được các cơ sở khác nhau . Ta tìm ra

ke−vk ≈ 5,3852, ke−v0k ≈ 472000.

Hệ mã hóa GGH không an toàn trong không gian 3 chiều.

Chú ý 1.7.1. Một phiên bản khác của GGH đảo ngược vai trò của m và r nên bản mã có dạng e = rW + m. Alice tìm rW bằng cách tính vectơ dàn gần nhất với e rồi phục hồi bản rõ m = e - rW.

Ứng dụng của dàn trong mật mã

Một phần của tài liệu Lý thuyết dàn và ứng dụng trong mật mã (Trang 25 - 28)