Mạch đơn điệu (Benaloh, Leichter)

Một phần của tài liệu CÂU HỎI ÔN TẬP AN TOÀN VÀ BẢO MẬT DỮ LIỆU ( có đáp án) (Trang 43 - 55)

Định nghĩa Mạch đơn điệu

Giả C là mạch Boolean (Cụng thức logic) với m đầu vào (biến logic) X1, X2, ... , Xm

(tương ứng với m thành viờn P1, P2, ... , Pm ) và 1 đầu ra (biến logic) Y. Mạch này chỉ gồm cỏc cổng "hoặc" và cỏc cổng "và".

Mạch như trờn đ.g.l Mạch đơn điệu.

Xõy dựng Mạch đơn điệu

Cho Ґ là tập đơn điệu cỏc tập con của P. Giả sử Ґ0là cơ sở của Ґ. Khi đú ta xõy dựng cụng thức Boolean dạng tuyển hội chuẩn sau:

C = ∨ B∈Ґ0 ( ∧Pi∈B Pi) Đú là Mạch đơn điệu.

Vớ dụ:

Nếu trong tập cỏc thành viờn {P1, P2, P3, P4 } cú cỏc tập Cơ sở

Ґ0 = {{P1, P2, P4 }, {P1, P3, P4 }, {P2, P3} }.

Theo cỏch xõy dựng Mạch đơn điệu trờn ta cú cụng thức Boolean sau: C = (P1^ P2^P4 ) v (P1^P3^ P4 ) v (P2^P3)

21. Trỡnh bày Sơ đồ Chia sẻ bớ mật Shamir (Secret Sharing Scheme)

- Sơ đồ Chia sẻ bớ mật Shamir.

- Cỏc đặc điểm đặc trưng của Sơ đồ Chia sẻ bớ mật Shamir. - Vớ dụ bằng số minh hoạ việc Chia sẻ bớ mật theo Sơ đồ Shamir. - Viết chương trỡnh thực hiện theo Sơ đồ này.

Định nghĩa sơ đồ ngưỡng A(t, w)

Cho t, w là cỏc số nguyờn dương, t≤w. Một sơ đụ̀ ngưỡng A(t, w) là một phương phỏp phõn chia khoỏ K cho một tọ̃p gụ̀m w thành viờn (ký hiệu là P) sao cho t thành viờn bất kỳ có thể tớnh được giỏ trị K nhưng khụng một nhóm gụ̀m (t-1) thành viờn nào có thể làm được điều đó.

Giỏ trị K được chọn bởi một thành viờn đặc biệt gọi là người phõn phối( D). Ta xem rằng D∉P. Khi D muốn phõn chia một khoỏ K cho cỏc thành viờn trong P , anh ta sẽ cho mỗi thành viờn một thụng tin cục bộ nào đú được gọi là cỏc mảnh. Cỏc mảnh được phõn phỏt một cỏch bớ mật để khụng một thành viờn nào biết được mảnh được trao cho thành viờn khỏc.

Sơ đồ ngưỡng A(t, w) cú tớnh chất như sau:

B: tập cỏc thành viờn giữ cỏc mảnh.

P = {Pi : 1≤i≤w}: tập w thành viờn.

K : tập khoỏ.

S : tập tất cả cỏc mảnh.

Nếu |B| ≥ t thỡ họ phải cú khả năng tớnh được giỏ trị K theo một hàm của cỏc mảnh.

Nếu |B| < t thỡ họ khụng thể tớnh được K.

Cỏch xõy dựng sơ đồ ngưỡng Sharmir của D.

Pha khởi tạo

1. D chọn w phần tử khỏc nhau và khỏc khụng trong Zp và ký hiệu cỳng là xi , 1≤i≤w (ở đõy yờu cầu w ≥ p+1). Với 1≤i≤w , D sẽ trao giỏ trị xi cho Pi . Cỏc giỏ trị xi là cụng khai.

Phõn phối manh

2. Giả sử D muốn phõn chia khoỏ K∈ Zp , D sẽ chọn một cỏch bớ mật, (ngẫu nhiờn và độc lập) t-1 phần tử của Zp là a1, …, at-1.

3. Với 1≤i≤w, D tớnh: yi = a(xi) trong đú: a(x) = K + ∑−=1

1

t

j aj x j mod p

