Một số hệ mật liên quan đến bài toán logarit rời rạc

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu xây dựng hệ mật POHLIG HELLMAN trên vành đa thức (Trang 47 - 53)

2.3. BÀI TOÁN LOGARIT RỜI RẠC TRÊN TRƯỜNG SỐ

2.3.2. Một số hệ mật liên quan đến bài toán logarit rời rạc

a)Trao đổi và thỏa thuận khóa Diffie-Hellman

Giả sử A và B muốn liên lạc bằng hệ mật khoá bí mật. Để thoả thuận một khoá 𝐾 chung cho cả hai bên qua một kênh không an toàn mà không ai khác có thể biết được, A và B có thể dùng thủ tục thoả thuận khoá Diffie -Hellman sau:

A, B chọn một số nguyên tố 𝑝 thích hợp và một phần tử nguyên thủy 𝑔 ∈ 𝑍𝑝∗. Cặp số (𝑝, 𝑔) tạo thành khóa công khai.

Quá trình trao đổi khóa được thực hiện như sau:

Bên A Bên B

+ A chọn một số nguyên 𝑥 bí mật thỏa mãn 1 < 𝑥 < 𝑝 − 1 và tính:

𝑔𝑥𝑚𝑜𝑑 𝑝 Gửi cho 𝐵→ Sau đó A gửi giá trị này cho B.

+ B chọn một số nguyên 𝑦 bí mật thỏa mãn 1 < 𝑦 < 𝑝 − 1 và tính:

Gửi cho 𝐴

← 𝑔𝑦 𝑚𝑜𝑑 𝑝 Sau đó B gửi giá trị này cho A.

39 + A nhận 𝑔𝑦 𝑚𝑜𝑑 𝑝 và tính ra khóa dùng chung: 𝐾 = (𝑔𝑦)𝑥𝑚𝑜𝑑 𝑝 = 𝑔𝑥𝑦 + B nhận 𝑔𝑥𝑚𝑜𝑑 𝑝 và tính ra khóa dùng chung: 𝐾 = (𝑔𝑥)𝑦𝑚𝑜𝑑 𝑝 = 𝑔𝑥𝑦 Ví dụ 1.4: Giả sử A và B chọn 𝑝 = 19 và 𝑔 = 2. A B + A chọn một số nguyên 𝑥 = 3 và tính: 23𝑚𝑜𝑑 19 = 8, sau đó A gửi 8 cho B

+ B chọn một số nguyên 𝑦 = 5 và tính: 25𝑚𝑜𝑑 19 = 13, B gửi 13 cho A. + A nhận 13 và tính khóa dùng chung: 3 13 mod19 12 K  + B nhận 8 và tính ra khóa dùng chung: 5 8 mod19 12 K  Nhận xét:

+ Thám mã biết (𝑔, 𝑝) nhưng không biết 𝑥, 𝑦, nếu muốn biết khóa dùng chung 𝐾 = 𝑔𝑥𝑦𝑚𝑜𝑑 𝑝 thì thám mã phải giải bài toán logarit để tìm 𝑥 và 𝑦.

+ Tuy nhiên việc thỏa thuận theo phương thức này sẽ chịu phép tấn công "kẻ đứng giữa" (Man in the midle). Thám mã đứng giữa sẽ giả mạo B để thỏa thuận khóa 𝐾1 dùng chung với A, đồng thời thám mã giả danh A để thỏa thuận khóa 𝐾2 dùng chung với B. Thám mã liên lạc với A bằng khóa K1, giải mã để lấy cắp thông tin của A, sau đó lại mã hóa thông tin của A bằng khóa K2 để liên lạc với B (và tương tự như thế theo chiều từ B đến A). Hai bên A và B vẫn nhận đúng thông tin tưởng là liên lạc đúng với nhau, nhưng thực tế là liên lạc với thám mã. Đây là điểm yếu của phương pháp thỏa thuận khóa kiểu này, để khắc phục người ta sử dụng các phương pháp xác thực. Hình 2.1. Phép tấn công kẻ đứng giữa A B ' A' B K1 K2 Thám mã

40

b)Hệ mật Omura-Massey

* Sơ đồ hệ mật Omura – Massey

Ý tưởng của hệ mật Omura – Massey được mô tả trong Hình 2.2.

