1. Trang chủ
  2. » Luận Văn - Báo Cáo

chứng minh không tiết lộ thông tin và ứng dụng chứng minh tính hợp lệ của lá phiếu điện tử

13 371 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 420 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

“CHỨNG MINH KHÔNG TIẾT LỘ THÔNG TIN” VÀ ỨNG DỤNG CHỨNG MINH TÍNH HỢP LỆ CỦA LÁ PHIẾU “ĐIỆN TỬ” Trịnh Nhật Tiến, Trương Thị Thu Hiền, Nguyễn Đình Nam Tóm tắt Trong [1], [2], chúng tôi đã

Trang 1

“CHỨNG MINH KHÔNG TIẾT LỘ THÔNG TIN” VÀ ỨNG DỤNG

CHỨNG MINH TÍNH HỢP LỆ CỦA LÁ PHIẾU “ĐIỆN TỬ”

Trịnh Nhật Tiến, Trương Thị Thu Hiền, Nguyễn Đình Nam

Tóm tắt

Trong [1], [2], chúng tôi đã trình bày một số kỹ thuật bỏ phiếu từ xa (bỏ phiếu điện

tử - Electronic Voting) Cử tri giữ bí mật lá phiếu khi truyền từ xa tới ban kiểm phiếu bằng cách mã hoá nội dung lá phiếu Theo kỹ thuật “mã hoá đồng cấu”, ban kiểm phiếu có thể tính được kết quả bầu cử mà không cần phải giải mã nội dung lá phiếu Vấn đề nảy sinh là

cử tri phải chứng minh được với ban kiểm phiếu rằng lá phiếu của mình là hợp lệ nhưng nội dung lá phiếu thì không được tiết lộ với họ Để thực hiện điều này, hiện nay người ta

dùng kỹ thuật “Chứng minh không tiết lộ thông tin” (Zero-knowledge proof) Trong báo cáo này, chúng tôi trình bày ý tưởng trên để thực hiện bỏ phiếu loại “Chọn 1 trong k”

1 MỘT SỐ KHÁI NIỆM

1 1 Vấn đề ''Bỏ phiếu điện tử'' (Electronic Voting).

Nghiên cứu về ''Bỏ phiếu điện tử'' là một chủ đề quan trọng đóng góp cho sự tiến bộ của xã hội dân chủ Nếu một hệ thống bỏ phiếu điện tử an toàn và tin cậy, nó sẽ được sử dụng thường xuyên để thu thập ý kiến của mọi người cho nhiều quyết định về chính trị và

xã hội thông qua hệ thống tự động hóa “Bỏ phiếu điện tử'” cũng phải đạt được các tính chất như “bỏ phiếu truyền thống” (xem [1]) Một qui trình bỏ phiếu gồm một số giai đoạn (công đoạn) Hiện nay có nhiều kỹ thuật mật mã để thực hiện hợp lý trong từng giai đoạn

Trong báo cáo này chúng tôi xin trao đổi về giai đoạn Cử tri (CT) chuyển lá phiếu

tới Ban kiểm phiếu (Ban KP) cho Sơ đồ bỏ phiếu loại “Chọn 1 trong k” Trong giai

đoạn này người ta sử dụng kỹ thuật “Mã hóa đồng cấu - Chia sẻ bí mật” (Homomorphic Encryption – Secret Sharing) (xem [2]), kỹ thuật “Chứng minh không tiết lộ thông tin” (Zero-knowledge proof)

1 2 Giai đoạn Cử tri chuyển lá phiếu tới Ban kiểm phiếu.

Theo suy nghĩ thông thường, khi Cử tri (CT) chuyển lá phiếu tới Ban kiểm phiếu (Ban KP) thì họ chỉ cần mã hóa nội dung lá phiếu là đủ Vì tiếp theo Ban KP chỉ cần giải

mã nội dung lá phiếu là tính được kết quả (kiểm phiếu)

