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... Mục tiêu an toàn của việc xưng danh l
Trang 1Bá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:
Trang 2nhằ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
Trang 3• 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
Trang 42 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
Trang 5• 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
Trang 6B 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
Trang 71 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
Trang 8• 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))
Trang 9Mộ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 λ = 1)(q-1) thay cho Ф = (p-1)(q-1)
Trang 10LCM(p-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
• 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
Trang 11• 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:
và
Do p và q là hai số nguyên tố cùng nhau, ta có:
hay
Giải mã
Trang 12• decrypt(c) = c d mod n = c2753 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
Trang 13Thuậ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
Trang 14• 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
Trang 15
• 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
Trang 16
Giải thuật sau tính đệ quy xn(mod m)
Function Square_Multi (int x, n, m){
Var Int Power
Trang 17Ví 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
Trang 18thờ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
Trang 19Cơ 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
Trang 20Thủ 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
• A chọn bí mật một sô ngẫu nhiên u(0 ≤ u ≤ n-1) , tính
• Và chuyển số v cho TA
• TA tạo chữ ký s=sigTA(IA, v) và cấp cho A chứng chỉ
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
Trang 21Xư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
và gửi cho B các thông tin C(A) và γ
bởi hệ thức
số ngẫu nhiên r(1 ≤ r ≤ b-1) và gửi r cho A
• Và nếu điều kiện dó được thỏa mãn thì xác nhận danh tính của A
Trang 22• 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 :
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ố
• r1 ≠ r2 và hai số y1,y2 sao cho
γ ≡ v r1-r2 ≡ vr2yb2 (mod n)
• Giả thiết r1 > r2, khi đó ta có
Trang 23• Do 0 < r1-r2 < b và b là số nguyên tố nên gcd(r1-r2, b) = 1, có thể tính được dễ dàng
Trang 24• Giả thiết A muốn xưng danh với B, A chọn k=
187485, và gửi cho B giá trị
γ =187485503 mod 223693 =24412
Trang 25• B dùng thuật toán kiểm thử verTA để thử điều kiện verTA(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
Trang 26• Bây giờ ta lại giả thiết là O biết được hai số r1=401 ,
Trang 27• Chương Trình Demo