Hai bên liên lạc A và B sử dụng hai khóa bí mật khác nhau là KAKB, đầu tiên bản tin M được A mã hóa bằng khóa bí mật của A là KAvà gửi bản mã cho B, tất nhiên trên đường truyền thám mã không thể có được bản tin M vì không có khóa

A

K . Bên B nhận được bản mã lại thực hiện mã hóa một lần nữa bằng khóa KBvà gửi lại bản mã mới cho A. Khi A nhận lại bản mã thì tiến hành giải mã bằng khóa KA, lúc này bản tin M chỉ được mã hóa bằng khóa KB. A gửi bản mã này cho B, bên B nhận được và tiến hành giải mã bằng khóa KBđể lấy lại bản tin M.

Hình 2.2.Lưu đồ hệ mật Omura - Massey

Hệ mật này về cơ bản rất an toàn, tuy nhiên nó có một nhược điểm là bản mã truyền giữa A và B phải được thực hiện 3 lần, tức là tốc độ mã thấp hay dung lượng thông tin cần truyền sẽ tăng lên.

41

*) Hệ mật Omura – Massey xây dựng trên bài toán logarit rời rạc

Hai bên liên lạc A và B chọn trước 𝑍𝑝, với p là số nguyên tố.

Tạo khóa: Hai bên liên lạc A và B tạo cho mình khóa bí mật như sau:

A chọn m n, ngẫu nhiên thỏa mãn mn1modp1. Khóa bí mật của A là m n, B chọn u v, ngẫu nhiên thỏa mãn uv 1modp1  Khóa bí mật của B là u v, Giả sử A cần gửi một bản tin M cho B, quá trình truyền tin bảo mật sử dụng hệ mật Omura – Massey được mô tả như bảng 2.6 sau:

Bảng 2.6.Mô tả hệ mật Omura – Massey sử dụng bài toán logarit rời rạc

𝑨(𝒎,𝒏) 𝑩(𝒖,𝒗) + A tính 𝑀𝑚𝑚𝑜𝑑 𝑝gửi cho B→ + B nhận 𝑀𝑚𝑚𝑜𝑑 𝑝 và tính: Gửi trả A ← (𝑀𝑚)𝑢𝑚𝑜𝑑 𝑝 = 𝑀𝑚𝑢 𝑚𝑜𝑑 𝑝 + A nhận 𝑀𝑚𝑢 𝑚𝑜𝑑 𝑝 và thực hiện: (𝑀𝑚𝑢)𝑛 𝑚𝑜𝑑 𝑝 = 𝑀𝑢 𝑚𝑜𝑑 𝑝 Gửi trả lại B→ + B nhận 𝑀𝑢 𝑚𝑜𝑑 𝑝 và giải mã ra bản rõ: (𝑀𝑢)𝑣 𝑚𝑜𝑑 𝑝 = 𝑀 𝑚𝑜𝑑 𝑝 Ví dụ 1.5:

Hai bên liên lạc A và B chọn 𝑝 = 19.

Tạo khóa: + A chọn ( , )m n (11,5) thỏa mãn 11 5 55 1mod18 . + B chọn ( , )u v (7,13) thỏa mãn 7 13 91 1mod18  

Giả sử A cần gửi bản tin 𝑀 = 9 cho B. Quá trình truyền tin thực hiện như sau:

𝑨(𝟏𝟏,𝟓) 𝑩(𝟕,𝟏𝟑) + A tính 911𝑚𝑜𝑑 19 = 5gửi cho B→ + B nhận 5 và tính: Gửi trả A ← 57𝑚𝑜𝑑 19 = 16 + A nhận 16 và thực hiện: 165 𝑚𝑜𝑑 19 = 4 Gửi trả lại B→ + B nhận 4 và giải mã ra bản rõ: 413 𝑚𝑜𝑑 19 = 9

42

Nhận xét:

- Để tìm bản tin M thám mã phải giải bài toán logarit rời rạc, với trường hợp 𝑝 lớn thì đây là hệ mật an toàn.

- Để truyền bản tin M thì phải thực hiện truyền 3 lần, có thể coi hệ số mở rộng bản tin là 𝐸 = 3. Vì vậy hệ mật này chỉ thích hợp khi truyền các bản tin ngắn hoặc truyền khóa, phân phối khóa cho hệ mật khóa bí mật.