Nhưng trên thực tế có thể xảy ra các tình huống sau:

- Ban KP hay một nhóm thành viên Ban KP không trung thực đã gian lận phiếu bầu, ví dụ sửa lại nội dung lá phiếu sau khi giải mã (trước khi kiểm phiếu) Để khắc phục tình hình này, người ta dùng kỹ thuật “Mã hóa đồng cấu - Chia sẻ bí mật” Với giải pháp này Ban

KP không phải giải mã từng lá phiếu nhưng vẫn tính được kết quả

- Để bảo đảm công khai kiểm phiếu, lá phiếu đã mã hóa khi tới Ban KP phải được niêm yết công khai Như vậy nhìn trên bảng niêm yết này, CT sẽ nhận ra lá phiếu của mình và họ có

thể “bán” phiếu bầu” Để khắc phục tình trạng này, người ta dùng một “Người xác minh

trung thực” (TT - honest verifier) làm trung gian giữa CT và Ban KP Cử tri gửi lá phiếu từ

xa tới Ban KP thông qua người trung gian TT Sau khi xác minh lá phiếu hợp lệ, anh ta làm

“mù “ lá phiếu (mã hóa lá phiếu lần thứ 2), tiếp đó gửi nó về Ban KP Trên bảng niêm yết

công khai, CT không thể nhận ra lá phiếu của mình để có thể “bán” phiếu bầu”

Trang 2

Khi giải quyết 2 tình huống trên lại xuất hiện hai vấn đề khác:

- Một là CT phải chứng minh cho TT biết lá phiếu của họ là hợp lệ, tức là nội dung lá phiếu

chỉ ghi tên 1 trong số k ứng cử viên (loại bầu cử “chọn 1 trong k”), không cần phải chỉ rõ

lá phiếu ghi đích danh ứng cử viên nào Cách chứng minh như vậy gọi là “Chứng minh không tiết lộ thông tin” Với cách chứng minh này, nội dung lá phiếu không bị tiết lộ, trong khi mọi người đủ bằng chứng tin được rằng lá phiếu này là hợp lệ

- Hai là TT phải chứng minh cho CT, Ban KP,…biết rằng lá phiếu bị làm “mù“ vẫn hợp lệ (theo nghĩa trên) bằng cách chỉ ra rằng anh ta sở hữu giá trị β để là “mù” lá phiếu

TT chứng minh điều này cũng bằng phương pháp “Chứng minh không tiết lộ thông tin”, tức là không cần phải tiết lộ chính giá trị β

Sau đây là sơ đồ giai đoạn Cử tri (CT) chuyển lá phiếu tới Ban kiểm phiếu:

Giao thức 1: CT mã hóa lá phiếu bằng hệ mã hóa Elgamal, CT gửi nó tới TT kèm theo

“Chứng minh không tiết lộ thông tin” cho tính hợp lệ của lá phiếu đó

Giao thức 2: Sau khi xác minh lá phiếu hợp lệ, TT làm “mù“ lá phiếu và gửi nó về Ban KP

kèm theo “Chứng minh không tiết lộ thông tin” cho tính hợp lệ của lá phiếu đã bị làm

“mù“ Cụ thể Chứng minh quyền sở hữu giá trị bí mật β dùng để làm “mù“ lá phiếu

Trang 3

Người xác minh

trung thực TT

Lựa chọn ứng cử viên

Mã hóa

lá phiếu

Gửi tới TT lá phiếu đã mã

hóa và “Chứng minh

không tiết lộ thông tin” cho

tính

hợp lệ của lá phiếu

Xác minh tính hợp lệ của lá phiếu

Làm mù

lá phiếu

- Kiểm phiếu

- Niêm yết Công khai Các lá phiếu

đã mã hóa

2 lần

Trang 4

“Chứng minh không tiết lộ thong

tin” tính hợp lệ của

lá phiếu mới (đã bị làm mù)

Lá phiếu đã mã hóa

