Nhóm 26: Nguyễn Thế Tân và Lê Quang Đức_CT702 1
Trường Đại học Dân lập Hải Phòng
BỘ MÔN CÔNG NGHỆ THÔNG TIN
Chứng minh không
tiết lộ thông tin
( Zero-knowledge
proofs)
Giảng viên: KS Trần Ngọc Thái
Sinh viên thực hiện:
Nguyễn Thế Tân
Lê Quang Đức
Nhóm 26: Nguyễn Thế Tân và Lê Quang Đức_CT702 2
Tổng quan:
Chứng minh không tiết lộ thông tin là gì?
Giới thiệu những sự chứng minh tương tác
Định nghĩa Chứng minh không tiết lộ thông tin.
Các thuộc tính của chứng minh không tiêt lộ
thông tin.
Ứng dụng của Chứng minh không tiết lộ thông
tin:
Giao thức xác minh Feige-Fiat-Shamir.
Giao thức xác minh Schnorr’s.
Kết luận.
Nhóm 26: Nguyễn Thế Tân và Lê Quang Đức_CT702 3
Zero Knowledge Proof là gì?
Ví dụ đơn giản:
Hang động của Ali Baba.
Alice muốn chứng minh cho
Bob là anh ta biết cách mở
cánh cửa bí mật giữa R và S.
Bob đi tới P
Alice đi tới R hoặc S
Bob đi tới Q và bảo Alice đi tới
đó từ cửa khác của hang
động.
Nếu Alice biết được bí mật thì
lần nào anh ta cũng xuất hiện
từ cửa đúng của hang.
Bob lặp lại nhiều lần cho đến
khi anh ta tin rằng Alice có thể
mở cánh cửa bí mật.
Image from RSA Labs [1]
/> Nhóm 26: Nguyễn Thế Tân và Lê Quang Đức_CT702 4
Giới thiệu về sự chứng minh tương tác:
Prover (P) thử chứng minh một vài sự thật để kiểm
chứng.
Verifier (V) chấp nhận hoặc bác bỏ sự chứng minh của
Prover.
Chứng minh sẽ thuyết phục Verifier về một sự khẳng
định nào đó:
Chứng minh rằng anh ta biết một giá trị bí mật s.
Vài party khác trong giao thức được đề cập dưới đây:
1. Nhận một thông điệp từ một party khác
2. Thực hiện một sự tính toán riêng.
3. Gửi thông điệp cho một party khác.
Lặp t lần quá trình đó.
Nhóm 26: Nguyễn Thế Tân và Lê Quang Đức_CT702 5
Interactive Proof Protocol
Prover and verifier chia sẻ các đầu vào phổ biến (Các hàm
hoặc giá trị)
Giao thức trả về Accept cho mỗi trả lời được chấp nhận
bởi Verifier.
Ngược lại, Giao thức trả về Reject
P
Prover
V
Verifier
Giá trị ngẫu nhiên
Sự thách thức
Sự trả lời
Lặp lại
t lần
Các đầu vào
phổ biến
Các đầu vào
Phổ biến
Nhóm 26: Nguyễn Thế Tân và Lê Quang Đức_CT702 6
Các thuộc tính của Sự chứng minh tương
tác:
Sự hoàn thành:
Verifier chấp nhận sự chứng minh nếu sự kiểm
chứng là True.
Giả định: các Party tuân theo Giao thức.
Tính vững chắc:
Nếu thực tế là FALSE, Verifier sẽ từ chối sự
chứng minh
Giả định: các Party tuân theo Giao thức.