c)Hệ mật ElGamal

Tạo khóa

Mỗi bên liên lạc A,B tạo cho mình một cặp khóa công khai – bí mật theo các bước sau:

Bước 1: Chọn một số nguyên tố 𝑝 lớn và 𝑔 là một phần tử nguyên thủy của 𝑍𝑝∗

Bước 2: Chọn một số nguyên 𝑎 ngẫu nhiên với 1 < 𝑎 < 𝑝 − 1 và tính 𝑔𝑎 𝑚𝑜𝑑 𝑝

Bước 3: + Khóa công khai là bộ 3 số: (𝑝, 𝑔, 𝑔𝑎) + Khóa bí mật là: 𝑎

Mã hóa

Giả sử B cần gửi bản tin 𝑀 cho A, B sẽ thực hiện các bước sau:

Bước 1: B nhận khóa công khai của A: (𝑝, 𝑔, 𝑔𝑎)

Bước 2: B chọn số nguyên k ngẫu nhiên với 1  k p 1 và tính: {𝛾 = 𝑔

𝑘𝑚𝑜𝑑 𝑝 𝛿 = 𝑀(𝑔𝑎)𝑘 𝑚𝑜𝑑 𝑝

Bước 3: B gửi bản mã C  ,  cho A.

Ta thấy bản mã C được ghép từ  và  nên nó có độ dài bit bằng 2 lần độ dài của M, đây là nhược điểm của hệ mật này.

43

Giải mã

A nhận bản mã C từ B và tiến hành giải mã theo các bước sau:

Bước 1: A sử dụng khóa bí mật 𝑎 để tính: 𝛾𝑝−1−𝑎𝑚𝑜𝑑 𝑝 = 𝑔−𝑎𝑘𝑚𝑜𝑑 𝑝. (Chú ý: 𝛾𝑝−1−𝑎 = 𝛾−𝑎) Bước 2: A khôi phục bản rõ bằng cách tính: 𝛿𝛾𝑝−1−𝑎 𝑚𝑜𝑑 𝑝 = 𝑀𝑔𝑎𝑘𝑔−𝑎𝑘𝑚𝑜𝑑 𝑝 = 𝑀 Ví dụ 1.6: Tạo khoá.

Bước 1: A chọn p17và phần tử nguyên thủy 𝑔 = 3 của 𝑍17∗ .

Bước 2: A chọn khóa bí mật 𝑎 = 6 và tính 𝑔𝑎𝑚𝑜𝑑 𝑝 = 36 𝑚𝑜𝑑 17 = 15 Bước 3: + Khóa công khai của A là bộ 3 số:(𝑝, 𝑔, 𝑔𝑎) = (17,3,15) + Khóa bí mật của A là: 𝑎 = 6

Mã hoá

Giả sử B cần gửi bản tin 𝑀 = 5 cho A.

Bước 1: B nhận khóa công khai của A: (𝑝, 𝑔, 𝑔𝑎) = (17,3,15) Bước 2: B chọn số nguyên 𝑘 = 7 và tính:

{ 𝛾 = 𝑔

𝑘𝑚𝑜𝑑 𝑝 = 37𝑚𝑜𝑑 17 = 11 𝛿 = 𝑀. (𝑔𝑎)𝑘 = 5.157 𝑚𝑜𝑑 17 = 6 Bước 3: B gửi bản mã 𝐶 = (𝛾, 𝛿) = (11,6) cho A.

Giải mã

A nhận bản mã 𝐶 = (11,6) và tiến hành giải mã. Bước 1: A sử dụng khóa bí mật 𝑎 = 6 để tính:

44

Bước 2: A khôi phục bản rõ bằng cách tính:

𝛿. 𝛾𝑝−1−𝑎 = 6.15 𝑚𝑜𝑑 17 = 5 = 𝑀

Nhận xét:

- Để tìm khóa bí mật 𝑎 (từ 𝑔𝑎) thám mã phải giải bài toán logarit rời rạc (tính a = loggga), với trường hợp p lớn thì không thể giải được, hệ mật là an toàn.

- Hiệu quả truyền tin thấp, vì hệ số mở rộng bản tin 𝐸 = 2.

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu xây dựng hệ mật POHLIG HELLMAN trên vành đa thức (Trang 47 - 53)

Tải bản đầy đủ (PDF)

(68 trang)