Sơ đồ ngưỡng của Sharmir được đưa ra năm 1979. Trong sơ đồ này, D xõy dựng một đa thức ngẫu nhiờn a(x) cú bậc tối đa là t-1. Trong đa thức này, thành phần hằng số là khoỏ K. Mỗi thành viờn Pi sẽ cú một điểm (xi, yi) trờn đa thức này.

Cỏch khụi phục khoỏ K của cỏc thành viờn

Một tập con Bi chủ yếu gồm t thành viờn cú thể tạo lại khoỏ như thế nào. Điều này chủ yếu được thực hiện bằng phộp nội suy đa thức. Cú hai phương phỏp thực hiện:

Phương phỏp 1:Giải hệ phương trỡnh tuyến tớnh.

Giải hệ phương trỡnh tuyến tớnh t ẩn, t phương trỡnh.

Giả sử rằng cỏc thành viờn Pi1,…, Pit muốn xỏc định khoỏ K. Họ biết rằng Yij = a(xij) 1≤j≤t, trong đú a(x) ∈Zp[x] là một đa thức được D chọn.

Vỡ a(x) cú bậc lớn nhất là (t-1) nờn ta cú thể viết: a(x) = a0+a1x+…+at-1xt-1

trong đú cỏc hệ số a0,…,at-1 là cỏc phần tử chưa biết của Zp, cũn a0 = K là khoỏ. Vỡ yij = a(xij), c nờn B cú thể thu được t phương trỡnh tuyến tớnh t ẩn a0,…, at-1, ở đõy tất cả cỏc phộp tớnh số học đều thực hiện trờn Zp. Nếu cỏc phương trỡnh độc lập tuyến tớnh thỡ sẽ cú một nghiệm duy nhất và ta được giỏ trị khoỏ a0.

Vớ dụ minh hoạ:

Giả sử rằng p = 17, t = 3, w = 15 và cỏc toạ độ x cụng khai là xi = i, 1≤i≤5. Giả sử B={P1,P3,P5}sẽ kết hợp cỏc mảnh của họ (tương ứng là 8, 10, 11). Ta viết a(x) như sau:

a(x)=a0+a1x+a2x2

tớnh a(1), a(3), a(5). Khi đú ta nhận đựơc 3 phương trỡnh tuyến tớnh sau trong Z17: a0+a1+a2 = 8

a0+3a1+9a2 = 10 a0+5a1+8a2 = 11

Hệ này cú nghiệm duy nhất trong Z17 : a0 = 13, a1 = 10, a2 = 2 Bởi vậy khoỏ sẽ là : K = a0 = 13

Ta đó phõn tớch sơ đồ Shamir theo quan điểm giải hệ phương trỡnh tuyến tớnh trờn Zp. Cú một phương phỏp khỏc dựa trờn cụng thức nội suy Lagrange cho cỏc đa thức. Cụng thức nội suy Lagrange cú dạng:

a(x)= ∑ = t j yi 1 ∏ ≠ ≤ ≤k t,k j 1 xij xit xit x − −

Một nhúm B gồm t thành viờn cú thể tớnh được a(x) bằng cỏch dùng cụng thức nội suy. Cú thể tớnh được hằng số K=a(0):

Tha x=0 vào cụng thức nội suy Lagrange: K=∑ = t j yi 1 ∏ ≠ ≤ ≤k t k jx xikxik , 1 Giả sử ta định nghĩa bj = ∏ ≠ ≤ ≤k t k xikjx xik , 1 Khi đú: K = ∑ = t i 1 bjyj Vớ dụ minh hoạ:

Cỏc thành viờn {P1, P3, P5} cú thể tớnh được b1, b2, b3 theo cụng thức cho ở trờn, chẳng hạn: x3 x5 b1= (x1-x3)(x1-x5) = 3*5*(2)-1 *(4)-1 mod 17 = 4 tương tự, ta cú: b2 = 3 và b3 = 11.

Sau đú, với cỏc mảnh cho trước tương ứng: 8, 10 và 11, họ cú thể thu được: K = 4*8+3*10+11*11 mod 17 = 13

Kết quả này giống kết quả thu được khi làm theo cỏch giải hệ phương trỡnh tuyến tớnh mà ta khụng cần tỡm hết cỏc hệ số của đa thức bớ mật.

Vấn đề cuối cùng trong phần này là một cấu trỳc đơn giản cho cỏc sơ đồ ngưỡng trong trường hợp đặc biệt w = t.

