Cho p=25307, α=2
Người dùng U chọn au=3578. Khi đú bu=23578 mod 25307= 6113 Người dùng V chọn av=19956. Khi đú bv=219956 mod 25307 = 7984
Mó khúa chung được tớnh bởi người dùng U: Kuv = 79843578 mod 25307= 3694 Mó khúa chung được tớnh bởi người dùng V: Kvu = 61137984 mod 25307= 3694 Tớnh an toàn:
- Giả sử biết cỏc giỏ trị p=25307, α=2 và bu=6113
- Từ cụng thức 6113=2au mod23507, ta phải xỏc định giỏ trị của au. Cú thể xỏc định bằng cỏch thử lần lượt cỏc giỏ trị au cho đến khi thoả món cụng thức trờn. Trong trường hợp cỏc giỏ trị p và α nhỏ như trờn, au cú thể được tỡm ra trong thời gian ngắn. Tuy nhiờn nếu p và α lớn thỡ việc thay thế so sỏnh này sẽ diễn ra trong thời gian rất dài và khụng khả thi trong thời gian thực.
17. Trỡnh bày Giao thức Thoả thuận khoỏ “Trạm tới Tram” (Station – To – Station”
- Giao thức “Trạm tới Tram”.
- Cỏc đặc điểm đặc trưng của giao thức “Trạm tới Tram”.
- Viết chương trỡnh thực hiện theo giao thức này.
18. Trỡnh bày Giao thức Thoả thuận khoỏ MTI (Matsumoto – Takashima – Imai)
- Giao thức MTI.
- Cỏc đặc điểm đặc trưng của giao thức MTI.
- Vớ dụ bằng số minh hoạ việc Thoả thuận khoỏ theo giao thức MTI. - Viết chương trỡnh thực hiện theo giao thức này.
Giao thức cần dùng trong phần trờn cần 3 lần chuyển tin để tạo lập khoỏ chung. MTI(1986) đề nghị được cải tiến chỉ dùng mộ giao thức gồm 2 lần chuyển tin(một từ U đến V, và một từ V đến U) để thoả thuận khoỏ như sau:
Ta giả sử rằng trước khi thực hiện giao thức, TT đó kớ cấp cho mỗi người dùng chứng chỉ U theo cỏch làm trong mục 2(Sơ đồ phõn phối khoỏ Diffie_Hellman):
C(U)=(ID(U), bu,sigTT(ID(U), bu));
và thuật toỏn kiểm thử chữ kớ VerTT là cụng khai. Cacc bu khụng tạo nờn khoỏ phiờn, mà sẽ được tạo ra trong mỗi lần truyền tin.
Giao thức trao đổi khoỏ phiờn MTI được thực hiện như sau: 1. U chọn ngẫu nhiờn ru (0 ≤ ru≤ p-2) và tớnh su = ru
α mod p, rồi gửi (C(U),
su) cho V.
2. U chọn ngẫu nhiờn rv(0 ≤ rv≤ p-2) và tớnh sv = rv
α mod p, rồi gửi (C(V), sv) cho U.
3. U tớnh K = sau
v bru
v mod p, với gớa trị bv thu được từ C(V), V tớnh K = sav
u brv
u mod p, với giỏ trị bu thu được từ C(U). (cả hai cỏch tớnh K đều cho K = ruav+rvau
α mod p)
Giao thức này cũng cú khả năng giữ bớ mật khúa K như đối với giao thức Diffie- Hellman, trước sự tấn cụng thụ động.
Tuy nhiờn, vỡ khụng cú chứng chỉ đối với cỏc giỏ trị su, sv nờn vẫn cú nguy cơ của sự tấn cụng tớch cực bằng việc đỏnh trỏo giữa đường bởi một W nào đú:
U W V
Khi đú, U cú thể tớnh khúa: K = ruav+r'vau
α mod p,
Và V tớnh khúa theo cụng thức: K= r'uav+rvau
α mod p.
Hai giỏ trị này khỏc nhau, nếu khụng giỳp U và V truyền tin cho nhau, nhưng W khụng cú khả năng tớnh được giỏ trị nào trong hai giỏ trị đú, vỡ khụng biết au, av. Vậy, khỏc với giao thức Diffie- Hellman ở mục 2, lần này việc đỏnh trỏo của W chỉ cú thể phỏ rối chứ khụng thể đỏnh cắp được thụng tin.
19. Trỡnh bày Giao thức Thoả thuận khoỏ Girault (Trao đụ̉i khoỏ khụng cần chứng chỉ).
- Giao thức Girault.
- Cỏc đặc điểm đặc trưng của giao thức Girault.
- Vớ dụ bằng số minh hoạ việc Thoả thuận khoỏ theo giao thức Girault. - Viết chương trỡnh thực hiện theo giao thức này.
Sơ đồ Girault được đề xuất năm 1991. Trong giao thức trao đổi khúa, người dùng U khụng cần sử dụng chứng chỉ C(U), mà thay bằng một khúa cụng khai tự chứng thực, được cấp trước bởi một trung tõm tin cậy.
Phương phỏp này sử dụng kết hợp cỏc đặc tớnh của RSA và logarit rời rạc. Giả thử n=pq, p=2p1+1, q=2q1+1, p, q, p1, q1 đều là số nguyờn tố. Nhúm nhõn Zn* đẳng cấu với Zp* * Zq*. Cấp cao nhất của một phần tử trong Zn* là bội chung bộ nhất của p-1 và q-1, tức là bằng 2p1q1. Giả sử α là một phần tử cấp 2p1q1 của Zn* . Nhúm cyche sinh bởi
α được ký hiệu là G, ta dùng G để xột bài toỏn logarit rời rạc trong nú.
Cỏc số n,α là cụng khai. Chỉ TT biết phõn tớch thành p,q. Trung tõm TT chọn một số mũ cụng khai e với (e,φ(n)) =1 , và giữ bớ mật d=e-1 mod (φ(n))
C(U),
C(U),
C(U),
Mỗi người dùng U cú một căn cước ID(U) và được TT cấp một khoỏ cụng khai tự chứng thực pu như sau:
U chọn bớ mật và au và tớnh bu = au
α mod n, rồi gửi au, bu cho TT. TT thử lại bu = au
α mod n, rồi tớnh: pu = (bu – ID(U))d mod n và cấp pu cho U. Thực ra để cấp phỏt pu cho U, TT khụng cần biết au; nhưng việc TT biết chắc là bu =
u
a
r mod n sẽ trỏnh được việc cấp phỏt sai cho những lầm cho những kẻ tấn cụng những
khoỏ cụng khai tự chứng minh một cỏch nhầm lẫn.
Sau đú, giao thức trao đổi khoỏ giữa U và V được thực hiện như sau: U chọn ngẫu nhiờn ru, tớnh su = ru
α mod n, và gửi (ID(U), pu, su) cho V. V chọn ngẫu nhiờn rv, tớnh sv = rv
α mod n, và gửi (ID(V), pv, sv) cho U. U tớnh khúa K= sau v ( pe v + ID(V))ru mod n V tớnh khúa K= sav u ( pe u + ID(U))rv mod n
Cả hai khúa đú đều bằng nhau và bằng K = ruav+rvau
α mod n
Bằng những lập luận như đó trỡnh bày như cỏc phần trờn, ta dễ thấy rằng một người thứ ba Ư khú mà tạo ra thụng tin giả tạo (ID(U), pu,su) để gửi đến V, nếu tấn cụng bằng cỏch đỏnh trỏo giữa đường thỡ cú để phỏ rồi ngăn cản U,V tạo lập khoỏ chung, nhưng khụng thể đỏnh cắp thụng tin trao đổi giữa Uvà V.
Cũn lại một vấn đề: Tại sao TT cần biết au và thử bu= au
α mod n trước khi cấp pu cho U? Ta giả sử rằng TT khụng biết auvà cấp Pu=(bu, ID(U)) mod n cho U cú thể xảy ra chuyện gỡ?
W cú thể chọn một giỏ trị rởm a’u, và tớnh b’u= a'u
α mod n, rồi tớnh: b’w=b’u – ID(U) + ID(W)
Sau đú nú đưa b’u và ID(W) cho TT. Giả sử TT cấp cho W: p’w = (b’w – ID(W))d mod n
Và chỳ ý rằng, do: b’w – ID(W) = b’u – ID(U)
nếu như vậy, W đó được cung cấp: p’u = p’n = (b’u – ID(U))d mod n Bấy giờ giả sử U và V thực hiện giao thức, và W xen vào giữa:
U W V
Khi đú V và W’ tớnh được cùng một khúa: K’ = r'uav+rva'u α mod n = sau v ' ( pe v + ( ))' V ID ru mod n Cũn U tớnh được khúa: K = ruav+rvau α mod n
V và W’ cùng cú một khúa khỏc với U, nhưng V vẫn nghĩ rằng mỡnh chia sẻ khúa với U. Như vậy, W cú thể giải mó mọi thụng bỏo mà V gửi cho U.
Viết TT biết au và thử bu = au
α mod n trước khi cấp pu cho U tỏc dụng chống lại sự tấn cụng đỏnh trỏo như vậy của W.
20. Trỡnh bày vấn đề Chia sẻ bớ mật (Secret Sharing)
- Khỏi niệm Chia sẻ bớ mật.
- Trỡnh bày ý tưởng chớnh của một số Sơ đồ Chia sẻ bớ mật hiện nay. - Cho vớ dụ minh hoạ.
1. Khỏi niệm
Sơ đụ̀ chia sẻ bớ mọ̃t dựng để chia sẻ một manh thụng tin cho n thành viờn sao cho chỉ những tọ̃p con hợp thức cỏc thành viờn mới có thể khụi phục lại thụng tin bớ mọ̃t, cũn lại, bất kỳ tọ̃p con khụng hợp thức cỏc thành viờn nào cũng khụng thể làm được điều đó. Một loại sơ đồ chia sẻ bớ mật đặc biệt là sơ đồ ngưỡng theo đú cỏc tập con hợp thức là tập bất kỳ gồm t hoặc nhiều hơn t thành viờn. Cỏc sơ đồ như vậy cũn được gọi là sơ đồ ngưỡng (t, n) trong đú n là tổng số thành viờn.
ID(U), pu, ru α ID(U), p’u, mod n ID(V), pv, rv α ID(V), pv, rv α
Cỏc sơ đồ chia sẻ bớ mật cú ứng dụng rất rộng rói trong thực tế, như chia sẻ khoỏ thụng tin để mở kột hoặc chia sẻ khoỏ thụng tin để ký văn bản. Cỏc sơ đồ chia sẻ bớ mật đầu tiờn được đưa ra độc lập bởi Shamir và Blakley.
2. í tưởng chớnh của một số Sơ đồ Chia sẻ bớ mật hiện nay
a. Sơ đồ ngưỡng Shamir
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, D 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.
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.
Sơ đồ ngưỡng:
Pha khởi tạo
1. D chọn w phần tử khỏc nhau và khỏc 0 trong Zp và ký hiệu chỳ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 4. Với 1≤i≤w, D sẽ trao mảnh yi cho Pi
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.
b. Cấu trỳc khụng gian vectơ Brickell
Giả sử Ґ là một cấu trỳc truy nhập và cho (Zp)d là khụng gian vectơ của tất cả cỏc bộ d trờn Zp trong đú p là số nguyờn tố và d ≥ 2. Giả sử tồn tại hàm:
Φ: P→ (Zp)d thoả món tớnh chất:
(1, 0. …, 0) ∈<Φ(Pi): Pi∈ B> ⇔ B ∈Ґ (*)
núi cỏch khỏc, vectơ (1, …, 0) cú thể được biểu thị như một tổ hợp tuyến tớnh cỏc vectơ trong tập {Φ(Pi): Pi ∈ B} khi và chỉ khi B là một tập con hợp thức.
Bõy giờ, giả sử tồn tại một hàm Φ thoả món tớnh chất (*) (Núi chung, việc tỡm một hàm như vậy thường phải dùng phương phỏp thử và sai, mặc dù cú một số phương phỏp xõy dựng hàm Φ thớch hợp đối với một số cấu trỳc truy nhập nhất định). Ta sẽ xõy dựng một sơ đồ chia sẻ bớ mật lý tưởng với K= S(Pi) = Zp, 1≤ i ≤ w. Cỏc quy tắc phõn phối của sơ đồ như sau:
Với mỗi vectơ a_ = (a1,…, ad) Zpd, ta xỏc định một quy tắc phõn phối f _ a∈F a1 trong đú: f _ a(x)= a_Φ(x)
với mọi x ∈ P và phộp “.” Là phộp lấy tớch trong theo modulo p.
Sơ đồ Brickell được trỡnh bày như sau:
Giai đoạn khởi đầu:
1. Với 1≤ i ≤ w, D sẽ trao vectơ (Pi) (Zp)d cho Pi. Cỏc vectơ này được cụng khai.
Phõn phối manh:
2. Giả sử D muốn chia sẻ một khoỏ K Zp, D sẽ chọn một cỏch bớ mật (ngẫu nhiờn, độc lập) d-1 phần tử của Zp là a2, …, ad
3. Với 1≤ i ≤ w, D tớnh: yi = (Pi) trong đú = (K, a2, …, ad) 4. Với 1≤ i ≤ w, D sẽ trao mảnh yi cho Pi
c. Mạch đơn điệu (Benaloh, Leichter)Định nghĩa Mạch đơn điệu Đị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