(x, y)

Lá phiếu mã hóa đã bị làm mù

1 3 Khái niệm “Chứng minh không tiết lộ thông tin” và Giao thức .

Trong mục trước ta đã có ví dụ về khái niệm “Chứng minh không tiết lộ thông tin”

Ta xét tiếp ví dụ đơn giản hơn nữa về khái niệm này Giả sử P, V tham gia trò chơi với các

quân bài P đưa ra 2 quân bài úp sấp và nói đó là “át”, “2” P yêu cầu V chọn quân “át” Trước khi chọn quân bài “át”, V muốn kiểm tra chắc chắn 2 quân bài đó đích thực là

“át” và “2” V yêu cầu P chứng minh điều này Nếu P lật 2 quân bài đó lên để coi như một

cách chứng minh thì trò chơi kết thúc vì V đã nhìn thấy chúng, anh ta chọn được ngay được

quân bài “át”

Có một cách khác để P chứng minh được đó là quân bài “át” và “2” mà không phải

lật 2 quân bài đó lên, tức là không làm lộ thông tin về 2 con bài trên tay P Rất đơn giản

anh ta đưa 50 quân bài còn lại cho V Nếu V kiểm tra thấy thiếu một quân “át” và một quân

“2”, thì có thể coi 2 quân bài P đưa ra là đúng như anh ta nói

Qua hai ví dụ trên có thể tạm hiểu “Chứng minh không tiết lộ thông tin” không có nghĩa là “không để lộ thông tin” mà nghĩa là “để lộ thông tin ở mức ít nhất” về sự vật sự việc cần chứng minh Với những “thông tin để lộ”, người xác minh không có nhiều hiểu biết (knowledge) về sự vật sự việc, họ chỉ thu được chút ít thông tin (coi như “zero knowledge”) về đặc điểm tính chất của nó

Giao thức ∑ là giao thức “Hỏi - Đáp” 3 bước để P chứng minh cho V một vấn đề nào đó

- P gửi cho V một giá trị ngẫu nhiên

- V gửi lại P một giá trị ngẫu nhiên như là giá trị dùng để kiểm thử

Trang 5

- P gửi đáp lại V một giá trị.

Kết quả V thừa nhận hoặc bác bỏ vấn đề P chứng minh

1 4 Mã hóa đồng cấu Elgamal.

Hệ mã hóa Elgamal xét trong Z p (p là số nguyên tố lớn)

Nếu khóa bí mật là s thì khóa công khai tương ứng là h= g s , g là phần tử sinh của Zp Bản rõ mZ pđược mã hóa thành cặp (x,y)=(gα,hαm), trong đó α ngẫu nhiên do người

thực hiện mã hóa chọn Để giải mã, người sở hữu khóa bí mật s tính: s

x

y

Chú ý

Bản Mã là (x,y)=(gα,hαm), Bản Rõ là s

x

y

Trong cuộc bầu cử “chọn 1 trong k”, k là số ứng cử viên, lựa chọn người thứ i là G i

Lá phiếu mã hóa sẽ là (x,y)=(gα,hαG i)

Lá phiếu mã hóa Elgamal (x, y) được làm mù nhờ cặp (u, v)=( gβ, hβ ), β là phần tử ngẫu nhiên bí mật do TT chọn

Sau khi đã làm mù, lá phiếu có dạng: (xu,yv)=(gα +β, hα +βG i)

1 5 Chia sẻ bí mật ngưỡng Shamir và Mã hóa Elgamal.

Theo sơ đồ chia sẻ bí mật Shamir ngưỡng ( n t, ), khóa bí mật s có thể được chia sẻ cho

n thành viên Aj (1≤ jn), mỗi người sở hữu một mảnh sj Việc khôi phục khóa bí mật

s chỉ có thể được thực hiện khi có ít nhất t thành viên nhất trí

Khóa bí mật s được khôi phục lại theo công thức j A

A

s