Cú t thành viờn, D muốn phõn chia khoỏ K, anh ta thực hiện theo giao thức sau: Sơ đồ ngưỡng A(t, t) trong Zm:

1. D chọn một cỏch bớ mật (độc lập và ngẫu nhiờn) t-1 phần tử của Zm: y1,…,yt-1 2. D tớnh : yi = K -∑ = t j 1 yj mod m 3. Với 1≤ i ≤ t, D trao mảnh yi cho Pi

Ta thấy rằng t thành viờn cú thể tớnh K theo cụng thức: K=∑

=

t

j 1 yj mod m

22. Trỡnh bày vấn đề Tạo đại diện Thụng điệp (Digest), Hàm băm (Hash Function)

- Khỏi niệm đại diện của Thụng điệp, Hàm băm, ý nghĩa của vấn đề. - Cỏc tớnh chất của Hàm băm.

- Trỡnh bày ý tưởng chớnh của một số Hàm băm hiện nay. - Cho vớ dụ minh hoạ.

Khái niệm đại diện của Thông điệp, Hàm băm, ý nghĩa của vấn đề.

a. Tại sao cần đại diện thông điệp và hàm băm

Việc sử dụng cỏc hệ mật mó và cỏc sơ đồ chữ ký số thường là mó húa và ký số trờn

từng bit của thụng tin, thời gian để mó húa và ký sẽ tỷ lệ thuận với dung lượng của thụng tin. Thờm vào đú cú thể xảy ra trường hợp: Với nhiều bức thụng điệp đầu vào khỏc nhau, sử dụng hệ mật mó, sơ đồ ký số giống nhau (cú thể khỏc nhau) thỡ cho ra kết quả bản mó, bản ký số giống nhau (ỏnh xạ N-1: nhiều – một), như Hỡnh 4. Điều này sẽ dẫn đến một số rắc rối về sau cho việc xỏc thực thụng tin.

Hỡnh 4: Nhiều thụng điệp nguụ̀n cho cựng một kết qua đớch sau mã hóa hay ký số.

Với cỏc sơ đồ ký số, chỉ cho phộp ký cỏc bức thụng điệp (thụng tin) cú kớch thước nhỏ và sau khi ký, bản ký số cú kớch thước gấp đụi bản thụng điệp gốc – vớ dụ với sơ đồ chữ ký chuẩn DSS chỉ ký trờn cỏc bức thụng điệp cú kớch thước 160 bit, bản ký số sẽ cú kớch thước 320 bit. Trong khi đú trờn thực tế, ta cần phải ký cỏc thụng điệp cú kớch thước lớn hơn nhiều, chẳng hạn vài chục MegaByte. Hơn nữa, dữ liệu truyền qua mạng khụng chỉ là bản thụng điệp gốc, mà cũn bao gồm cả bản ký số (cú dung lượng gấp đụi dung lượng bản thụng điệp gốc), để đỏp ứng việc xỏc thực sau khi thụng tin đến người nhận.

Một cỏch đơn giản để giải bài toỏn (với thụng điệp cú kớch thước vài chục MB) này là chặt thụng điệp thành nhiều đoạn 160 bit, sau đú ký lờn cỏc đoạn đú độc lập nhau.

Nhưng, biện phỏp này cú một số vấn đề trong việc tạo ra cỏc chữ ký số:

Thứ nhất : với một thụng điệp cú kớch thước a, thỡ sau khi ký kớch thước của chữ ký sẽ là 2a (trong trường hợp sử dụng DSS).

Thứ hai: với cỏc chữ ký “an toàn” thỡ tốc độ chậm vỡ chỳng dùng nhiều phộp tớnh số học phức tạp như số mũ modulo.

Thứ ba : vấn đề nghiờm trọng hơn đú là kết quả sau khi ký, nội dung của thụng điệp cú thể bị xỏo trộn cỏc đoạn với nhau, hoặc một số đoạn trong chỳng cú thể bị mất mỏt, trong khi người nhận cần phải xỏc minh lại thụng điệp. Ta cần phải bảo vệ tớnh toàn vẹn của thụng điệp.

Giải phỏp cho cỏc vấn đề vướng mắc đến chữ ký số là dùng Thụng điệp đại diện

b. Khái niệm đại diện thông điệp

Mỗi bức thụng điệp kớch thước tùy ý sau khi băm sẽ được thu gọn thành bản băm duy nhất – được gọi là văn bản đại diện – cú kớch thước cố định (128 bit hoặc 160 bit).

