Tải bản đầy đủ (.pdf) (27 trang)

Đề tài-Tìm Hiểu Về Sơ Đồ Xưng Danh Guillou Quisquater

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (522 KB, 27 trang )

Báo Cáo Bài Tập Lớn
Môn: An Toàn Bảo Mật Thông Tin

Đề Tài : Tìm Hiểu Về Sơ Đồ Xưng Danh
Guillou Quisquater
GV HD:
SV TH:

I. TÌM HIỂU VỀ SƠ ĐỒ XƢNG
DANH

A. Sơ đồ xƣng danh là gì ?
• Xưng danh và xác nhận danh tính là thuật ngữ
ngày nay được nhắc đến rất nhiều, nó đảm bảo
rằng bên nhận văn bản đúng là bên ta định
nhằm tới, hay chắc chắn rằng các thao tác
trên văn bản là do bên được phép thực hiện.
Cho đến giữa những năm 1970 người ta vẫn
còn cho rằng xưng danh và xác nhận danh tính
với mã hóa thực chất cùng là một mục tiêu an
toàn thông tin.


• Nhưng cùng với khám phá ra hàm băm, chữ ký
điện tử, người ta nhận ra rằng đó là hai mục
tiêu an toàn thông tin, đặc biệt là khi các hoạt
động này thông qua mạng. Mục tiêu an toàn
của việc xưng danh là đảm bảo sao cho khi
“nghe” một chủ thể U nào đó xưng danh với
chủ thể V. Bất kỳ ai khác U cũng không thể
sau đó mạo nhận mình là U.


2. Các dạng sơ đồ xƣng danh


• Sơ đồ xưng danh Shnorr
Trong sơ đồ này có sự tham gia của 1 cơ quan ủy
thác TA. Việc xác lập chữ ký và xác định danh tính
của sơ đồ dựa vào việc chọn số p sao cho bải toán
logarit là khó giải. Sơ đồ Schnorr đã được thiết kế
với tốc độ nhanh và hiệu quả theo quan điểm cả về
tính toán lẫn lượng thông tin cần thiết để trao đổi
trong giao thức. Nó cũng được thiết kế nhằm tối
thiểu hoá lượng tính toán. Nhưng vấn đề an toàn
của sơ đồ vẫn khiến nhiều người không hoàn toàn
yên tâm.
• sơ đồ xưng danh Okamoto
Tương tự như sơ đồ Shnorr về việc chọn xác
lập xưng danh. Sự khác nhau giữa sơ đồ của
Okamoto và Schnorr là ở chỗ, ta có thể chứng
minh rằng sơ đồ Okamota an toàn miễn là bài
toán logarithm rời rạc không giải được.
• sơ đồ xưng danh Guillou-Quisquater
Sơ đồ xưng danh Guillou Quisquater dựa vào 1
hệ mật mã khác so với 2 sơ đồ trên, đó là hệ
mật mã RSA. Tiến trình định danh và kiểm
định sẽ được trình bày sau đây.

B. SƠ ĐỒ XƢNG DANH GUILLOU-
QUISQUATER

• Trong phần này sẽ mô tả một sơ đồ định danh

khác do Guillou và Quisquater đưa ra , nhưng
không phải là bài toán tính loogarit rời rạc mà là
bài toán dựa trên RSA. Việc thiết lập sơ đồ như
sau: TA chọn 2 số nguyên tố p và q và lập tích n
=pq. Giá trị của p và q được giữ bí mật trong khi
n công khai. Giống như trước đây, p và q nên
chọn đủ lớn để việc phân tích n không thể thực
hiện được. Cũng như vậy, TA chọn số nguyên tố
đủ lớn b giữ chức năng tham số mật như số mũ
mật trong RSA. Giả thiết b là số nguyên tố dài 40
bít. Cuối cùng TA chọn sơ đồ chữ kí và hàm hash


1. Hệ mật mã RSA


