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: Th.s Trần Ngọc
Thái
Sinh viên thực hiện:
Nguyễn Thế Tân
Lê Quang Đức
2
Chứng minh không tiết lộ thông tin
Là sự chứng minh tương tác mà không tiết lộ
thông tin hơn là xác nhận tính chính xác của sự
khẳng định đã được chứng minh.
Là công cụ chủ yếu trong việc học tập các giao
thức mật mã.
Là nguồn gốc của sự tương tác giữa mật mã và
các lý thuyết phức tạp.
3
Những nét chính
Đặt vấn đề.
Quá trình giải quyết trong Lý thuyết phức tạp
Chứng minh không tiết lộ thông tin
Thống kê Zero Knowledge
4
Lược đồ giao phó
Bên nh nậ
Bên g iử
m2{0,1}
m
Giai đoạn giao phó
Giai đoạn tiết lộ
m
5
Lược đồ giao phó
Bên nh nậ
Bên g iử
m2{0,1}
Giai đoạn giao phó
Giai đoạn tiết lộ
Thuộc tính ẩn: Bên nhận không biết về m ở
Giai đoạn giao phó.
Thuộc tính kết nối: Bên gửi không thể thay đổi m sau
Giai đoạn giao phó.
6
Lược đồ giao phó Blum
Bên nh nậ
Bên g iử
m2{0,1}
Giai đoạn giao phó
Giai đoạn tiết lộ
Thuộc tính ẩn: phân biệt lsb(x) từ 1 bit ngẫu nhiên
đưa ra x
2
mod n là “rõ ràng” như phân tích n thành
Thừa số
1. Chọn ngẫu
nhiên k-bit
tối ưu
p´ q ´ 3 (mod 4),
để n=pq.
2.Chọn ngẫu
nhiên x sao
cho x<n/2,
gcd(x,n)=1,
(n, x
2
mod n, m©lsb(x))
(m,x)
Verify!
Thuộc tính kết nối: x được xác định duy nhất x
2
mod n
với điều kiện là n được chọn đúng cách.
7
Biện pháp khắc phục?
Chứng minh không tiết lộ thông tin:
Bên gửi có thể “chứng minh” rằng n=pq để cho p
´q´3 mod 4 mà không lộ ra bất cứ cái gì về p,q!
Giải pháp luân phiên:
Gửi p,q trong Giai đoạn tiết lộ.
(Không cho phép sử dụng lại cùng n.)
8
Những nét chính
Đặt vấn đề
Quá trình giải quyết trong Lý thuyết phức tạp
Chứng minh không tiết lộ thông tin
Thống kê không tiết lộ thông tin
9
Lý thuyết phức tạp
Các ký hiệu
Λ = τ π η π χηυ ι κ τậ ợ ỗ ự
ε.γ. ΠΡΙΜΕΣ = { ξ : ξ λ◊ γι〈 τρ νη πην χ α µ τ ị ị ủ ộ
πριµε #}
Τνη το〈ν: α ρα ξ, ϖ ι ξđư ớ 2Λ
Thời gian đa thức
Π = { Λ : Λ λ◊ τηυ τ το〈ν ω /τη ι γιαν ξ λ ậ ờ ử · |ξ|
κ
ϖ ι µ ιớ ọ ξ}
“ κι µ λ ι”Để ể ỗ
Κι µ τη χηνη, χ〈χ ψ υ τ θυψ τ νη, λ π τρνη ể ử ế ố ế đị ậ
τυψ ν τνη,…
ΒΠΠ = Τη ι γιαν α τη χ νγ υ νηιν.ờ đ ứ ẫ
ΒΘΠ = Τη ι γιαν α τη χ νη λ νγ
10
NP
Định nghĩa: Một hệ thống chứng minh cho một
hệ thống ký tự L là một thuật toán thời gian đa
thức V( Verifier):
Τνη ηο◊ν τη◊νη ( Ξ〈χ νη ν χ〈χ χη νγ µινη ):“ ”ậ ứ
x∈L ⇒ ∃ proof : |proof |≤ poly(|x|) ϖ◊ V (x, proof )=accept
Σ η π λự ợ ( Κηνγ ξ〈χ νη ν χ〈χ χη νγ µινη σαι ):“ ”
x∉L ⇒ ∀ proof
*
V (x, proof
*
)=reject
NP = lớp các ký hiệu w/ các hệ chứng minh.
11
Đồ thị 3 màu
ĐN: đồ thị 3 màu là một đồ thị gán màu trong { , , }
cho các đỉnh sao cho không có cặp đỉnh liền kề nào có
màu giống nhau.
•
Biểu diễn: 3-COL = {G : G là 3 màu có thể gán} trong NP.
Đồ thị 3 màu Không là đồ thị 3 màu
12
NP- hoàn thành
ĐN: một hệ thống ký hiệu L làNP-hoàn thành nếu
Λ2 ΝΠ
Μ ι κ ηι υ τρονγ ΝΠ βι ν ι τη◊νη Λ“ ”ọ ệ ế đổ
Thm [C71,L72,K72]: 3-COL is NP-hoàn thành.
P
NP
P=NP
P
NP
NPC
Có thể xảy ra
Có thể hiểu được
Không thể xảy ra!
NPC
NPC
13
Những nét chính
Đặt vấn đề
Quá trình giải quyết trong Lý thuyết phức tạp
Chứng minh không tiết lộ thông tin
Thống kê không tiết lộ thông tin
14
Các thành phần mới
Các chứng minh NP cổ điển vốn đã không tiết lộ
thông tin.
ςεριφιερ χ⌠ κη ν νγ χη νγ µινη ξả ă ứ 2Λ χηο αι ⌠.
Sự ngẫu nhiên: verifier có thể “ tung đồng xu”
Χηο πηπ ϖεριφιερ χ⌠ σαι σ νη χ⌠ τη χη π νη ν ố ỏ ể ấ ậ
χ.đượ
Sự tương tác: thay thế proof bằng proof động, tất
cả quyền lực của prover
Σ τ νγ τ〈χ ϖ ι ϖεριφιερ ϖ◊ τη χη νγ µινη ν⌠ λ◊ “ ” “ ”ẽ ươ ớ ử ứ
ξ〈χ νη ν νγ.
15
Các giao thức tương tác
Alice, Bob là các hàm :
(đầu vào chung, random coins, thông điệp trước)(thông điệp tiếp theo
Các thông điệp ∈∑
*
∪ {accept, reject, halt}
Đòi hỏi các giao thức phải là đa thức giới hạn : độ dài của thông điệp
& # của thông điệp ≤ poly(|x|).
a
1
b
1
a
2
a
k
Bob
Alice
b
k
Đầu vào chung x
Random coins
B
Random coins
A
16
Các chứng minh tương tác [GMR85,B85]
ĐN: Một hệ thống chứng minh tương tác cho một hệ
ký hiệu L là một giao thức tương tác (P,V) với
V thời gian đa thức có thể tính được.
Sự hoàn thành: nếu x∈L, sau đó
V accepts trong (P,V)(x) với xác suất là 1
Tính hợp lý: nếu x∉L, sau đó với mỗi P
*
,
V accepts trong (P
*
,V)(x) với xác suất ≤ 1/2
ĐN: IP = { L : L là một chứng minh tương tác }
17
Giải thích cho Định nghĩa
Xác suất thu được chỉ vượt qua coin tosses,
không vượt qua đầu.
Có thể giảm xác suất lỗi (chấp nhận được) tới2
-
1000
với 1000 bản sao.
Các chứng minh tương tác khái quát hóa các
chứng minh cổ điển: NP⊆IP.
IP dường như lớn hơn: IP=PSPACE
[LFKN90,S90]
18
ZK Proof for 3-COL
Th i gian ờ
a th cđ ứ
Verifier
Không gi i h nớ ạ
Prover
1. Hoán vị ngẫu nhiên
các màu và đưa vào
các ô.
1
2
3
4
5
6
19
ZK Proof for 3-COL
1
2
3
4
5
6
Th i gian ờ
a th cđ ứ
Verifier
Không gi i h nớ ạ
Prover
1. Hoán vị ngẫu nhiên
các màu và đưa vào
các ô trống.
20
ZK Proof for 3-COL
2. Chọn một cạnh
ngẫu nhiên.
(1,4)
1
2
3
4
5
6
4. Chấp nhận nếu các
màu khác nhau.
3. Gửi các khóa cho
endpoints.
Sự hoàn thành: đồ thị 3 màu ) V chấp nhận w.p. 1
Th i gian ờ
a th cđ ứ
Verifier
Không gi i h nớ ạ
Prover
1. Hoán vị ngẫu nhiên
các màu và đưa vào
các ô trống.
21
ZK Proof for 3-COL
1
2
3
4
5
6
Sự hợp lý: không là đồ thị 3 màu ) 8 P
*
V từ chối w.p. ¸ 1/(#cạnh)
2. Chọn một cạnh
ngẫu nhiên.
(1,4)
4. Chấp nhận nếu các
màu khác nhau.
3. Gửi các khóa cho
endpoints.
Th i gian ờ
a th cđ ứ
Verifier
Không gi i h nớ ạ
Prover
1. Hoán vị ngẫu nhiên
các màu và đưa vào
các ô trống.
22
ZK Proof for 3-COL
1
2
3
4
5
6
Zero Knowledge: đồ thị 3 màu ) V thấy có 3 màu ngẫu nhiên rieeng biệt.
2. Chọn một cạnh
ngẫu nhiên.
(1,4)
4. Chấp nhận nếu các
màu khác nhau.
3. Gửi các khóa cho
endpoints.
Th i gian ờ
a th cđ ứ
Verifier
Không gi i h nớ ạ
Prover
1. Hoán vị ngẫu nhiên
các màu và đưa vào
các ô trống.
23
Cách bổ sung ô trống?
Bit-giao phó(không tương tác):
có thể tính thời gian đa thức Commit(m,K) s.t.
ν:Ẩ χηο γι〈 τρ νγ υ νηιν ị ẫ K,
Commit(0,K) & Commit(1,K)
χ τνη κηνγ πην βι τ χ.
() ζερο κνοωλεδγε)
Κ τ ν ι: Commit(0,¢) & Commit(1,¢)
ρ ι ρ χờ ạ () σ η π λự ợ )
Thm [N89,HILL90]: 9 các hàm 1 chiều
) 9 (tương tác) bit-Lược đồ giao phó.
Bên gửi
input m
Bên nhận
Giao phó:
z=Commit(m,K)
Tiết lộ:
(m,K)
24
ZK Proof for 3-COL
1
2
3
4
5
6
Com( )…Com( )
( ,K
1
),( ,K
4
)
2. Chọn một cạnh
ngẫu nhiên.
4. Chấp nhận nếu các
màu khác nhau.
3. Gửi các khóa cho
endpoints.
Th i gian ờ
a th cđ ứ
Verifier
Không gi i h nớ ạ
Prover
1. Hoán vị ngẫu nhiên
các màu và đưa vào
các ô trống.
25
Chính thức hóa Zero Knowledge
Mô phỏng mẫu
Verifier không thể biết
được gì nếu nó
không “”learns
nothing if it could
have “ mô phỏng” sự
tương tác của chính
bản thân nó.