CÁC KHÁI NIỆM VÀ THUẬT TOÁN CƠ BẢNChương này trình bày các vấn đề cơ bản mà bất kỳ bài toán an toàn thông tinnào cũng phải đề cập đến, đó là các vấn đề về lý thuyết toán học sử dụng tron
Trang 1LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này của tự bản thân tôi tìm hiểu, nghiên cứu dưới
sự hướng dẫn của PGS.TS Trịnh Nhật Tiến Các chương trình thực nghiệm do chínhbản thân tôi lập trình, các kết quả là hoàn toàn trung thực Các tài liệu tham khảođược trích dẫn và chú thích đầy đủ
TÁC GIẢ LUẬN VĂN
Lê Đình Quyến
Trang 2LỜI CẢM ƠN
Trước hết em xin trân trọng gửi lời cảm ơn đến toàn thể các thầy cô giáoTrường Đại học Công nghệ – Đại học Quốc gia Hà Nội và Trường Đại học Côngnghệ thông tin và Truyền thông – Đại học Thái nguyên đã dạy dỗ chúng em trongsuốt quá trình học tập chương trình cao học tại trường
Đặc biệt em xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo PGS.TS Trịnh NhậtTiến, Trường Đại học Công nghệ – Đại học Quốc gia Hà Nội đã quan tâm, địnhhướng và đưa ra những góp ý, gợi ý, chỉnh sửa quí báu cho em trong quá trình làmluận văn tốt nghiệp
Cuối cùng, em xin chân thành cảm ơn các bạn bè đồng nghiệp, gia đình vàngười thân đã quan tâm, giúp đỡ và chia sẻ với em trong suốt quá trình làm luận văntốt nghiệp
Thái Nguyên, ngày 28 tháng 10 năm 2012
HỌC VIÊN
Lê Đình Quyến
Trang 3MỤC LỤC
LỜI CAM ĐOAN I LỜI CẢM ƠN II MỤC LỤC III DANH MỤC CÁC THUẬT NGỮ V DANH MỤC CÁC BẢNG VI DANH MỤC CÁC HÌNH VII
MỞ ĐẦU 1
CHƯƠNG 1 CÁC KHÁI NIỆM VÀ THUẬT TOÁN CƠ BẢN 3
1.1 LÝ THUYẾT TOÁN HỌC MODULO 3
1.1.1 Hàm phi Euler 3
1.1.2 Đồng dư thức 4
1.1.3 Không gian Zn 5
1.1.4 Nhóm nhân Z * 6
1.1.5 Thặng dư 7
1.1.6 Căn bậc modulo 7
1.1.7 Các thuật toán trong Zn 8
1.1.8 Ký hiệu Legendre và ký hiệu Jacobi 10
1.2 VẤN ĐỀ MÃ HOÁ 13
1.2.1 Mã hoá khoá đối xứng 15
1.2.2 Mã hoá khoá bất đối xứng 16
1.3 VẤN ĐỀ KÍ ĐIỆN TỬ 18
1.4 CHỮ KÍ SỐ 21
1.4.1 Giới thiệu về chữ kí số 21
1.4.2 Sơ đồ chữ kí số 22
1.4.3 Chuẩn chữ kí số 25
1.5 VẤN ĐỀ QUẢN LÝ KHOÁ 26
1.5.1 Khoá và một số khái niệm 26
1.5.2 Các cách tạo khoá 28
1.5.3 Phân phối khoá 35
CHƯƠNG 2 SƠ ĐỒ CHIA SẺ BÍ MẬT 41
2.1 Khái niệm chia sẻ bí mật 41
2.2 Các sơ đồ chia sẻ bí mật 43
2.2.1 Sơ đồ ngưỡng của Sharmir 43
2.2.2 Cấu trúc mạch đơn điệu 47
2.2.3 Cấu trúc không gian vectơ Brickell 54
2.3 Tính chất mở rộng của các sơ đồ chia sẻ bí mật 58
2.4 Ưu điểm của sơ đồ ngưỡng Shamir trong bài toán bỏ phiếu điện tử 59
CHƯƠNG 3 ỨNG DỤNG TRONG BỎ PHIẾU ĐIỆN TỬ 60
Trang 43.1 Một số bài toán về an toàn thông tin trong “Bỏ phiếu điện tử” 60
3.1.1 Bài toán xác thực cử tri 60
3.1.2 Bài toán ẩn danh lá phiếu 61
3.1.3 Bài toán phòng tránh sự liên kết giữa thành viên ban bầu cử và cử tri 62 3.2 Giải quyết bài toán chia sẻ khóa kí phiếu bầu cử 63
3.2.1 Chia sẻ khóa 63
3.2.2 Khôi phục khóa 63
3.3 Giải quyết bài toán chia sẻ nội dung phiếu bầu cử 64
3.4 Chương trình thử nghiệm 65
3.4.1 Chia sẻ khóa kí phiếu bầu cử 65
3.4.2 Chia sẻ nội dung phiếu bầu cử 66
KẾT LUẬN 67
TÀI LIỆU THAM KHẢO 68
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 69
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN 70
Trang 5DANH MỤC CÁC THUẬT NGỮ
gcd greatest common divisor (ước số chung lớn nhất)
CRT Chinese Remainder Theorem (định lý phần dư Trung Hoa)
DES Data Encryption Standard (Tiêu chuẩn mã hóa dữ liệu)
SHA Secure Hash Algorithm (Thuật giải băm an toàn)
PKI Public Key Infastructure (Hạ tầng khóa công khai)
CA Certification Authority (Chứng thực chữ kí số)
DSS Digital Signature Standard (Chuẩn chữ kí số)
Trang 6DANH MỤC CÁC BẢNG
Bảng 1.1: Mô tả các bước tính 5 596 mod 1234 9 Bảng 1.2: Độ phức tạp theo bit của các phép toán cơ bản trong Zn 9 Bảng 2.1: Các cấu trúc truy nhập không đẳng cấu 56
Trang 7DANH MỤC CÁC HÌNH
Hình 1.1: Sơ đồ hoạt động của mã hóa khóa đối xứng 15
Hình 1.2: Sơ đồ hoạt động của mã hóa khóa bất đối xứng 16
Hình 1.3:Trao đổi khoá Diffie – Hellman 28
Hình 1.4: Kẻ xâm nhập giữa cuộc trong giao thức Diffie – Hellman 29
Hình 1.5: Giao thức trạm tới trạm 30
Hình 1.6: Giao thức trạm tới trạm có sự xâm nhập giữa đường 30
Hình 1.7: Thỏa thuận khóa Girault 33
Hình 1.8: Thoả thuận khoá Girault có sự xâm nhập giữa đường 34
Hình 2.1: Phân chia khóa dựa vào mạch đơn điệu 48
Hình 2.2: Mạch đơn điệu thể hiện cấu trúc truy nhập 50
Hình 2.3: Cấu trúc mạch đơn điệu có tốc độ thông tin ρ = 1/3 52
Hình 2.4: Cấu trúc mạch đơn điệu có tốc độ thông tin ρ = 1/2 53
Trang 8MỞ ĐẦU
Hiện nay Internet đã trở nên rất phổ biến trên toàn thế giới, thông qua mạngInternet mọi người có thể trao đổi thông tin với nhau một cách nhanh chóng vàthuận tiện Những tổ chức có các hoạt động trên môi trường Internet/Intranet phảiđối diện với vấn đề là làm thế nào để bảo vệ những dữ liệu quan trọng, ngăn chặnnhững hình thức tấn công, truy xuất dữ liệu bất hợp pháp từ bên trong (Intranet) lẫnbên ngoài (Internet) Khi một người muốn trao đổi thông tin với một người hay một
tổ chức nào đó thông qua mạng máy tính thì yêu cầu quan trọng là làm sao để đảmbảo thông tin không bị sai lệch hoặc bị lộ do sự can thiệp của người thứ ba Trướccác yêu cầu cần thiết đó, lý thuyết về mật mã thông tin đã ra đời nhằm đảm bảo tính
an toàn dữ liệu tại nơi lưu trữ cũng như khi dữ liệu được truyền trên mạng
Vấn đề chia sẻ bí mật được đã được nghiên cứu từ những năm 70 của thế kỷtrước Ý tưởng chính của chia sẻ bí mật dựa trên nguyên tắc đơn giản là không tinvào bất cứ ai Để đảm bảo an toàn một thông tin nào đó thì ta không thể trao nó chomột người nắm giữ mà phải chia nhỏ thành các mảnh và chỉ trao cho mỗi người mộthoặc một số mảnh, sao cho một người với một số mảnh mình có thì không thể tìm
ra thông tin bí mật Việc phân chia các mảnh phải theo một sơ đồ chia sẻ bí mậtnhất định, sau đó có thể khôi phục lại thông tin bí mật ban đầu
Được sự gợi ý của giáo viên hướng dẫn và nhận thấy tính thiết thực của vấn
đề, em đã chọn đề tài: Nghiên cứu vấn đề chia sẻ bí mật và ứng dụng trong “Bỏ phiếu điện tử” để làm nội dung cho luận văn tốt nghiệp của mình.
Luận văn này tập trung vào nghiên cứu cơ sở lý thuyết toán học và một số kỹthuật mật mã để thực hiện chia sẻ thông tin mật, sau đó áp dụng giải quyết một sốbài toán về an toàn thông tin trong “Bỏ phiếu điện tử”
Trang 9Nội dung chính của luận văn gồm ba chương
Chương 1: Các khái niệm cơ bản
Trong chương này luận văn trình bày các kiến thức cơ bản về lý thuyết toánhọc Modulo, vấn đề mã hóa, kí điện tử, chữ kí số và vấn đề quản lý khóa
Chương 2: Sơ đồ chia sẻ bí mật
Nội dung chương 2 trình bày khái niệm về chia sẻ bí mật, các sơ đồ chia sẻ
bí mật và tính chất mở rộng của các sơ đồ chia sẻ bí mật, ưu điểm của sơ đồ Shamirtrong bài toán bỏ phiếu điện tử
Chương 3: Ứng dụng trong bỏ phiếu điện tử
Chương này đề cập tới một số bài toán về an toàn thông tin trong “Bỏ phiếuđiện tử”, Giải quyết bài toán chia sẻ khóa ký phiếu bầu cử, Giải quyết bài toán chia
sẻ nội dung phiếu bầu cử Chương trình thử nghiệm được viết bằng ngôn ngữ lậptrình C# 2012
Trang 10Chương 1. CÁC KHÁI NIỆM VÀ THUẬT TOÁN CƠ BẢN
Chương này trình bày các vấn đề cơ bản mà bất kỳ bài toán an toàn thông tinnào cũng phải đề cập đến, đó là các vấn đề về lý thuyết toán học sử dụng trong bảomật thông tin, mã hoá thông tin, chữ ký điện tử, khái niệm khoá, các cách tạo khoá,các phương pháp phân phối khoá, vấn đề định danh Qua đó, hình thành cơ sở lýthuyết cho an toàn truyền tin trên mạng máy tính
Các khái niệm và định nghĩa trong chương này được tham khảo trong các tàiliệu: Lý thuyết mật mã và an toàn thông tin; Contemporary Cryptography
1.1 LÝ THUYẾT TOÁN HỌC MODULO
Tính nhân của hàm phi Euler: Nếu gcd(m, n) = 1 thì Φ(mn) = Φ(m)Φ(n) (trong
đó gcd(m, n) là ký hiệu ước số chung lớn nhất của m và n)
Trang 111.1.2 Đồng dư thức
1/ Định nghĩa
Cho a và b là các số nguyên, a được gọi là đồng dư với b theo modulo n, kýhiệu là a b (mod n) nếu n chia hết (a – b) Số nguyên n được gọi là modulus củađồng dư.[4 – tr81]
Nếu a b (mod n) thì b a (mod n) (Tính đối xứng)
Nếu a b (mod n) và b c (mod n) thì a c (mod n) (Tính bắc cầu)
Nếu a a1 (mod n), b b1 (mod n) thì a + b a1 + b1 (mod n)
và ab a1b1 (mod n)
Lớp tương đương [1 – tr24] của một số nguyên a là tập hợp các số nguyênđồng dư với a theo modul n Từ các tính chất 2, 3 và 4 ta thấy: cho n cố định, các sốđồng dư với n theo modulo n trong không gian Z được xếp vào một một lớp tươngđương Nếu a = qn + r, trong đó 0 ≤ r < n thì a r (mod n) Vì vậy mỗi số nguyên a
là đồng dư theo modul n với duy nhất một số nguyên trong khoảng từ 0 đến n – 1 vàđược gọi là thặng dư nhỏ nhất của a theo modul n Cũng vì vậy, a và r cùng thuộcmột lớp tương đương Do đó r có thể đơn giản được sử dụng để thể hiện lớp tươngđương
Trang 121.1.3 Không gian Z n
Các số nguyên theo modul n ký hiệu Zn là một tập hợp các số nguyên {0,1,2,3,
…,n–1} Các phép toán cộng, trừ, nhân trong Zn được thực hiện theo modulon.[1 – tr24]
Ví dụ: Z25 = {0, 1, 2, …, 24} Trong Z25 : 13 + 16 = 4, bởi vì: 13 + 16 = 29 4(mod 25) Tương tự, 13*16 = 8 trong Z25
Cho a Zn Nghịch đảo nhân của a theo modulo n là một số nguyên x Zn saocho a*x 1 (mod n) Nếu x tồn tại thì đó là giá trị duy nhất và a được gọi làkhả nghịch, nghịch đảo của a ký hiệu là a-1.[1 – tr25]
Cho a, b Zn Phép chia của a cho b theo modulo n là tích của a và b-1 theomodulo n, và chỉ dược xác định khi b có nghịch đảo theo modulo n.[1 – tr25]
2/ Các tính chất trong không gian Z n
Cho a Zn , a có nghịch đảo khi và chỉ khi gcd(a, n) = 1 [4 – tr83]
Ví dụ: Các phần tử khả nghịch trong Z9 là: 1, 2, 4, 5, 7 và 8 trong đó 4-1 = 7 vì
4 7 1 (mod 9)
Giả sử d = gcd(a, n) Phương trình đồng dư ax b (mod n) có nghiệm x nếu
và chỉ nếu d chia hết cho b [1 – tr25], trong trường hợp các nghiệm d nằmtrong khoảng 0 đến n – 1 thì các nghiệm đồng dư theo modulo n / d
3/ Định lý phần dư Trung Hoa (CRT)
Nếu các số nguyên n1, n2, …, nk là các số nguyên tố cùng nhau từng đôi mộtthì hệ phương trình đồng dư:
Trang 134/ Thuật toán của Gausse
Nghiệm x trong hệ phương trình đồng dư trong định lý phần dư Trung Hoađược tính như sau:
Nhóm nhân của Zn ký hiệu là Z*
n = {a Zn | gcd (a, n) = 1} Đặc biệt, nếu n là
o (Định lý Euler) Nếu a Zn* thì aΦ(n) 1 (mod n)
o Nếu n là tích của các số nguyên tố phân biệt và nếu r s (mod Φ(n))thì ar as (mod n) với mọi số nguyên a
Cho p là số nguyên tố [1 – tr28]
o (Định lý Fermat) Nếu gcd(a, p) = 1 thì ap-1 1 (mod p)
o Nếu r s (mod p – 1) thì ar as (mod p) với mọi số nguyên a
o Đặc biệt ap a (mod p) với mọi số nguyên a
Trang 141.1.5 Thặng dư
1/ Định nghĩa thặng dư
Cho a Zn, a được gọi là thặng dư bậc 2 theo modulo n hoặc bình phươngtheo modulo n nếu tồn tại x Zn* sao cho x2 a (mod n) Nếu không tồn tại x thì ađược gọi là thặng dư không bậc 2 theo modulo n Tập hợp các thặng dư bậc 2 theomodulo n ký hiệu là Qn và tập hợp các thặng dư không bậc 2 theo modulo n ký hiệu
n p p p trong đó pi là các số nguyên tố lẻ phân biệt
và ei ≥ 1 Nếu a Qn thì a có chính xác 2k căn bậc 2 theo modulo n
3/ Ví dụ
Căn bậc 2 của 13 theo modulo 37 là 7 và 30
Căn bậc 2 của 121 modulo 315 là 11, 74, 101, 151, 164, 214, 241 và 304
Trang 151.1.7 Các thuật toán trong Z n
Cho n là số nguyên dương, các phần tử trong Zn sẽ được thể hiện bởi các sốnguyên {0, 1, 2,…, n–1} Ta thấy rằng nếu a, b Zn thì:
INPUT: a Zn
OUTPUT: a-1 mod n, nếu tồn tại
Sử dụng thuật toán Euclidean mở rộng sau để tìm các số nguyên x và y saocho: ax + ny = d với d = gcd(a, n)
Nếu d > 1 thì a-1 mod n không tồn tại Ngược lại, return (x)
2/ Thuật toán Euclidean mở rộng [4 – tr69]
INPUT: 2 số nguyên dương a và b với a ≥ b
OUTPUT: d = gcd(a, b) và các số nguyên x, y thoả mãn: ax + by = d
Nếu b == 0 thì đặt d = a; x = 1; y = 0; return (d, x, y);
Số mũ modulo có thể được tính một các hiệu quả bằng thuật toán bình phương
và nhân liên tiếp, nó được sử dụng chủ yếu trong nhiều giao thức mã hoá
Trang 163/ Thuật toán bình phương liên tiếp để tính số mũ modulo trong Z n [4 – tr85]
INPUT: a Zn và số nguyên dương 0 ≤ k < n trong đó k có biểu diễn nhị phân là:
Bảng 1.1: Mô tả các bước tính 5 596 mod 1234
Độ phức tạp theo bit của các phép toán cơ bản trong Zn như sau:
Nghịch đảo theo modulo a-1 mod n O((lg n)2)
Số mũ modulo ak mod n, k < n O((lg n)3)
Bảng 1.2: Độ phức tạp theo bit của các phép toán cơ bản trong Zn
1.1.8 Ký hiệu Legendre và ký hiệu Jacobi
1/ Định nghĩa ký hiệu Legendre
Cho p là số nguyên tố lẻ và một số nguyên a Ký hiệu Legendre ( a p ) đượcđịnh nghĩa là: [1 – tr29]
Trang 17nÕu a Q p
2/ Tính chất của ký hiệu Legendre
Cho số nguyên tố lẻ p; a, b Z Ký hiệu Legendre có tính chất sau: [1 – tr29, tr30]
( a p ) a (p-1)/2 (mod p) Trường hợp đặc biệt: ( 1p ) = 1 và ( p1) = (–1)(p-1)/ 2Bởi vậy nên: –1 Qp nếu p 1 (mod 4); và –1 _Q n nếu p 3 (mod 4)
p ( 2p ) = 1 nếu p 1 hoặc 7 (mod 8)
và ( 2p ) = –1 nếu p 3 hoặc 5 (mod 8)
Nếu q là số nguyên tố lẻ khác p thì: ( q p ) = ( q p ) (–1)(p-1)(q-1) / 4
Nói cách khác: ( q p ) = ( q p ) trừ khi cả p và q đều đồng dư với 3 theo modulo 4.Ngược lại thì (q p ) = – ( q p )
Ký hiệu Jacobi là sự tổng quát hoá của ký hiệu Legendre cho các số nguyên n là lẻ
mà không cần phải là nguyên tố
3/ Định nghĩa ký hiệu Jacobi
Cho n ≥ 3 là lẻ với các thừa số nguyên tố: 1 2
Trang 184/ Tính chất của ký hiệu Jacobi
Cho m ≥ 3, n ≥ 3 là số nguyên lẻ và a, b Z Ký hiệu Jacobi có các tính chất sau:
1 ( 1
1
)(
2 ( )
n n
a n n
a
Từ đó có thuật toán tính (
n
a
) mà không yêu cầu tính các thừa số nguyên tố của n
5/ Thuật toán tính ký hiệu Jacobi (và ký hiệu Legendre)
Trang 19JACOBI(a, n)
INPUT: số nguyên lẻ n ≥ 3 và một số nguyên a, 0 ≤ a < n
OUTPUT: Ký hiệu Jacobi ( n a ) (và là ký hiệu Legendre khi n là số nguyên tố)
Nếu a1 == 1 thì return (s); Ngược lại thì return (s JACOBI(a1, n1));
Thuật toán trên chạy trong thời gian O((lg n)2) phép tính bit
Mã hoá là phần rất quan trọng trong vấn đề bảo mật Mã hoá ngoài nhiệm vụchính là làm cho tài liệu an toàn hơn, nó còn có một lợi ích quan trọng là: thay vì
Trang 20truyền đi tài liệu thô (không được mã hoá) trên một đường truyền đặc biệt, đượccanh phòng cẩn mật không cho người nào có thể “xâm nhập” vào lấy dữ liệu, người
ta có thể truyền một tài liệu đã được mã hoá trên bất cứ đường truyền nào mà không
lo dữ liệu bị đánh cắp vì nếu dữ liêu có bị đánh cắp đi nữa thì dữ liệu đó cũng khôngdùng được
Một số khái niệm liên quan:
Thuật toán mã hoá/ giải mã: là thuật toán dùng để chuyển thông tin thành dữ
liệu mã hoá hoặc ngược lại
Khoá: là thông tin mà thuật toán mã/ giải mã sử dụng để mã/ giải mã thông tin.
Mỗi khi một thông tin đã được mã hoá thì chỉ có những người có khoá thích hợpmới có thể giải mã Nếu không thì dù dùng cùng một thuật toán giải mã nhưng cũngkhông thể phục hồi lại thông tin ban đầu Đây là đặc điểm quan trọng của khoá: mãhoá chỉ phụ thuộc vào khoá mà không phụ thuộc vào thuật toán mã/ giải mã Điềunày giúp cho một thuật toán mã/ giải mã có thể được sử dụng rộng rãi
Với hình thức khá phổ biến hiện nay là truyền tin qua thư điện tử và không sửdụng các công cụ mã hoá, bảo mật cũng như chữ ký điện tử thì các tình huống sau
có thể xảy ra:
Không chỉ nguời nhận mà người khác cũng có thể đọc được thông tin
Thông tin mà ta nhận được có thể không phải là của người gửi đúng đắn
Thông tin nhận được bị người thứ ba sửa đổi
Bị nghe trộm: thông tin được truyền đi trên đường truyền có thể bị ai đó “xâmnhập” vào lấy ra, tuy nhiên vẫn đến được người nhận mà không bị thay đổi
Bị thay đổi: thông tin bị chặn lại ở một nơi nào đó trên đường truyền và bịthay đổi Sau đó thông tin đã bị thay đổi này được truyền tới cho người nhậnnhư không có chuyện gì xảy ra
Bị lấy cắp: thông tin bị lấy ra nhưng hoàn toàn không đến được người nhận
Trang 21Khi đó thì khỏi nói đến thương mại điện tử, chính phủ điện tử với nền quản
lý hành chính điện tử, Để giải quyết vấn đề này, thông tin trước khi truyền đi sẽđược mã hoá và khi tới người nhận, nó sẽ được giải mã trở lại
Để đảm bảo rằng chỉ người cần nhận có thể đọc được thông tin mà ta gửi khibiết rằng trên đường đi, nội dung thông tin có thể bị theo dõi và đọc trộm, người ta
sử dụng các thuật toán đặc biệt để mã hoá thông tin Trong trường hợp này, trướckhi thông tin được gửi đi, chúng sẽ được mã hoá lại và kết quả là ta nhận được mộtnội dung thông tin “không có ý nghĩa” Khi thông điệp bị theo dõi hoặc bị bắt giữtrên đường đi, để hiểu được thông tin của bạn, kẻ tấn công phải làm một việc là giải
mã nó Thuật toán mã hoá càng tốt thì chi phí cho giải mã đối với kẻ tấn công càngcao Khi chi phí giải mã cao hơn giá trị thông tin thì coi như bạn đã thành côngtrong vấn đề bảo mật
Các thuật toán mã hoá thông tin khá đa dạng nhưng có thể chia ra làm haihướng chính là mã hóa với khóa đối xứng và mã hóa với khóa bất đối xứng
1.2.1 Mã hoá khoá đối xứng
Hệ mã hóa khóa đối xứng là hệ mã hóa có khóa lập mã và khóa giải mã là
“giống nhau”, theo nghĩa biết được khóa này thì “dễ” tính được khóa kia Vì vậyphải giữ bí mật cả hai khóa
Đặc biệt có một số hệ mã hóa có khóa lập mã và khóa giải mã trùng nhau (ke
= kd), như hệ mã hóa “dịch chuyển” hay DES
Bản mã
Trang 22Hình 1.1: Sơ đồ hoạt động của mã hóa khóa đối xứng
1/ Ưu điểm
Tốc độ mã/ giải mã nhanh Đây là ưu điểm nổi bật của mã đối xứng
Sử dụng đơn giản: có thể dùng một khoá cho cả 2 bước mã và giải mã
2/ Nhược điểm:
Đòi hỏi khoá phải được 2 bên gửi/ nhận trao tận tay nhau vì không thể truyềnkhoá này trên đường truyền mà không được bảo vệ Điều này làm cho việc sửdụng khoá trở nên không thực tế
Không an toàn: càng nhiều người biết khoá thì độ rủi ro càng cao
Trong trường hợp khoá mã hoá thay đổi, cần thay đổi đồng thời ở cả người gửi
và người nhận, khi đó rất khó có thể đảm bảo được là chính bản thân khoákhông bị đánh cắp trên đường đi
Không cho phép ta tạo ra chữ ký điện tử
3/ Một số thuật toán mã hoá khóa đối xứng
DES: 56 bit, không an toàn Có thể dễ dàng bị bẻ khoá trong khoảng vài phút
Triple DES, DESX, GDES, RDES: mở rộng độ dài của khoá ở mã DES lên tới
168 bit
RC2, RC4, RC5: độ dài khoá có thể lên tới 2048 bit
IDEA (International Data Encryption Algorithm): 128 bit, thường dùng trongcác chương trình email
Blowfish: 448 bit
Trang 231.2.2 Mã hoá khoá bất đối xứng
Hệ mã hóa khóa bất đối xứng là hệ mã hóa có khóa lập mã và khóa giải mã
là khác nhau (ke ≠ kd), biết được khóa này cũng khó tính được khóa kia Hệ mã nàycòn được gọi là hệ mã hóa khóa công khai
Khóa lập mã cho công khai, gọi là khóa công khai Khóa giải mã giữ bí mật,gọi là khóa bí mật
Hình 1.2: Sơ đồ hoạt động của mã hóa khóa bất đối xứng
1/ Ưu điểm
Đây là loại mã hoá được sử dụng chủ yếu trên Internet Một người muốn sửdụng loại mã hoá này cần tạo ra một cặp khoá công khai/ bí mật Anh ta có thểtruyền khoá công khai của mình tới bất cứ ai muốn giao tiếp với anh ta mà không sợngười khác lấy khoá này Cô ta sẽ mã hoá thông điệp của mình bằng khoá công khai
đó và gửi tới cho anh ta Dĩ nhiên là chỉ mình anh ta với khoá bí mật của mình mới
có thể thấy được thông điệp của cô Như vậy kẻ tấn công, cho dù có biết nội dungcủa khoá công khai và nội dung của thông tin đã bị mã hoá vẫn không thể giải mãđược thông tin Lý do là tính ngược khoá bí mật từ khoá công khai hoặc là rất khókhăn, nếu không nói là không thể Điều này đạt được trên nguyên tắc sử dụng cáchàm một chiều trong toán học khi tính hàm y = f(x) là đơn giản nhưng ngược lạiviệc tính giá trị y khi đã biết x là rất khó khăn
Trang 24Tốc độ mã hoá chậm: tốc độ mã hoá nhanh nhất của loại mã bất đối xứngvẫn chậm hơn nhiều lần so với mã đối xứng Do đó người ta thường kết hợp 2 loại
mã hoá để nâng cao tốc độ mã hoá
3/ Một số thuật toán mã hoá bất đối xứng
RSA: Loại mã này được dùng nhiều nhất cho web và chương trình email Độdài khoá thông thường là từ 512 đến 1024 bit
ElGamal: 512 đến 1024 bit
1.3 VẤN ĐỀ KÍ ĐIỆN TỬ
Nếu việc sử dụng mật mã đã trở nên phổ biến, không chỉ trong quân đội màcòn trong thương mại và những mục đích cá nhân thì những đoạn tin và tài liệu điện
tử sẽ cần những chữ ký giống như các tài liệu giấy
Cũng giống như trong thực tế, chữ ký để xác nhận cho người nhận rằng bứcthư đó do người này gửi mà không phải ai khác Chữ ký điện tử sử dụng thuật toán
mã hóa khóa bất đối xứng để định danh người gửi Thông thường, để bảo vệ cácvăn bản mã hoá người ta dùng chữ ký điện tử Việc ứng dụng chữ ký điện tử cũngnhư công nhận giá trị pháp lý của nó là điều kiện tiên quyết cho thương mại điện tử
Trang 25Nếu như việc giả mạo chữ ký viết tay hoặc con dấu là không đơn giản thì việc làmgiả một đoạn thông tin nào đó là rất dễ dàng Vì lý do đó, bạn không thể quét chữ
ký của mình cũng như con dấu tròn của công ty để chứng tỏ rằng tài liệu mà bạntruyền đi đúng là của bạn
Khi bạn cần “ký” một văn bản hoặc một tài liệu nào đó, thủ tục đầu tiên làtạo ra chữ ký và thêm nó vào trong thông điệp Có thể hình dung thủ tục này nhưsau: Phần mềm mã hoá mà bạn sử dụng sẽ đọc nội dung văn bản và tạo ra một chuỗithông tin đảm bảo chỉ đặc trưng cho văn bản đó mà thôi Bất kỳ một thay đổi nàotrong văn bản sẽ kéo theo sự thay đổi của chuỗi thông tin này Sau đó phần mềm đó
sẽ sử dụng khoá bí mật của bạn để mã hoá chuỗi thông tin này và thêm nó vào cuốivăn bản như một động tác ký (Bạn có thể thấy là chúng ta hoàn toàn không mã hoánội dung văn bản, chỉ làm động tác ký mà thôi) Khi nhận được văn bản, người nhậnlặp lại động tác tạo ra chuỗi thông tin đặc trưng, sau đó sử dụng khoá công khai màbạn đã gửi để kiểm tra chữ ký điện tử có đúng là của bạn không và nội dung thôngđiệp có bị thay đổi hay không Thuật toán mã hoá khóa bất đối xứng đầu tiên và nổitiếng hơn cả có tên gọi là RSA (được ghép từ chữ cái đầu tiên của tên ba tác giả làRivest, Shamir, Adleman)
1/ Quá trình tạo ra chữ ký điện tử
Tạo một câu ngắn gọn để nhận dạng – ví dụ như “Tôi là Quyến”
Mã hoá nó bằng khoá bí mật của mình tạo ra chữ ký điện tử
Gắn chữ ký này vào thông điệp cần gửi rồi mã hoá toàn bộ bằng khoá côngkhai của người nhận
Gửi thông điệp đi
Người nhận sẽ dùng khoá bí mật của mình để giải mã thông điệp và lấy chữ ký
ra Sau đó họ sẽ giải mã chữ ký này bằng khoá công khai của người gửi Chỉ người
Trang 26gửi nào có khoá bí mật phù hợp mới có thể tạo ra chữ ký mà người nhận giải mãthành công Do đó người nhận có thể định danh người gửi.
Tuy nhiên chữ ký điện tử tạo ra theo cách này vẫn chưa dùng được Nó cóthể bị cắt và dán vào thông điệp khác mà không cần phải biết khoá bí mật
2/ Hàm băm sử dụng trong ký điện tử
Một thông điệp được đưa qua hàm băm sẽ tạo ra một giá trị có độ dài cố định
và ngắn hơn được gọi là “đại diện” hay “bản tóm tắt” Mỗi thông điệp đi qua mộthàm băm chỉ cho duy nhất một “đại diện” và ngược lại: rất khó có thể tìm được haithông điệp khác nhau mà có cùng “đại diện” khi đi qua cùng một hàm băm
Hàm băm thường kết hợp với chữ ký điện tử ở trên để 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 có thể dùng để kiểm tra tính toànvẹn của thông điệp Các bước để tao ra chữ ký điện tử như vậy được trình bày nhưsau:
Đưa thông điệp cần gửi qua hàm băm tạo ra đại diện cho thông điệp đó
Mã hoá đại diện bằng khoá bí mật của người gửi để tạo ra chữ ký điện tử
Mã hoá toàn bộ thông điệp và chữ ký bằng khoá công khai của người nhận vàgửi đi
Người nhận sẽ giải mã thông điệp bằng khoá bí mật của mình, giải mã chữ kýbằng khoá công khai của người gửi để lấy đại diện ra Sau đó cho thông điệp quahàm băm để tạo lại đại diện của thông điệp rồi so sánh với đại diện nhận được: nếugiống nhau thì người nhận có thể vừa định danh người gửi vừa kiểm tra tính toànvẹn của thông điệp
3/ Một số hàm băm thường gặp
MD5 (Message Digest): 128 bit, nhanh, được sử dụng rộng rãi
SHA (Secure Hash Algorithm): 160 bit
Trang 271.4 CHỮ KÍ SỐ
1.4.1 Giới thiệu về chữ kí số
Trong môi trường mạng, bất cứ dạng thông tin nào được sử dụng để nhậnbiết một con người đều được coi là chữ kí điện tử, ví dụ: một đoạn âm thanh, hìnhảnh được chèn vào cuối e-mail
Chữ kí số là một dạng chữ kí điện tử, an toàn nhất và cũng được sử dụngrộng rãi nhất, chữ kí này hình thành dựa trên kĩ thuật mã hoá công khai (PKI), theo
đó mỗi người sử dụng cần có một cặp khoá bao gồm khoá bí mật và khoá công khai.Người chủ chữ kí sử dụng khoá bí mật để tạo chữ kí số (trên cơ sở kết hợp với nộidung thông tin gửi), ghép nó với thông tin cần gửi và gửi đi Người nhận dùng mãcông khai giải mã chữ kí số để biết được có phải là người đó gửi hay không
Điểm quan trọng là các cặp khoá trên do những nhà cung cấp dịch vụ chứngthực chữ kí số (Certification Authority – CA) cấp (hoặc xác minh là đủ điều kiện an
Trang 28toàn) sau khi đã kiểm tra thực tế Đồng thời nhà cung cấp dịch vụ cũng giao cho cánhân, tổ chức đó một chứng thư số - tương đương như chứng minh thư nhân dânhay giấy xác nhận sự tồn tại của cơ quan, tổ chức trên môi trường mạng Chứng thư
đó có chứa khoá công khai của chủ sở hữu và được duy trì tin cậy trên cơ sở dữ liệucủa nhà cung cấp dịch vụ chứng thực, do vậy người nhận có thể truy cập vào cơ sở
dữ liệu đó để xác minh
1.4.2 Sơ đồ chữ kí số
Một sơ đồ chữ kí số thường chứa hai thành phần: thuật toán kí và thuật toánxác minh A có thể kí bức điện x dùng thuật toán kí an toàn, chữ kí y = sig(x) nhậnđược có thể kiểm tra bằng thuật toán xác minh công khai ver(x,y) Khi cho trướccặp (x,y), thuật toán xác minh có giá trị TRUE hay FALSE tuỳ thuộc vào chữ kíđược thực hiện như thế nào Sau đây là định nghĩa hình thức của chữ kí:
Trang 29Với mỗi k = (k1, k2), trong S có một thuật toán kí sigk1: P A, và trong V cómột thuật toán xác minh verk2: P x A {TRUE, FALSE} thoả mãn điều kiệnsau đây đối với mọi thông báo x P và mọi chữ kí y A:verk2(x, y) = TRUE ↔ y = sigk1(x).
S là tập các thuật toán kí
V là tập các thuật toán kiểm thử
Với sơ đồ trên, mỗi chủ thể sở hữu một bộ khoá k = (k1, k2), công bố côngkhai khoá k2 để mọi người có thể xác minh chữ kí của mình, và giữ bí mật khoá k1
để thực hiện chữ kí trên các thông báo mà mình muốn gửi đi Các hàm verk2 và sigk1(khi biết k1) phải tính được một cách dễ dàng (trong thời gian đa thức), tuy nhiênhàm y = sigk1(x) là khó tính được nếu không biết k1 – điều đó đảm bảo bí mật choviệc kí cũng tức là đảm bảo chống giả mạo chữ kí
2/ Sơ đồ chữ kí RSA [1 – tr1117]
+ Sinh khóa
Chọn p, q là số nguyên tố lớn
Tính n = p*q, Φ(n) = (p – 1)(q – 1) Đặt P = A = Zn
Chọn khóa công khai b < Φ(n) và nguyên tố cùng nhau với Φ(n)
Khóa bí mật a là nghịch đảo của b theo modulo Φ(n): a = b-1 (mod Φ(n))
{n, b} công khai, {a, p, q} bí mật
Trang 30Sơ đồ chữ kí ElGamal được đề xuất năm 1985, gần như đồng thời với sơ đồ
hệ mật mã ElGamal, cũng dựa trên độ khó của bài toán logarit rời rạc Sơ đồ đượcthiết kế đặc biệt cho mục đích kí trên các văn bản điện tử
+ Sinh khóa
Cho p là số nguyên tố sao cho bài toán logarit rời rạc trên Zp là khó giải
Đặt P = Zp*, A = Zp*x Zp-1
Chọn phần tử nguyên thủy g, chọn khóa bí mật a Zp*
Khóa công khai h = ga mod p
Tập khóa K = {(p, g, a, h): h = ga mod p} với {p, g, h} công khai; a bí mật
Trang 31y1 = 2213 mod 467 = 29.
y2 = (100 – 127*29) * 431 mod 466 = 51
Kiểm tra chữ kí: 13229 * 2951 = 2100 mod 467
1.4.3 Chuẩn chữ kí số
Chuẩn chữ kí số (DSS – Digital Signature Standard) được đề xuất năm 1991
và được chấp nhận vào cuối năm 1994 để sử dụng trong một số lĩnh vực giao dịchđiện tử tại Mỹ DSS dựa vào sơ đồ chữ kí ElGamal với một vài sửa đổi Để đảm bảo
an toàn, số nguyên tố p cần phải đủ lớn, biểu diễn nhị phân của p phải có từ 512 bittrở lên (cụ thể là từ 512 đến 1024 bit, số bit là một bội của 64) [1 – tr121]
Tuy nhiên, độ dài chữ kí theo sơ đồ ElGamal là gấp đôi số bit của p, màtrong nhiều ứng dụng người ta lại mong muốn có chữ kí độ dài ngắn, nên giải phápsửa đổi được đề xuất là: trong khi vẫn dùng p lớn với độ dài biểu diễn 512 bit trởlên thì sẽ hạn chế độ dài của và trong chữ kí (, ) vào khoảng 160 bit (như vậy
cả chữ kí sẽ có độ dài khoảng 320 bit); điều này được thực hiện bằng cách dùng mộtnhóm con cyclic Z*
q của Z*
p thay cho chính bản thân Z*
p , do đó mọi tính toán vẫnđược thực hiện như trong Z* nhưng các dữ liệu và thành phần chữ kí lại thuộc Z*
Ta được sơ đồ chuẩn chữ kí số DSS như mô tả sau đây: [1 – tr122]
Chọn p là một số nguyên tố lớn có độ dài biểu diễn từ 512 bit trở lên sao chobài toán tính logarit rời rạc trong Z* là khó, q là một ước số nguyên tố của p – 1 có
độ dài biểu diễn cỡ 160 bit Gọi α Z*
p là một căn bậc q của 1 theo mod p
Trang 32k = (k1, k2) trong đó khoá bí mật k1 = a, khoá công khai k2 = (p, q, α, β).
Thuật toán kí: với x P = Z*
p, ta chọn thêm một số ngẫu nhiên k (0≤ k≤q–1),khi đó sigk1 (x, k) = (, ), với = (αk mod p) mod q và = (x + a).k -1 mod q
Thuật toán minh được định nghĩa bởi:
verk2(x, (, )) = TRUE ↔ (αe1.βe2 mod p) mod q = , trong đó: e1 = x.-1mod q và e2 = .-1 mod q
Chú ý rằng ta phải có ≠ 0 mod q để có thể tính được -1 mod q, vì vậy nếuchọn k nào đó mà ≡ 0 mod q thì phải chọn lại số k khác
1.5 VẤN ĐỀ QUẢN LÝ KHOÁ
1.5.1 Khoá và một số khái niệm
Trong một mạng thông tin liên lạc dữ liệu, giả sử rằng một người dùng ở mộtmáy tính đang liên lạc với một chương trình ứng dụng hay một người dùng ở mộtmáy tính khác ở trong cùng một vùng hay ở một vùng khác, những người dùng nàydùng chung một khoá (khoá chính K) Khoá K này có thể là một khoá bí mật đượccung cấp và được chấp nhận trước bởi các người dùng hoặc một khoá được cấp phátđộng bởi hệ thống và gán cho các người dùng này, được gọi là khoá mã hoá dữ liệuhoặc khoá giải mã dữ liệu
Sự phân phối khoá (key distribution) được định nghĩa là cơ chế một nhóm
chọn khoá mật và sau đó truyền nó đến các nhóm khác
Thoả thuận khoá (key agreement) là giao thức để hai nhóm (hoặc nhiều hơn)
liên kết với nhau cùng thiết lập một khoá mật bằng cách liên lạc trên một kênhtruyền thông công khai
TA (Trust Authority) có nhiệm vụ xác minh danh tính của người dùng, chọn
và gửi khoá đến người dùng
Đối phương bị động (passive adversary) là người dùng có dụng ý xấu mà hoạt
động của anh ta chỉ hạn chế ở mức nghe trộm bức điện truyền trên kênh
Trang 33 Đối phương chủ động (active adversary) nguy hiểm hơn đối phương bị động
vì có thể làm nhiều hành vi xấu như:
o Thay đổi bức điện mà anh ta quan sát khi nó đang được truyền trên mạng
o Lưu bức điện cho việc sử dụng lại ở lần sau
o Cố gắng giả dạng làm người dùng khác trên mạng
Mục tiêu của đối phương chủ động là:
Lừa người dùng U và V chấp nhận 1 khoá “không hợp lệ” như là một khoáhợp lệ ( khoá không hợp lệ có thể là khoá cũ đã hết hạn sử dụng hoặc khoá dođối phương chọn)
Làm cho U và V tin rằng họ có thể trao đổi khoá với người kia khi họ không
có khoá
Mục tiêu của phân phối khoá và giao thức thoả thuận khoá là tại thời điểm kết thúcthủ tục, hai nhóm đều có cùng khoá K song không nhóm nào khác biết được (trừTA) Chắc chắn, việc thiết kế giao thức kiểu này khó khăn hơn nhiều trước đốiphương chủ động
Sự phân phối khoá trước: với mỗi cặp người dùng {U,V}, TA chọn một khoángẫu nhiên KU,V = KV,U và truyền “ngoài dải ” đến U,V trên kênh an toàn (nghĩa làviệc truyền khoá không xảy ra trên mạng do mạng không an toàn) Biện pháp nàygọi là an toàn không điều kiện song nó đòi hỏi một kênh an toàn giữa TA và nhữngngười sử dụng trên mạng Mỗi người dùng phải lưu trữ (n-1) khoá và TA cần truyềnn(n-1) khoá Trong một mạng tương đối lớn, điều này trở nên quá tốn kém và nhưvậy giải pháp hoàn toàn không thực tế
Một cách tiếp cận thực tế hơn là TA phân phối khoá trực tiếp Trong sơ đồnhư vậy, TA làm việc như là một server khoá TA trao tham gia khoá bí mật KU chomỗi người dùng U trên mạng Khi U muốn liên lạc với V, cô ta yêu cầu TA cungcấp cho một khoá phiên liên lạc, TA sẽ tạos ra khoá phiên liên lạc K và gửi nó dướidạng mã hoá cho U và V để giải mã Hệ thống mã Kerberos dựa trên ý tưởng này.Nếu như người dùng cảm thấy vấn đề phân phối khoá qua TA không thực tế hoặckhông như được như mong muốn thì biện pháp chung là dùng giao thức thoả thuậnkhoá Trong giao thức thoả thuận khoá U và V phối hợp chọn một khoá bằng cách
Trang 34liên lạc với nhau trên kênh công khai Ý tưởng đáng chú ý này do Martin và Diffieđưa ra độc lập với Merkle Hai giao thức đáng quan tâm nữa là MTI và Girault.
1/ Trao đổi khoá Diffie - Hellman
Giao thức thoả thuận khoá đầu tiên và nổi tiếng nhất là giao thức Diffie –Hellman Trong giao thức này, khoá được tạo ra từ sự kết hợp của hai thành viên
Sơ đồ trao đổi khoá Diffie - Hellman
αav
Trang 35Hình 1.3:Trao đổi khoá Diffie – Hellman
Giao thức có thể bị tấn công bởi một đối phương chủ động W, những người sử dụngcách tấn công “kẻ xâm nhập giữa cuộc” W sẽ chặn lại các bức điện giữa U và V vàthay thế bằng bức điện của riêng mình
Hình 1.4: Kẻ xâm nhập giữa cuộc trong giao thức Diffie – Hellman
Tại thời điểm cuối của giao thức, U thiết lập khoá bí mật αa a’v cùng với W,còn V thiết lập khoá bí mật αa’ u a v cùng với W Khi U cố mã hoá bức điện để gửi cho
V, W có khả năng giải mã nó song V thì không thể Tương tự khi V gửi bức điện tới
U Giải pháp để tránh sự xâm nhập của W là U và V nên thiết lập việc xác địnhdanh tính của nhau Tuy nhiên, điều này vẫn không an toàn trước sự tấn công của kẻxâm nhập giữa cuộc nếu W vẫn duy trì cách tấn công bị động cho đến khi U và Vxác minh danh tính của nhau Vì thế các giao thức thoả thuận khoá tự nó cần xácthực được danh tính của những người tham gia cùng lúc khoá được thiết lập
2/ Giao thức trạm tới trạm (station to station)
Đây là một giao thức thoả thuận khoá được cải tiến từ sơ đồ trao đổi khoáDiffie – Hellman Giao thức giả thiết số nguyên tố p và phần tử nguyên thuỷ α đượcbiết một cách công khai và nó được dùng cùng với các dấu xác nhận Mỗi người sử
dụng U sẽ có một sơ đồ chữ ký với thuật toán xác minh công khai verU TA cũng có
sơ đồ chữ ký với thuật toán xác minh công khai verTA Mỗi người sử dụng U cóchứng chỉ:
C(U) = (ID(U), verU, sigTA(ID(U), verU)) trong đó ID(U) là thông tin định danh cho U
αau Người dùng U Người dùng W Người dùng V
αa’v
αa’u
αav
Trang 36Giao thức “trạm tới trạm” có xác thực của Diffie, Van Oorschot và Wiener như sau:
V xác minh yU bằng verU và xác minh C(V) nhờ verTA
W không thể tính chữ ký của V trên (sigV (αa αa’ u)) vì không biết thuật toán
ký sigV của V Tương tự, W không thể thay sigU (αa
,αa’v) bằng sigU (αa’u
,αa) vì
không biết thuật toán ký sigU của U Điều này được minh hoạ dưới đây:
Hình 1.5: Giao thức trạm tới trạm
Khi có sự xâm nhập của W:
Hình 1.6: Giao thức trạm tới trạm có sự xâm nhập giữa đường
αau Người dùng U αav,sigv(αav,αau) Người dùng V
sigu(αau, αav)
αau Người
dùng U
Người dùng V
αa’v,sigv(αa’v,αau) =?
sigu(αau, αa’v)
αa’u Người
dùng W αav,sigv(αav,αa’u)
sigu(αa’u, αav) =?
Trang 37Tóm lại, nhờ sử dụng chữ ký mà có thể tránh sự tấn công của W.
Giao thức này không đưa ra sự khẳng định khoá Tuy nhiên, dễ dàng biến đổi đểthực hiện được điều đó bằng cách định nghĩa:
yV = eK(sigV (αau
,αav)) trong bước 4
và yU = eK(sigU (αau
,αav)) trong bước 7
3/ Giao thức thoả thuận khoá MTI (Matsumoto, Takashima, Imai)
Giao thức này không yêu cầu U và V tính bất kỳ chữ ký nào Nó là giao thứchai lần truyền vì chỉ có hai lần truyền thông tin riêng biệt (một từ U đến V và một từ
V đến U) Trái lại giao thức STS (station to station) được gọi là giao thức 3 bước
U chọn rU ngẫu nhiên, 0≤ rU ≤ p-2 và tính: sU = αrumod p
U gửi (C(U),sU)) đến V
V chọn rV ngẫu nhiên, 0≤ rV ≤ p-2 và tính: SV = αr vmod p
V gửi (C(V),sV)) đến U
U tính: K = sVabVrumod p Tại đây, cô nhận được giá trị bV từ C(V)
V tính: K = sUabUrvmod p Tại đây, anh ta nhận được giá trị bV từ C(V)
Trong đó:
+ p, α được biết công khai
+ Mỗi người sử dụng U đều có xâu ID(U), số mũ bí mật aU (0≤ aU ≤ p-2) và giá trịcông khai tương ứng: bU =αa mod p Tương tự đối với V
+ TA sẽ có sơ đồ chữ ký với thuật toán xác minh công khai verTA và thuật toán ký
mật sigTA
+ Mỗi người sử dụng U có dấu xác nhận: C(U) = (ID(U), bU, sigTA(ID(U), bU)) trong
đó bU được thiết lập như trên Tương tự cho V
+ Cả U và V cùng tính khoá: K = αruv+rv u mod p
Ví dụ:
Giả sử p= 27803, α = 5
Giả sử U chọn aU = 21131, V chọn aV = 17555 Khi đó:
Trang 38KU,V = sUabUrvmod p = 6268175552142023456 mod 27803 = 21600
Độ mật của giao thức MTI trước sự tấn công thụ động đúng bằng bài toán Diffie –Hellman Khi không dùng chữ ký trong suốt quá trình thực hiện giao thức, có thểgiao thức không an toàn trước sự tấn công giữa đường Khi có sự tấn công chủ động
4/ Giao thức thoả thuận khoá tự xác thực của Girault
Phương pháp thoả thuận khoá của Girault đưa ra không cần dấu xác nhận.Giá trị của khoá công khai và danh tính của người sở hữu nó sẽ ngầm xác thực nó
Sơ đồ Girault kết hợp tính chất của RSA và thuật toán logarithm rời rạc Giả sửn=pq, p= 2p1+1, q= 2q1+1 và p, q, p1, q1 đều là các số nguyên tố lớn Giá trị n chỉđược biết bởi TA TA chọn số mũ mã hoá e (công khai) và số mũ giải mã d (bí mật)
mà d = e-1 mod Φ(n)
Mỗi người sử dụng U có một xâu ID(U) U nhận được khoá tự xác nhận pU từ TA