Trong chương 10 của HAC (10.4.2) , chúng ta thấy giao thức nhận dạng Feige-Fiat-Shamir nổi tiếng dựa trên bằng chứng không có kiến thức bằng cách sử dụng khó khăn (giả định) của việc trích xuất căn bậc hai modulo một hỗn hợp khó có thể xác định được. Tôi sẽ đưa ra sơ đồ theo cách của riêng tôi (và hy vọng làm cho đúng).
Hãy bắt đầu với một sơ đồ đơn giản hơn: hãy là số nguyên Blum (vì vậy và mỗi và là 3 mod 4) có kích thước đủ lớn mà bao thanh toán có thể thu hút được. Vì là số nguyên Blum, một nửa các phần tử của có ký hiệu Jacobi +1 và nửa còn lại có -1. Đối với các phần tử +1, một nửa trong số chúng có căn bậc hai và mỗi phần tử có căn bậc hai có bốn trong số chúng, chính xác là một phần tử là một hình vuông.
Bây giờ, Peggy chọn một phần tử ngẫu nhiên từ và đặt . Sau đó, cô gửi cho Victor. Tiếp theo là giao thức: Victor muốn xác minh rằng Peggy biết căn bậc hai của và Peggy muốn chứng minh điều đó với anh ta mà không tiết lộ bất cứ điều gì về ngoài thực tế cô ta biết một như vậy . v = s 2 v v s s
- Peggy chọn một ngẫu nhiên trong và gửi cho Victor.Z * n r 2
- Victor có thể gửi hoặc trở lại cho Peggy.b = 1
- Peggy gửi cho Victor.
Victor có thể xác minh rằng Peggy đã gửi câu trả lời chính xác bằng cách bình phương những gì anh ta nhận được và so sánh với kết quả chính xác. Tất nhiên, chúng tôi lặp lại tương tác này để giảm khả năng Peggy chỉ là một người đoán may mắn. Giao thức này được tuyên bố là ZK; một bằng chứng có thể được tìm thấy ở nhiều nơi (ví dụ, ghi chú bài giảng của Boaz Barak ).
Khi chúng tôi mở rộng giao thức này để làm cho nó hiệu quả hơn, nó được gọi là Feige-Fiat-Shamir; Nó rất giống với ở trên. Chúng tôi bắt đầu Peggy với giá trị ngẫu nhiên và các dấu hiệu ngẫu nhiên cô ấy xuất bản các hình vuông của họ dưới dạng . Nói cách khác, chúng tôi phủ nhận ngẫu nhiên một số . Hiện nays 1 ⋯ s k t 1 = ± 1 , ⋯ t k = ± 1 v 1 = t 1 s 2 1 , ⋯ , v k = t k s 2 k v i
- Peggy chọn một ngẫu nhiên trong và gửi cho Victor.Z * n r 2
- Victor có thể dễ dàng gửi các giá trị từ trở lại cho Peggy.
- Peggy gửi cho Victor.
Câu hỏi của tôi: Tại sao các bit dấu cần thiết? Trong ngoặc đơn, HAC lưu ý rằng chúng ở đó như một yêu cầu kỹ thuật cần thiết để chứng minh rằng không có thông tin bí mật nào bị rò rỉ. Trang wikipedia cho Feige-Fiat-Shamir (bị sai giao thức) ngụ ý rằng không có điều này một chút sẽ bị rò rỉ.
Tôi không thể tìm thấy một cuộc tấn công trích xuất bất cứ thứ gì từ Peggy nếu cô ấy bỏ qua các dấu hiệu.