Fiat-Shamir heuristic là một kỹ thuật mật mã dùng biến một hệ thống chứng minh tương tác thành một hệ thống chứng minh không tương tác (non-interactive proof system).
Alice (Prover) muốn thuyết phục Bob (Verifier) là cô ta biết một giá trị mà lại không muốn để lộ giá trị này.
Public parameters - là những giá trị cả Alice và Bob đều biết, bao gồm:
Số nguyên tố
Generator của
Giá trị , với giả định độ khó của log rời rạc (discrete logarithm problem): biết nhưng không thể suy ra
Một hàm Hash mật mã (Cryptographic Hash) , như SHA256 chẳng hạn.
Bước 1 - Tạo Commitment
Alice chọn một số ngẫu nhiên
Tính giá trị commitment
Alice gửi cho Bob
Bước 2 - Tạo Challenge
Alice tự sinh ra một challenge bằng cách tính
Hàm có thể dùng hàm hoặc động như một random oracle - bảo đảm tính không thể đoán trước
Các public parameters có thể đưa thêm vào tùy ý, bao gồm
Bước 3 - Tạo Response
Alice tính response
Alice gửi cho Bob
Bước 4 - Verify
Lúc này Bob có các thông tin:
- public parameters
- nhận từ Alice
- Bob có thể tự tính được từ
Và sẽ cần verify:
Theo định lý Fermat Nhỏ: Nếu là số nguyên tố thì .
Giả sử , ta có:
Như vậy:
Ta có
No comments yet. Be the first to comment!