Sơ đồ chia sẻ bí mật khóa ký

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu một số kỹ thuật an toàn thông tin dùng trong rút tiền điện tử (Trang 49 - 53)

Để “chia” khóa bí mật K thành nhiều mảnh, ta sử dụng giao thức “chia sẻ bí mật” Sharmir đƣợc xây dựng trên sơ đồ ngƣỡng A(t,m).

Sơ đồ ngưỡng A(t,m):

K là khóa bí mật cần chia “chia”.

t, m là các số nguyên dƣơng thỏa mãn t ≤ m.

P là một tập gồm m thành viên.

Sơ đồ ngưỡng A(t, m) là phƣơng pháp phân chia khoá K cho một tập P gồm

m thành viên Pi , 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 đó.

Ví dụ có m = 4 thủ quỹ giữ két bạc ngân hàng. Xây dựng sơ đồ “chia sẻ bí

mật” sao cho phải có tối thiểu có t = 3 thủ quỹ mới có thể ký xác nhận tiền cho

ngƣời dùng, và là khó (gần nhƣ khơng thể) với một nhóm dƣới 3 thủ quỹ. Đó là sơ đồ ngƣỡng A(3, 4).

Đơn giản ta có thể xem ngƣời D làm nhiệm vụ phân phối khóa khơng thuộc nhóm P. Khi D muốn phân chia 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 đó về K (nghĩa là mỗi ngƣời trong P khơng biết những ngƣời cịn lại nắm giữ thơng tin gì), đƣợc gọi là các “mảnh khóa”. Các mảnh khóa đƣợ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 khóa của thành viên khác.

Sơ đồ ngƣỡng Sharmir

Đƣợc đƣa ra năm 1979.

Là sơ đồ ngƣỡng A(t, t) trong Zm với trƣờng hợp đặc biệt khi t = m

* Chia sẻ khóa bí mật K.

- 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 là: y1, …, y t-1 - D thực hiện tính các mảnh khóa yi: yi = K -   t j 1 yj (mod m) với 1≤ i ≤ t. Sau đó trao mảnh yi cho Pi

* Khơi phục khóa bí mật K.

Để khơi phục đƣợc khóa K, phải có cả t thành viên cùng hợp tác và K đƣợc tính theo cơng thức: K = yi -   t j 1 yj (mod m) 2.3.1. Chia sẻ khóa bí mật K

Ngƣời D thực hiện chia khóa bí mật K  Zp thành các mảnh để trao cho nhân viên ngân hàng nhƣ sau:

- D chọn số nguyên tố p  Zp và m phần tử khác nhau xi  Zp (1≤ i ≤ m; xi ≠ 0). Trong đó xi đƣợc cơng khai. D trao giá trị xi cho thành viên Pi. (1≤ i ≤ m)

- D chọn bí mật, ngẫu nhiên t-1 phần tử của Zp là a1, …, a t-1. Lập đa thức trong Zp là : P(x) = K +   1 1 t j a j x j mod p. Với 1≤ i ≤ m - D tính giá trị các mảnh khóa yi : yi = P(xi)

- D trao một cách bí mật mảnh yi cho Pi để sao cho khơng ai biết mảnh khóa của ai.

Chú ý : Đa thức P(x) có bậc tối đa là t-1:

P(x) = K +   1 1 t j a j x j mod p. Với 1≤ i ≤ m

Với thành phần hằng số là khố bí mật K. Mỗi thành viên Pi sẽ có một điểm (x i, yi) trên đa thức.

Ví dụ: Chia sẻ khóa bí mật K = 15

Khóa K=15 cần chia thành 3 mảnh cho 3 ngƣời P1, P3, P5.

- Chọn số nguyên tố p = 17, chọn m = 5 phần tử xi = i trong Zp, i =1, 2, 3, 4, - D trao giá trị công khai xi cho Pi .

- D chọn bí mật t - 1 = 2 phần tử trong Zp : a1 =10, a2 = 2. Lập đa thức P(x): P(x)= K + ∑ t-1 j=1 aj xj j (mod p) = 13 + a1 x + a2 x2 (mod 17). - D tính yi = P( x i ), 1 ≤ i ≤ m, trao mảnh yi cho Pi :

y3 = P(x3 ) = P(3) = 13 + a1 .3 + a2 .32 = 13 + 10 .3 + 2 .32 = 10 y5 = P(x5 ) = P(5) = 13 + a1 .5 + a2 .52 = 13 + 10 .5 + 2 .52 = 11

2.3.2. Khơi phục khóa bí mật K.

Có hai phƣơng pháp: Giải hệ phƣơng trình tuyến tính và dùng cơng thức nội suy Lagrangre.

Giải hệ phương trình tuyến tính khơi phục K

Giải hệ phƣơng trình tuyến tính t ẩn số, 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 = P(x ij), 1≤ j ≤ t, trong đó P(x)  Zp [x] là đa thức do phân phối khóa D chọn.

Vì P(x) có bậc lớn nhất là (t-1) nên có thể viết

P(x) = a0 + a1 x + …+ a t-1 x t-1

trong đó các hệ số a0 , a1 , … a t-1 là chƣa biết của Z p, còn a0 = K là khố. Vì yij = P (x ij), nên ta có hệ phƣơng trình tuyến tính t ẩn số, t phƣơng trình. Chú ý ở đây các phép tính số học đều thực hiện trên Z p. 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, trong đó giá trị khố a0 = K.

Ví dụ: Khơi phục khóa bí mật K = 13

Trong ví dụ 1, ta đã biết D chọn số nguyên tố p = 17, chọn m = 5 phần tử xi = i. trong Zp, i =1, 2, 3, 4, 5. D trao giá trị cơng khai xi cho Pi .

Giả sử nhóm thành viên giữ các “mảnh khóa“ B = {P1, P3, P5} sẽ kết hợp các mảnh của họ tƣơng ứng là y1 = 8, y3 = 10, y5 = 11.

B biết đa thức:

P(x) = K + ∑ t-1 j=1ajxj j (mod p) = a0 + a1 x + a2x2 (mod 17). Các phƣơng trình cụ thể trong Z17 là

a0 + a1 + a2 = 8 (mod 17). a0 + 3 a1 + 9 a2 = 10 (mod 17). a0 + 5 a1 + 8 a2 = 11 (mod 17).

Hệ này có nghiệm duy nhất trong Z17 là a0 = 13, a1 = 10, a2 = 2. Nhƣ vậy khố đƣợc khơi phục lại là : K = a0 = 13

Chương 3: CÀI ĐẶT THỬ NGHIỆM

Hệ thống ngân hàng và ngƣời dùng đều thực hiện các giao dịch trên mạng Internet. Ngƣời dùng lƣu đồng tiền điện tử trên máy tính cá nhân, thẻ thông minh,…để thực hiện các giao dịch

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu một số kỹ thuật an toàn thông tin dùng trong rút tiền điện tử (Trang 49 - 53)

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

(66 trang)