Lôgarit rời rạc

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, Mật mã dựa trên ghép cặp (Pairing-based Cryptography)...

Ví dụ 
Cho p là một số nguyên tố. Xét nhóm nhân các số nguyên modulo 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ó
.

Lôgarit rời rạc là phép tính ngược lại: 
Biết: hãy tìm k.

Định nghĩa 

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  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

(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ì:

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

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.

 Baby-step giant-step
 Thuật toán Pollard cho logarit
 Thuật toán Pohlig-Hellman
 Thuật toán tính chỉ số
 Number field sieve
 Function field sieve

Ứng dụng trong mật mã 

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ố học modulo
Lý thuyết nhóm
Mật mã học
Lôgarit
Trường hữu hạn
Thuật toán nhị phân
Phép toán hai ngôi
Số học Modulo