Tại sao Feige-Fiat-Shamir không phải là Kiến thức không có bit ký?


12

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 n là số nguyên Blum (vì vậy n= =pq và mỗi pq là 3 mod 4) có kích thước đủ lớn mà bao thanh toán có thể thu hút được. Vì n là số nguyên Blum, một nửa các phần tử của Zn* 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 S 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 sZn*v= =S2vvSS

  1. Peggy chọn một ngẫu nhiên trong và gửi cho Victor.Z * n r 2rZnr2
  2. Victor có thể gửi hoặc trở lại cho Peggy.b = 1b=0b=1
  3. Peggy gửi cho Victor.rsb

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 1s k t 1 = ± 1 , t k = ± 1 v 1 = t 1 s 2 1 , , v k = t k s 2 k v iks1skt1=±1,tk=±1v1=t1s12,,vk=tksk2vTôi

  1. Peggy chọn một ngẫu nhiên trong và gửi cho Victor.Z * n r 2rZn*r2
  2. Victor có thể dễ dàng gửi các giá trị từ trở lại cho Peggy.kbTôi{0,1}
  3. Peggy gửi cho Victor.rΠTôi= =1kSTôibTôi

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ỉ.tTôi

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.

Câu trả lời:


8

Giao thức nhận dạng Feige-Fiat-Shamir (FFS) là một bằng chứng về kiến ​​thức (PoK), trong đó người hoạt ngôn (Peggy) chứng minh kiến ​​thức của mình về căn bậc hai của đầu vào cho trình xác minh (Victor).

FFS muốn phân biệt PoK với bằng chứng về tư cách thành viên ngôn ngữ , trong đó Peggy chứng minh rằng đầu vào có một số thuộc tính (chính thức hơn, đầu vào thuộc về một ngôn ngữ nhất định).

Nếu chúng ta không sử dụng các dấu hiệu tiêu cực, có thể các đầu vào không có bất kỳ căn bậc hai nào. Ví dụ, số 20 không có bất kỳ căn bậc hai mod 21. Vì việc phân biệt bình phương và không bình phương là một vấn đề khó khăn nổi tiếng , FFS tránh điều đó bằng cách cho phép đầu vào là cộng hoặc trừ một số bình phương. Nói cách riêng của họ (thay đổi một chút):

Bằng cách cho phép là cộng hoặc trừ một modulo vuông một số nguyên Blum , chúng tôi đảm bảo rằng v i có thể nằm trên tất cả các số có ký hiệu Jacobi + 1 mod n và do đó , tôi tồn tại (theo quan điểm của V) của ký tự v i , theo yêu cầu trong chứng minh kiến ​​thức không giới hạn đầu vào không hạn chế.vTôivTôi +1modnSTôivTôi

Bằng cách chứng minh kiến ​​thức không kiến ​​thức đầu vào không hạn chế , chúng có nghĩa là ZK PoK có bằng chứng thành viên ngôn ngữ tương ứng là không đáng kể; tức là V có thể tự mình quyết định rằng đầu vào là cộng hoặc trừ của một số hình vuông (chỉ bằng cách kiểm tra biểu tượng Jacobi).


Cảm ơn câu trả lời, nhưng tôi vẫn không làm theo: không có dấu hiệu biểu tượng Jacobi là +1. Với các dấu hiệu, biểu tượng Jacobi là +1. Bạn nói ở trên "nếu chúng ta không sử dụng các dấu hiệu tiêu cực, có thể các đầu vào không có bất kỳ căn bậc hai nào." Làm thế nào là có thể? Đầu vào cho trình xác minh là một danh sách các ô vuông (giả sử một người hoạt ngôn trung thực) luôn có căn bậc hai.
Fixee

Câu hỏi thứ hai: bạn có nói rằng các dấu hiệu chỉ hiện diện cho bằng chứng đi qua? Hoặc có một cuộc tấn công thực sự nếu chúng bị bỏ qua?
Fixee

vTôivTôiSTôivTôi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.