trong đó

} {

=

j A l A j

j l

l

\ ,

λ là hệ số Lagrange.

Mỗi thành viên Ajgiữ bí mật mảnh khóa sj, nhưng công khai giá trị h j s j

g

=

Không cần khóa gốc s, Bản rõ m có thể tính được từ các mảnh khóa s j theo giao thức: 1) Mỗi thành viên A công khai j s j

w = và chứng minh không tiết lộ thông tin về sj, bằng cách cho biết: logg h j =logx w j

(Chú ý: s j

w = suy ra logx w j =logx x s j =s j

s j

h = suy ra logg h j =logg g s j =s j )

2) Tính Bản rõ m theo công thức :

=

=

=

=

A j

j A

j

s s

A j A j

y x

y x

y x

y

m

, ,

Trang 6

Trong đó A là tập con các thành viên truyền các chứng minh không tiết lộ thông tin.

Trang 7

2 GIAO THỨC “CHỨNG MINH KHÔNG TIẾT LỘ THÔNG TIN”

DÙNG TRONG QUÁ TRÌNH BỎ PHIẾU

2 1 Chứng minh tính hợp lệ của lá phiếu (x, y) (Giao thức 1).

Theo sơ đồ giai đoạn Cử tri (CT) chuyển lá phiếu tới Ban kiểm phiếu, phải thực

hiện Giao thức 1 Tức là CT mã hóa lá phiếu bằng hệ mã hóa Elgamal, lá phiếu đã mã hoá

được gửi tới người xác minh trung thực (TT) kèm theo “Chứng minh không tiết lộ thông tin” cho tính hợp lệ của lá phiếu đó

Trong cuộc bầu cử “Chọn 1 trong k”, nếu cử tri nào đó chọn ccc là ứng cử viên thứ

Bằng mã hóa Elgamal, lựa chọn G được mã hóa thành i (x,y)=(gα, hαG i)

Như vậy cử tri muốn chứng minh với người xác minh trung thực TT rằng lá phiếu (x,y) là hợp lệ thì anh ta phải chỉ ra một trong số k đẳng thức sau là đúng

))