• Mô tả sơ lƣợc
Thuật toán được Ron Rivest, Adi Shamir và Len
Adleman mô tả lần đầu tiên vào năm 1977 tại Học
viện Công nghệ Massachusetts (MIT).
Thuật toán RSA có hai khóa: khóa công khai (hay
khóa công cộng) và khóa bí mật (hay khóa cá nhân).
Mỗi khóa là những số cố định sử dụng trong quá trình
mã hóa và giải mã. Khóa công khai được công bố
rộng rãi cho mọi người và được dùng để mã hóa.
Những thông tin được mã hóa bằng khóa công khai
chỉ có thể được giải mã bằng khóa bí mật tương ứng.
Nói cách khác, mọi người đều có thể mã hóa nhưng
chỉ có người biết khóa cá nhân (bí mật) mới có thể
giải mã được.


Thủ tục tạo khóa

• Chọn 2 số nguyên tố lớn p và q với , lựa chọn
ngẫu nhiên và độc lập.
• Tính: n=p.q
• Tính: giá trị hàm số Ơle Ф(n) = (p-1)(q-1).
• Chọn một số tự nhiên e sao cho 1 < e < Ф(n)
và là số nguyên tố cùng nhau với Ф(n) .
• Tính: d sao cho d.e ≡ (mod Ф(n)).
Một số lưu ý:

• Các số nguyên tố thường được chọn bằng
phương pháp thử xác suất.
• Các bước 4 và 5 có thể được thực hiện
bằng giải thuật Euclid mở rộng.
• Bước 5 có thể viết cách khác: Tìm số tự
nhiên x sao cho d = cũng là số tự
nhiên. Khi đó sử dụng giá trị d mod (p-1(q-1)
• Từ bước 3, PKCS#1 v2.1 sử dụng λ = LCM(p-
1)(q-1) thay cho Ф = (p-1)(q-1)

Mã hóa

• Giả sử Bob muốn gửi đoạn thông tin M cho Alice.
Đầu tiên Bob chuyển M thành một số m < n theo
một hàm có thể đảo ngược (từ m có thể xác định
lại M) được thỏa thuận trước. Quá trình này được
mô tả ở phần Chuyển đổi văn bản rõ.
• Lúc này Bob có m và biết n cũng như e do Alice

gửi. Bob sẽ tính c là bản mã hóa của m theo công
thức: C = m
e
mod n
• Hàm trên có thể tính dễ dàng sử dụng phương
pháp tính hàm mũ (theo môđun) bằng (thuật toán
bình phương và nhân) Cuối cùng Bob gửi c cho
Alice.

• Alice nhận c từ Bob và biết khóa bí mật d. Alice có thể tìm
được m từ c theo công thức sau:


• Biết m, Alice tìm lại M theo phương pháp đã thỏa thuận trước. Quá trình
giải mã hoạt động vì ta có


• Do ed ≡ 1 (mod p-1) và ed ≡ 1 (mod q-1), (theo Định lý Fermat nhỏ) nên:





Do p và q là hai số nguyên tố cùng nhau, ta có:.

hay

Giải mã
ví dụ


• p = 61— số nguyên tố thứ nhất (giữ bí mật hoặc hủy sau khi tạo
khóa)
• q = 53— số nguyên tố thứ hai (giữ bí mật hoặc hủy sau khi tạo
khóa)
• n = pq = 3233— môđun (công bố công khai)
• e = 17— số mũ công khai
• d = 2753— số mũ bí mậtKhóa công khai là cặp (e, n). Khóa bí mật
là d. Hàm mã hóa là:
• encrypt(m) = m
e
mod n = m
17
mod 3233với m là văn bản rõ.
• Hàm giải mã là:
• decrypt(c) = c
d
mod n = c
2753
mod 3233với c là văn bản mã.
• Để mã hóa văn bản có giá trị 123, ta thực hiện phép tính:
• encrypt(123) = 123
17
mod 3233 = 855Để giải mã văn bản có giá trị
855, ta thực hiện phép tính:
• decrypt(855) = 855
2753
mod 3233 = 123Cả hai phép tính trên đều có
thể được thực hiện hiệu quả nhờ giải thuật bình phương và nhân.

Thuật toán bình phương và nhân