c. Định nghĩa hàm băm

Hàm băm là cỏc thuật toỏn khụng sử dụng khúa để mó húa (ở đõy ta dùng thuật ngữ “băm” thay cho “mó húa”), nú cú nhiệm vụ “lọc” (băm) thụng điệp được đưa vào theo một thuật toỏn h một chiều nào đú, rồi đưa ra một bản băm – văn bản đại diện – cú kớch thước cố định.

e. Sơ đồ mụ tả băm thụng điệp

f. Đặc tớnh quan trọng của hàm băm

Hàm băm h là hàm băm một chiều (one-way hash) với cỏc đặc tớnh sau: Với thụng điệp đầu vào x thu được bản băm z = h(x) là duy nhất.

Nếu dữ liệu trong thụng điệp x thay đổi hay bị xúa để thành thụng điệp x’ thỡ h(x’)

h(x). Cho dù chỉ là một sự thay đổi nhỏ hay chỉ là xúa đi 1 bit dữ liệu của thụng điệp

thỡ giỏ trị băm cũng vẫn thay đổi. Điều này cú nghĩa là: hai thụng điệp hoàn toàn khỏc nhau thỡ giỏ trị hàm băm cũng khỏc nhau.

Nội dung của thụng điệp gốc khụng thể bị suy ra từ giỏ trị hàm băm. Nghĩa là: với thụng điệp x thỡ dễ dàng tớnh được z = h(x), nhưng lại khụng thể (thực chất là khú) suy ngược lại được x nếu chỉ biết giỏ trị hàm băm h(x).

g. í nghĩa của việc dựng thụng điệp và hàm băm

Hàm băm đó trợ giỳp cho cỏc sơ đồ ký số nhằm giảm dung lượng của dữ liệu cần thiết để truyền qua mạng (lỳc này chỉ cũn bao gồm dung lượng của bức thụng điệp gốc và 256 bit (sử dụng MD) hay 320 bit (sử dụng SHA) của bức ký số được ký trờn bản đại diện của thụng điệp gốc), tương đương với việc giảm thời gian truyền tin qua mạng.

Thông điệp đầu vào x

dạng văn bản, hình ảnh, âm thanh

Kích th ớc tùy ý

Băm thông điệp thuật toán băm h(x)

Bản băm Z=h(x ) Kích th ớc cố định

Hàm băm thường kết hợp với chữ ký số để tạo ra một loại chữ ký điện tử vừa an toàn hơn (khụng thể cắt/dỏn) vừa dùng để kiểm tra tớnh toàn vẹn của thụng điệp, nờn tạo được lũng tin của người dùng

Sơ đồ hàm băm trợ giỳp cho việc

Sơ đồ hàm băm trợ giỳp cho việc ký sốký số:: việc gửiviệc gửi

Bản băm

z = h(x)

z = h(x) có độ dài cố định (tùy thuộc vào thuật toán sử dụng)

Bức thông điệp đầu vào x

Băm bức thông điệp

h(x)

(sử dụng thuật toán băm)

Ký số trên bản băm

y = sigK(z)

sử dụng khóa bí mật của ng ời gửi

Dữ liệu cần gửi, bao gồm: (x, y)

Sơ đồ hàm băm trợ giỳp cho việc

Sơ đồ hàm băm trợ giỳp cho việc ký sốký số:: việc nh ậnviệc nh ận

Các tính chất của Hàm băm.

Việc đưa hàm băm h vào dùng trong sơ đồ chữ ký số khụng làm giảm sự an toàn của sơ đồ chữ ký số vỡ nú là bản túm lược thụng bỏo – bản đại diện cho thụng điệp – được ký chứ khụng phải là thụng điệp gốc. Điều cần thiết đối với h là cần thỏa món một số tớnh chất sau để trỏnh bị giả mạo:

Tớnh chất 1: Hàm băm h là khụng va chạm yếu: Xột một kiểu tấn cụng như sau:

Đỏng lẽ: thụng tin phải được truyền đỳng từ A đến B (Hỡnh 7a)

Hỡnh 7a: Cỏch đi đỳng của thụng tin

Dữ liệu nhận đ ợc, bao gồm: (x, y)

Thông điệp đầu vào x

Ký số trên bản băm

y

sử dụng khóa công khai của ng ời gửi để xác minh

Băm thông điệp h(x)

Bản băm z