/ ( log ((log

)) / ( log

(logg x= h y G1 ∨ ∨ g x= h y G k (1)

Để chứng minh (1) mà không bị lộ G , CT và TT thống nhất dùng giao thức i

“Chứng minh không tiết lộ thông tin” như sau:

- Mã hóa lá phiếu [(x,y)=(gα, hαG i)]

- Chọn ngẫu nhiênwZ p

Tính a i =g w, b i =h w

- Với j = 1,…, i-1, i+1,…, k

chọn d , j r jZp (Chưa chọn di , ri )

Tính r j d j

j

r

- Đặt (A,B)=(a1,b1), ,(a k,b k)

(Sử dụng ai , bi đã tính ở trên)

( ,y), (A,B)

- CT tính: (Trước đó chưa chọn di , ri )

) , ( ), , , ( )

,

i i

i j j i

r d r

d R

D

d w

r

d c

d

=

=

≠ α



c

 →

(D,R)

- TT chọn ngẫu nhiên cZ p

- TT kiểm tra:

j j

j j

d j

r j

d r j

k

G y h b

x g a

k j

cho

d d

c

) / (

, , 1

?

?

1

?

=

=

=

+ +

=

Nếu đều đúng TT kết luận:

Lá phiếu hợp lệ

Trang 8

Chú ý

Nếu không biết G , người chứng minh P không thể tạo ra i j d j

j

r

để kiểm tra

Ví dụ 1: Chứng minh tính hợp lệ của lá phiếu đã mã hóa (x,y)=(gα, hαG i)

Giả sử cuộc bầu cử “chọn 1 trong 3” Các lựa chọn là 1 hoặc 2 hoặc 3

Ký hiệu lựa chọn ứng cử viên thứ i là G i Để chứng minh tính hợp lệ của lá phiếu, cử tri phải chứng minh: (logg x=logh(y/G1))∨ ∨((logg x=logh(y/G k)). (1)

Chú ý

Vì x = gα nên α = logg x

Vì y = h /α G i nên α = logh(y/G i)

Do đó ta có tính chất (1): α = α hay logg x = logh(y/G i)

Để chứng minh (1), CT và TT thống nhất dùng giao thức “Chứng minh không tiết

lộ thông tin” như sau:

Chọn phần tử sinh g=3, α=5, khóa bí mật s =7, khóa công khai h=gs=37

Ký hiệu 3 ứng cử viên G1=1, G2=2, G3=3 Giả sử cử tri CT chọn Gi=2

Trang 9

Cử tri CT Người xác minh TT

- CT mã hóa lá phiếu [(x,y)=(35,(37)5.2]

- CT chọn ngẫu nhiên w=2

Tính 7 2

2

2

2 =3 ,b =(3 )

- Với j = 1, 3

Chọn d1=8, r1=9 và tính:

a1 = 39 (35)8

8 5 7

9

7

1

2 ) 3

(

(

)

3

(

=

b

Chọn d3=10, r3=11 và tính:

a3 = 311 (35)10

10 5 7 11

7

3

2 ) 3

(

(

)

3

(

=

b

(A, B) = (39 (35)8, 7 5 7 5 )8

1

2 ) 3 ( ( ) 3 ( ), (32, (37)2),

(311 (35)10, 7 11 7 5 )10

3

2 ) 3 ( ( ) 3

( ,y), (A,B) TT chọn ngẫu nhiên c=13 ←c

- CT tính d2 = c - ∑

≠i

j j

d

= c - (d1+d3) = 13-(8+10) = -5

- CT tính r2 = w – α di

= 2 – 5 d2 = 2 -5.(-5) = 2 + 25 = 27

- CT đặt (D,R)=(8, 9),(-5, 27),(10, 11)

( →D,R) TT kiểm tra: thấy đều đúng

c=d1+d2+d3=8+(-5)+10=13

j j

j j

d j

r j

d r j

G y h b

x g a

) / (

=

=

j=1,2,3

=>Kết luận: lá phiếu hợp lệ

2 2 Chứng minh quyền sở hữu giá trị bí mật β (Giao thức 2).

Theo sơ đồ giai đoạn Cử tri (CT) chuyển lá phiếu tới Ban kiểm phiếu (Ban KP),

phải thực hiện Giao thức 2 Tức là sau khi xác minh lá phiếu của CT là hợp lệ, người xác

Trang 10

minh trung thực (TT) làm “mù“ lá phiếu và gửi nó về Ban KP kèm theo “Chứng minh không tiết lộ thông tin” cho tính hợp lệ của lá phiếu đã bị làm “mù“

TT làm “mù” lá phiếu thông qua cặp (u, v) dựa trên giá trị bí mật β Như vậy để chứng minh lá phiếu đã bị làm “mù“ vẫn hợp lệ, TT phải chứng minh rằng anh ta sở hữu giá trị bí mật β thõa mãn u=gβ, v=hβ Nhưng mặt khác TT không muốn để lộβ

Có một giao thức hiệu quả để anh ta làm việc này: giao thức ∑ (đã trình bày ở mục trên) Trong sơ đồ dưới đây, TT là người chứng minh (P), người kiểm tra (V) là CT, Ban KP,…

- P có [(u,v)=(gβ, hβ)]

- P chọn wZp

Tính (a,b):=(g w,h w)  →( b a)

P gửi V giá trị ngẫu nhiên w thông qua (a, b)



c

V gửi lại P giá trị ngẫu nhiên c - V chọn p

Z

- P tính r:=wc →r

P đáp lại V bằng r

- Kiểm tra:

c r

c r

bv h

au g

?

?

=

=

Nếu đều đúng 

V thừa nhận P

sở hữu giá trị β

Chú ý

Nếu không biếtβ, người chứng minh P không thể tạo ra r:=wc để kiểm tra.

c c w c

w

r

c c w c

w

r

bv h

h

h

h

au g

g g

g

=

=

=

=

=

=

+

+

β β

β

Ví dụ 2:

Người chứng minh P chọn g=3, s=7, h=gs=37 Anh ta có β=5 sử dụng trong

) ,

(

)

,

(u v = gβ hβ =(35, (37)5), cặp số này dùng để làm “mù” lá phiếu đã mã hoá của cử tri

Trang 11

P muốn chứng minh với V rằng anh ta sở hữu β mà không muốn để lộ giá trịβ.

P thực hiện giao thức ∑ với người xác minh V như sau:

Trang 12

Nếu người nào đó giả mạo rằng đã biếtβ để tạo (u,v)=(g β , h β ) thì “khó” có thể tính

được r=w+βc, tức là bước kiểm thử g r

?

= au c , h r

?

= bv c “khó” có thể thực hiện được

Vì a, b, c, r, g, h, u, v đều công khai nên ai cũng có thể xác minh được r = w+βc.

Nhờ giao thức trên mọi người tin rằng người xác minh TT đã dùngβ để làm “mù” lá phiếu

2.3 Giai đoạn Cử tri chuyển lá phiếu tới Ban kiểm phiếu với phương án 2

Trong mục 1.2 báo cáo đã trình bày giai đoạn Cử tri (CT) chuyển lá phiếu tới Ban

kiểm phiếu (Ban KP) Nó được thực hiện bằng Giao thức 1 và Giao thức 2, xin gọi là

phướng án 1 Có phướng án khác (tạm gọi là 2) cũng để thực hiện giai đoạn này bằng 2 giao thức Giao thức 1 như trong phướng án 1 Giao thức 2 có thay đổi như sau:

Sau khi TT xác minh lá phiếu của CT là hợp lệ, sau khi CT xác minh TT sở hữu giá trị β

thì chính CT làm “mù“ lá phiếu và gửi nó về Ban KP (thay vì TT làm “mù“ lá phiếu và gửi

nó về Ban KP như theo giao thức 2 của phương án 1) Trong phương án này chúng tôi đề nghị: mỗi lần xử lý một lá phiếu, tại mỗi bước thử điều kiện, nếu không thoả mãn, công việc xử lý dừng lại với lá phiếu này để chuyển ngay sang lá phiếu tiếp theo

KẾT LUẬN

Báo cáo đã trình bày hai giao thức “Chứng minh không tiết lộ thông tin” để giải quyết hai vấn đề trong giai đoạn Cử tri chuyển lá phiếu tới Ban kiểm phiếu Như vậy trong giai đoạn này lá phiếu đã bị mã hoá 2 lần, nhưng kết quả giải mã lá phiếu đúng như nội dung ban đầu của nó, bởi vì:

- Nội dung lá phiếu: chọn ứng cử viên Gi

- Lá phiếu sau khi mã hoá lần 1: (x,y)=(gα, hαG i).

- Lá phiếu sau khi làm “mù” (mã hoá lần 2): (xu,yv)=(gα +β, hα +βG i)

- Sau khi giải mã lá phiếu:

i s s

i

g

h g

G h

xu

yv

) ( ) (

)

β β

α

β

α

=

β ) (g s

h

Gi = β

β )

(h

h

Gi = Gi

Chú ý rằng theo mã hoá Elgamal, khoá bí mật là s, thì khoá công khai h = gs

TÀI LIỆU THAM KHẢO

[1] Trịnh Nhật Tiến, Nguyễn Đình Nam, Trương Thị Thu Hiền, “Một số kỹ thuật Bỏ phiếu

từ xa”, Hội thảo Một số vấn đề chọn lọc của Công nghệ thông tin, Thái Nguyên, tháng 8

năm 2003

Ngày đăng: 15/10/2016, 20:48

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w