• Thuật toán bình phương và nhân là thuật
toán tính nhanh lũy thừa tự nhiên của một số
(thực hoặc nguyên), trong trường hợp cơ số là
số nguyên có thể được rút gọn theo
một môđun nào đó.
• Phép nâng lên lũy thừa tự nhiên bậc n của số x
(x được gọi là cơ số) được định nghĩa từ hệ
thức

• Với n lớn số phép nhân là rất lớn.
• Chắng hạn với n=35 quá trình tính x35 qua 35
bước:

• Ta nhận xét rằng có thể giảm bớt số phép nhân
chẳng hạn với dãy phép tính

Công thức đệ quy
• Quá trình tính toán trên chính là quá trình tính
nhờ công thức đệ quy
• Với n=0 thì xn = 1
• Với n>0 ta có công thức


• Như vậy phép tính xn được quy về một số
phép bình phương và phép nhân do vậy mà có
tên gọi thuật toán bình phương và nhân

Giải thuật sau tính đệ quy x
n

(mod m)

Function Square_Multi (int x, n, m){
Var Int Power
If n=0 then return 1
Else {
n:=LShift(n,1)
Power := Square_Multi (int x, n, m)
Power:=(Power^2) mod m
If n BitAnd 1 =0 then
Return Power
Else
Return (Power*x) mod m
}
}

Ví Dụ
Trong ví dụ sau ta tính 3727(mod 101).
Đổi n=27 ra số nhị phân ta được 27 = 11011(2).
Bảng sau đây tính toán từng bước theo giá trị của
các bít của 27.
Khởi tạo p=1.






Như vậy ta có
3727(mod 101) = 56.


Tổng kết

• Dù là hệ mã công khai xuất hiện đầu tiên , nhưng
cho đến nay hệ mã RSA vẫn cho thấy là một hệ
mã rất an toàn . Tính an toàn của nó dựa trên bài
toán Phân tích số nguyên .Mà thuật toán phân tích
một số nguyên m thành thừa số lại cần đến một
thời gian tăng theo cấp số luỹ thừa so với chiều
dài của m . Nghĩa là nếu chỉ thêm cho mvài ký tự,
thời gian cần để đặt m thành thừà số sẽ tăng gấp
đôi. Vì khi thêm vài ký tự vào R là làm cho nó lớn
thêm hàng trăm hay ngàn lần nhiều hơn, tức là gia
tăng danh sách các cặp thừa số có thề dùng làm p
và q.
Cơ chế hoạt động của sơ đồ xƣng
danh guillou-quisquater
• Sơ đồ cũng cần có sự tham gia của một cơ quan
ủy thác (TA). Để cấp chứng chỉ cho các người
tham gia. TA chọn 2 số nguyên tố lớn p và q và
tính tích n=p.q, giữ bí mật p, q và công khai n.
Các tham số đó được chọn sao cho bài toán phân
tích n thành thừa số là rất khó. TA cũng chọn
thêm một số b là số nguyên tố có độ lớn khoảng
2
40
như là một tham số an toàn. Sô b cũng được
xem là số mũ thỏa mãn điều kiện RSA, nghĩa là
việc tính v=u
b

mod n là dễ, nhưng việc tính ngược
u từ v là rất khó, nếu không biết p,q
Thủ tục cấp chứng chỉ cho một người tham
gia A được tiến hành như sau :

• TA xác lập các thông tin về danh tính của A dưới dạng
một dãy ký tự mà ta ký hiệu I
A
hay ID(A).
• A chọn bí mật một sô ngẫu nhiên u(0 ≤ u ≤ n-1) , tính
V = (u
-1
)
b
mod n,
• Và chuyển số v cho TA.
• TA tạo chữ ký s=sig
TA
(I
A
, v) và cấp cho A chứng chỉ
C(A) = (ID(A),v,s).
• Như vậy, chứng chỉ mà TA câp cho A gồm (I
A
, v) và
chữ ký của TA trên thông tin(I
A
, v) đó. Chú ý rằng TA
cấp chứng chỉ cho A mà có thể không biết gì về thông
tin bí mật của A là số u.


