Lôgarit rời rạc

Bách khoa toàn thư mở Wikipedia
Bước tới: menu, tìm kiếm

Lôgarit rời rạc là sự tiếp nối của phép tính lôgarit trên trường số thực vào các nhóm hữu hạn. Ta nhắc lại rằng với hai số thực x, y và cơ số a>0, a≠1,nếu ax=y thì x được gọi là lôgarit cơ số a của y, ký hiệu x= logay.

Lôgarit rời rạc có ứng dụng trong hệ mật mã khóa công khai Hệ mật mã Elgamal.

Ví dụ[sửa | sửa mã nguồn]

Cho p là một số nguyên tố. Xét nhóm nhân các số nguyên modulo p:  \mathbb Z_p^*=\{1,2,...p\} với phép nhân modulo p.

Nếu ta tính luỹ thừa bậc k của một số trong nhóm rồi rút gọn theo modulo p thì ta được một số trong nhóm đó. Quá trình này được gọi là luỹ thừa rời rạc modulo p. Chẳng hạn với p=17, lấy a=3, k=4 ta có

 3^4 = 81 \equiv 13 \pmod {17}.

Lôgarit rời rạc là phép tính ngược lại:

Biết: 3^k \equiv 13 \pmod {17} hãy tìm k.

Định nghĩa[sửa | sửa mã nguồn]

Tổng quát, giả sử G là một nhóm cyclic hữu hạn có n phần tử. Chúng ta ký hiệu phép toán của G theo kiểu nhân. Giả sử b là một phần tử sinh của G; khi đó mọi phần tử g \in G có thể viết dưới dạng g = bk với một số nguyên k nào đó. Hơn nữa, hai số nguyên có cùng tính chất đó với g là đồng dư theo modulo n. Chứng ta định nghĩa một hàm

\log_b:\  G\ \rightarrow\ \mathbf{Z}_n

(trong đó Zn ký hiệu cho vành các số nguyên modulo n) theo g là lớp các số nguyên k modulo n. Hàm này là một đồng cấu nhóm, được gọi là logarit rời rạc theo cơ số b.

Sau đây là công thức đổi cơ số giống như logarith thông thường: Nếu c là một phần tử sinh khác của G, thì:

\log_c (g) = \log_c (b) \cdot \log_b (g).

Thuật toán[sửa | sửa mã nguồn]

Chưa có thuật toán hiệu quả nào để tính logarit rời rạc tổng quát \log_b \; g.

Có nhiều thuật toán phức tạp, thường sinh ra từ những thuật toán tương tự cho bài toán phân tích thừa số nguyên. Chúng chạy nhanh hơn các thuật toán thô sơ, nhưng vẫn còn chậm hơn so với thời gian đa thức.

Ứng dụng trong mật mã[sửa | sửa mã nguồn]

Logarit rời rạc là bài toán khó (chưa biết một thuật toán hiệu quả nào), trong khi bài toán ngược luỹ thừa rời rạc lại không khó (có thể sử dụng thuật toán bình phương và nhân). Tình trạng này giống như tình hình giữa bài toán thừa số nguyên và phép nhân các số nguyên. Chúng đều có thể dùng để xây dựng cấu trúc cho một hệ mật mã.

Người ta thường chọn nhóm G trong mật mã logarit rời rạc là nhóm cyclic (Zp)×; chẳng hạn như mật mã ElGamal, Trao đổi khoá Diffie-Hellman, và Chữ ký số Elgamal.

Ngoài ra còn có mật mã sử dụng lôgarit rời rạc trong nhóm con cyclic của các đường elliptic trên trường hữu hạn; gọi là mật mã đường cong elliptic.

Tham khảo[sửa | sửa mã nguồn]