Bản băm h(x)

So sánh

Nhưng: trờn đường truyền, thụng tin bị lấy trộm và bị thay đổi (Hỡnh 7b)

Hỡnh 7b: Thụng tin bị lấy trộm và bị thay đổi trờn đường truyền

Hỡnh 7: Sơ đụ̀ mụ ta cho kiểu tấn cụng của tớnh chất 1

Người A gửi cho B (x, y) với y = sigK(h(x)). Nhưng trờn đường truyền, tin bị lấy trộm. Tờn trộm, bằng cỏch nào đú tỡm được một bản thụng điệp x’ cú h(x’) = h(x) mà x

x. Sau đú, hắn đưa x’ thay thế x rồi truyền tiếp cho người B. Người B nhận được và

vẫn xỏc thực được thụng tin đỳng đắn.

Do đú, để trỏnh kiểu tấn cụng như Hỡnh 7b, hàm h phải thỏa món tớnh khụng va chạm yếu: Hàm băm h là khụng va chạm yếu nếu khi cho trước một bức điện x, khụng thể tiến hành về mặt tớnh toỏn để tỡm ra một bức điện x’x mà h(x’) = h(x).

Tớnh chất 2: Hàm băm h là khụng va chạm mạnh:

Xột một kiểu tấn cụng như sau: Đầu tiờn, tờn giả mạo tỡm ra được hai bức thụng điệp x’ và x (x’≠x) mà cú h(x’) = h(x) (ta coi bức thụng điệp x là hợp lệ, cũn x’ là giả mạo). Tiếp theo, hắn đưa cho ụng A và thuyết phục ụng này kớ vào bản túm lược h(x) để nhận được y. Khi đú (x’, y) là bức điện giả mạo nhưng hợp lệ.

Để trỏnh kiểu tấn cụng này, hàm h phải thỏa món tớnh khụng va chạm mạnh:

Hàm băm h là khụng va chạm mạnh nếu khụng cú khả năng tớnh toỏn để tỡm ra hai bức thụng điệp x và x’mà xx’ và h(x) = h(x’).

Tớnh chất 3: Hàm băm h là hàm một chiều:

Xột một kiểu tấn cụng như sau: Việc giả mạo cỏc chữ ký trờn bản túm lược z

thường xảy ta với cỏc sơ đồ chữ ký số. Giả sử tờn giả mạo tớnh chữ ký trờn bản túm lược

z, sau đú hắn tỡm một bản thụng điệp x’ được tớnh ngược từ bản đại diện z, z = h(x’). Tờn trộm thay thế bản thụng điệp x hợp lệ bằng bản thụng điệp x’ giả mạo, nhưng lại cú

z = h(x’). Và hắn ký số trờn bản đại diện cho x’ bằng đỳng chữ ký hợp lệ. Nếu làm được như vậy thỡ (x’, y) là bức điện giả mạo nhưng hợp lệ.

Để trỏnh được kiểu tấn cụng này, h cần thỏa món tớnh chất một chiều: Hàm băm h là một chiều nếu khi cho trước một bản túm lược thụng bỏo z thỡ khụng thể thực hiện về mặt tớnh toỏn để tỡm ra thụng điệp ban đầu x sao cho h(x) = z .

Trình bày ý tởng chính của một số Hàm băm hiện nay.

3.1. Giới thiệu chung

Các hàm băm hiện nay đợc dùng thờng là thuộc dòng MD hoặc SHA

Dòng MD có thể băm các thông điệp có kích thớc tùy ý để thu đợc văn bản đại diện có kích thớc 128 bit.

Các hàm băm MD2, MD3. MD4, MD5

Dòng SHA có thể băm các thông điệp có kích thớc tùy ý để thu đợc văn bản đại diện có kích thớc 160 bit.

Sơ đồ hoạt động của các hàm băm

3.2. ý tởng của một số hàm băm

1. MD4:

Input : Thụng điệp cú độ dài tùy ý

Output: Bản băm cú đọ dài cố định 128 bit

Bội số của 512 bit

Đoạn thông điệp x ban đầu 100… … … 000 64 bit biểu diễn nhị phânđộ dài thông điệp

Một phần của tài liệu CÂU HỎI ÔN TẬP AN TOÀN VÀ BẢO MẬT DỮ LIỆU ( có đáp án) (Trang 43 - 55)

Tải bản đầy đủ (DOC)

(55 trang)
w