Xưng danh

• Bây giờ, với chứng chỉ C(A) đó, A có thể xưng danh
với bất kỳ đối tác B nào bằng cách cùng B thực hiện
một giao thức xác nhận danh tính như sau :
• A chọn thêm một số ngẫu nhiên k(0 ≤ k ≤ n-1), tính
γ = k
b
mod n,
và gửi cho B các thông tin C(A) và γ.
• 2.B kiểm thử chữ ký của TA trong chứng chỉ C(A)
bởi hệ thức
• ver
TA
(ID(A), v, s)= đúng. kiểm thử xong, B chọn một
số ngẫu nhiên r(1 ≤ r ≤ b-1) và gửi r cho A.
• 3.A tính y=k.u
r
mod n và gửi y cho B
• 4.B thử điều kiện
γ ≡ v
r1
y
b
1
(mod n).
• Và nếu điều kiện dó được thỏa mãn thì xác nhận danh
tính của A.


• Cũng như các trường hợp trước, việc chứng minh tính đầy
đủ của sơ đồ là rất đơn giản :
• V
r
y
b
≡ (u
-b
)
r
(ku
r
)
b
(mod n)
≡ u
-br
k
b
u
br
(mod)
≡ k
b
≡ γ (mod n).
• Một người khác A, do không biết số bí mật u, nên không thể
tính đúng được số y ở bước 3 của gaio thức để được B xác
nhận (như là A) ở bước 4, tức không thể mạo nhận mình là
A; đó là tính đúng đắn của sơ đồ.
• Giả sử có một người O có thể thực hiện thông suốt giao

thức xác nhận để có thể được mạo nhận là A, chẳng hạn ít
nhất 2 lần. Điều đó có nghĩa là O biết được hai số
• r
1
≠ r
2
và hai số y
1
,y
2
sao cho
γ ≡ v
r1-r2
≡ v
r2
y
b
2

(mod n).
• Giả thiết r
1
> r
2
, khi đó ta có
V
r1-r2
≡ (y
2
/y

1
)
b
(mod n).

• Do 0 < r
1
-r
2
< b và b là số nguyên tố nên gcd(r
1
-r
2
,
b) = 1, có thể tính được dễ dàng
• t=(r
1
-r
2
)
-1
mod b nên ta có
v
r1-r2
≡ (y
2
/y
1
)
b

(mod n).
• Do t=(r
1
-r
2
)
-1
mod b nên ta có
(r
1
-r
2
)t=lb+1
• Với l là 1 số nguyên tố dương nào đó, vì vaatyj,
V
lb+1
≡ (y
2
/y
1
)
bt
(mod n),
• Hay là
V ≡ (y
2
/y
1
)
bt

(v
-1
)
lb
(mod n),
• Nâng cả 2 vế lên lũy thừa bậc b
-1
mod ø(n), ta
được
U = (y
1
/y
2
t
v
l
mod n.

Ví dụ

• Giả sử TA chọn p=467, q=479, như vậy n=
223693, TA cũng chọn thêm b=503.
• Giả sử A chọn số bí mật u= 101576, và tính
V=(101576
-1
)
503
mod 223693
= 89888.
• TA tạo chữ ký s=sig

TA
(ID(A), v) và cấp cho A
chứng chỉ
C(A) = (ID(A),v,s).
• Giả thiết A muốn xưng danh với B, A chọn k=
187485, và gửi cho B giá trị
γ =187485
503
mod 223693 =24412.
• B dùng thuật toán kiểm thử ver
TA
để thử điều
kiện ver
TA
(ID(A),v,s) = đúng, sau đó gửi đến
đến A câu hỏi r=375. A sẽ trả lời lại bằng
y = 187485.101576
375
mod 223693
• = 93725.
• B thử điều kiện γ ≡ v
r
y
b
(mod n), trong trường
hợp này là
24412 ≡ 89888
375
.93725
503

(mod 223693),
• Đồng dư đúng. Vậy B xác nhận danh tính của
A.

×