Các sơ đồ định danh (giao thức định danh) có quan hệ rất gần, nhưng đơn giản hơn so với các sơ đồ chữ ký số. Cũng có mục tiêu giống như các sơ đồ chữ ký số, tuy nhiên điểm khác biệt ở chỗ trong các sơ đồ chữ ký chúng ta phải quan tâm đến khái niệm “thời gian sống” (của chữ ký).
Sơ đồ định danh nói chung là một sơ đồ đơn giản, có thể thực hiện trên các thẻ thông minh (thẻ tín dụng) có khả năng thực hiện các tính toán số học. Yêu cầu chung được đặt ra đối với bất kỳ sơ đồ định danh nào:
1. Người yêu cầu xác minh B chọn một số ngẫu nhiên x và gửi x cho A;
2. A là người phải chứng minh danh tính của mình trước B, A tính:
y = e k ( x ) và gửi y cho B;
3. B nhận được y và tính:
y ’ = e k ( x )
A được công nhận nếu y ’ bằng y và ngược lại.
Hình 4.6: Giao thức định danh
y
r C,
A B
Giao thức định danh
Sơ đồ định danh SCHNORR
Sơ đồ định danh SCHNORR là một trong những sơ đồ định danh có tính thực tiễn cao nhất. Sơ đồ này yêu cầu một người (cá nhân, tổ chức) được tín nhiệm tham gia vào quá trình định danh gọi là TA.
Xây dựng sơ đồ
1. Chọn p là một số nguyên tố lớn (p > 2 512 ) để sao cho bài toán logarit rời rạc trong Z p * không giải được;
2. q là ước nguyên tố lớn của (p-1): q ≥ 2 140 ; 3. Gọi Z p * có bậc q
q
Z p
cua thuy nguyen tu
phan p
p
) (
) 1 (
*
(4.10)
4. Một tham số môi trường t sao cho q > 2 t
5. TA thiết lập một sơ đồ chữ ký mật sig TA và ver TA
6. Chỉ ra một hàm hash mật, mọi thông tin được băm trước khi ký;
Các giá trị p, q, , ver TA và hàm hash sử dụng được công khai.
Phân tích:
Vai trò của TA: Xác thực cho A
- TA thiết lập danh tính của A bằng cách lập 1 chứng minh thư điện tử xác nhận ngày sinh, hộ chiếu, … Sau đó tạo thành một chuỗi ID(A) chứa đầy đủ các thông tin định danh của A;
- A chọn một số mũ ngẫu nhiên a sao cho 0 ≤ a ≤ q -1 và tính:
= -a mod p Gửi cho TA;
- TA tạo ra một chữ ký
s = sig TA (I,v) đóng vai trò là dấu xác nhận cho A: C (A) = (ID A , v, s);
Khi A muốn chứng minh danh tính của mình trước B, A phải thực hiện:
= k mod p
2. A gửi C (A) = (ID A , v, s) và y cho B;
3. B xác minh chữ ký của TA bằng cách kiểm tra xem ver TA (ID A , v, s) = TRUE hay không
4. B chọn ngẫu nhiên 1 số r: 1 ≤ r ≤ 2 t và gửi cho A;
5. A tính:
y = k + ar mod q Và gửi y cho B;
6. B xác minh:
y . v r (mod p) Nhận thấy rằng:
y . v r (mod p) (4.11)
k + ar . v r (mod p)
k + ar . -ar (mod p) vì -a (mod p) k (mod p) .
Trong sơ đồ SCHNORR, a là một số mật được chọn ngẫu nhiên sao cho 0 ≤ a ≤ (q -1) để tạo ra v. Trong thực tế sử dụng, a chính là số PIN dùng để phân biệt chủ sơ hữu thực sự của thẻ đồng thời dùng để thuyết phục B rằng người tham gia thực hiện giao thức định danh với mình chính là A. Trong giao thức này, A hoàn toàn không bị lộ ra ngoài (bước 5), chính A (thẻ của A) sử dụng số a để tính ra y đáp ứng lại yêu cầu của B. Như thế a được gọi là một chứng minh không tiết lộ thông tin.
Đánh giá
Nếu kẻ tấn công O muốn mạo danh, O sẽ thực hiện nhiều phương án. Thứ nhất, nếu O đoán ra đựơc yêu cầu r của B, khi đó O sẽ gửi giá trị y . v r (mod p) cho B. Khi B nhận được , B gửi yêu cầu r lại cho A, lúc này O mạo danh A sẽ gửi lại cho B giá trị y đã được chọn sẵn từ trước. Tham số t được đề cập đến trong giải thuật của sơ đồ SCHNORR chính là được sử dụng để ngăn chặn O thực hiện
phương án này, vì r nằm trong khoảng 1 ≤ r ≤ 2 t , trong hầu hết các ứng dụng, chọn t
= 40, do đó xác suất để O đoán trúng giá trị r mà B sử dụng chỉ là 2 -t (2 -40 ).
Cách thứ 2 mà O có thể thực hiện nhằm giả mạo A đó là O làm giả dấu xác nhận của A: C (A) ’ = (ID A , v’, s’); (v’ ≠ v), s’ là chữ ký mà TA sử dụng để xác minh A. Vì lý do này mà TA phải được chọn là một bên thứ ba đáng tin cậy.
Cách thứ 3 để O mạo danh A đó là O sử dụng dấu xác nhận C (A) của A (dấu xác nhận của A không được giữ mật, sau nhiều lần sử dụng, C (A) gần như là công khai).Tuy nhiên, để mạo danh A thành công, O phải luận ra đựơc số PIN (a) mà A sử dụng (để luận ra được a, O phải giải được bài toán logarit rời rạc là bài toán đã được giả thiết đặt ra là không thể giải được).
Xét trường hợp kẻ mạo danh O chính là người nhận tin B, khi đó, B sẽ nhiều lần yêu cầu A chứng minh danh tính và sẽ chọn các yêu cầu r một cách có chủ ý, để cố gắng xác định được số PIN mà A sử dụng. Do O biết được giá trị nên tồn tại một xác suất để O thành công : ≥ 1/2 (t-1) , tương ứng với việc O tìm được a trong đa thức thời gian.
Trong trường hợp kể trên, nếu O giả mạo thành công, giao thức sử dụng là không an toàn, ngược lại, giao thức sử dụng là an toàn. Giao thức định danh SCHNORR không được chứng minh là một giao thức an toàn, tuy nhiên nó vẫn được ưa thích và sử dụng rộng rãi trong thực tế vì hầu như không có nhược điểm nào với thời gian thực hiện nhanh hơn nhiều so với các giao thức khác.
4.3 Ứng dụng hệ mật RSA cho bài toán GDĐT
Hệ mật mã RSA được ứng dụng cho bài toán GDĐT bằng cách xây dựng một chương trình gửi nhận tin sử dụng mã hoá RSA, thông tin về người gửi, người nhận được gắn kèm vào thông tin chứa đựng trong bản mã. Chương trình có nhiệm vụ:
- Tạo cặp khoá công khai/khoá cá nhân e, d theo hệ mật RSA
+ Tạo số lớn (32bit) ngẫu nhiên
+ Kiểm tra tính nguyên tố (6n+1)
+ Tính toán các giá trị n, (n), chọn số mũ mã hoá e, sử dụng thuật toán Euclid mở rộng để tính ra số mũ mã hoá d
- Mã hoá bản tin gửi, thông tin người gửi đi bằng khoá vừa tạo: Bản rõ được chuyển đổi sang dạng số nguyên, thông tin người gửi, thông tin người nhận, được mã hoá RSA bằng khoá công khai của người nhận.
- Giải mã bản mã hoá RSA thu được: Thông tin người nhận được kiểm tra với khoá cá nhân của người nhận, nếu phù hợp coi như người nhận tin đã được xác minh. Bản mã sau đó được giải mã RSA bằng khoá cá nhân của người nhận.
Giải thuật của chương trình được xây dựng như sau:
Tạo khoá:
Gửi tin:
Tạo số lớn NN
KT Nguyên
tố?
Tính n, (n)
Chọn e
Tính d Y
N
Nhập khoá CN người gửi
Bản rõ Thông tin
người gửi
Thông tin người nhận
Chuyển đổi sang số nguyên
Nhận tin:
Một số giao diện của chương trình:
N
Y Nhập khoá cá Y
nhân
Bản mã
Thông tin người nhận
Giải mã RSA Kiểm tra
Bản rõ
Kết thúc
Menu chính
Menu thủ tục mã hoá
Menu thủ tục giải mã
Kết luận
Qua kết quả thực hiện luận văn, tôi nhận thấy:
An ninh trong các giao dịch điện tử là vấn đề rất quan trọng, trong đó các hệ mật mã hiện đại giữ vai trò chủ yếu, quyết định. Các hệ mật mã hiện đại là cơ sở để phân tích, đánh giá và thiết kế các kênh liên lạc an toàn trên mạng. Thuật toán dành cho các hệ mật mã hiện đại như: RSA, Elgama, Rabit,…đã được quan tâm từ rất lâu, nhưng chỉ từ khi công cụ tin học phát triển nó mới được đẩy mạnh thực sự cả về lý thuyết lẫn thực hành và đã đem lại được nhiều ứng dụng quan trọng trong thực tế: chữ ký số, tiền số, xác thực điện tử, ... Các ứng dụng này đã được nhiều quốc gia trên thế giới công nhận là các phương tiện giao dịch họp pháp.
Qua nghiên cứu tôi nhận thấy rằng, các hệ mật mã hiện đại ứng dụng rất linh hoạt lý thuyết toán học, số học. Sự tường minh của toán học kết hợp với khả năng tính toán của những máy tính hiện đại giúp cho các hệ mã dễ dàng thực hiện một cách chính xác nhưng phá mã lại khó khăn tương đương với việc giải các bài toán khó. Để học tập và vận dụng vào công tác thực tế của mình, ta cần nghiên cứu kỹ các nguyên lý lý thuyết của các hệ mã, sau đó từng bước thực hành trên máy. Tôi nghĩ rằng đó là cơ sở tốt nhất để có thể có những vận dụng sáng tạo, những ý tưởng mới.
Qua quá trình thực hiện khoá luận tốt nghiệp, tôi tự thấy đã nắm chắc phần lý thuyết của các vấn đề mà mình nghiên cứu. Cụ thể là nguyên lý lý thuyết của các hàm băm, hệ mật mã khoá công khai (RSA), những sơ đồ chữ ký số, giao thức định danh, một số bài toán phân tích số nguyên, và một vài cách tấn công các hệ mật mã - những thành phần đóng góp một cách quan trọng nhất cho việc bảo đảm an ninh trong các giao dịch điện tử. Bên cạnh đó, ứng dụng những lý thuyết tìm hiểu được xây dựng bài toán mã hoá/giải mã thông tin gửi trong GDĐT.
Vì thời gian nghiên cứu có hạn, trình độ còn hạn chế nên các kết quả nghiên cứu của tôi chắc chắn còn nhiều thiếu sót. Mặc dù vậy, tôi tin rằng các kết quả đã đạt được sẽ là cơ sở quan trọng cho nhiều hướng nghiên cứu tiếp theo, như: nghiên cứu, cài đặt thử nghiệm các thuật toán mở rộng của hệ mật mã khoá công khai; xây dựng gói chương trình ứng dụng sử dụng các hệ mật hiện đại phục vụ an ninh giao dịch online; các nghiên cứu bẻ gẫy các hệ mật, ... Đem lại sự hiểu biết một cách tường tận hơn về mọi vấn đề liên quan đến việc bảo đảm an ninh, anh toàn dữ liệu trong các giao dịch trên mạng máy tính.
Phụ lục A: Các thuật ngữ viết tắt
Viết tắt Tiếng Anh Tiếng Việt
DES Data encryption standard Chuẩn mã hoá dữ liệu
RSA Rivest, Shamir và Adleman Tên của ba nhà phát minh ra loại mã RSA SET Secured Electronic
Transaction Giao dịch điện tử an toàn TTP Trusted Third-party Uỷ thác cho bên thứ 3 tin cậy PKI Public key infrastructure Hạ tầng khoá công khai PKCS#1 Public key cryptography
standards
Các tiêu chuẩn mật mã khoá công khai, còn đợc gọi là tiêu chuẩn mã hoá RSA.
CRT Chinese Remainder Theorem Định lý số dư Trung Quốc MAC Message Authentication
Code
Mã xác thực bản tin API Application Programming
Interface Giao diện lập trình ứng dụng được định nghĩa là cách giao tiếp có thể thực hiện giữa các ứng dụng.
Giao tiếp này là một tập hợp của các hàm hoặc các phơng pháp đợc sử dụng để truy cập đến một số các chức năng.
MDC Modification Detection Code or Manipulation Detection Code
Mã dò thay đổi
OWHF One-Way Hash Function Hàm hash một chiều CRHF Collision Resistant Hash
Function
Hàm hash chống xung đột
Phụ lục B: Các thuật ngữ tiếng Anh dịch sang tiếng Việt Thuật ngữ tiếng Anh Thuật ngữ tiếng Việt
"tweakable" block cipher Mã hoá khối với tham số: đầu vào của dạng thuật toán này bên cạnh bản rõ/bản mã và các khoá còn có thêm một tham số là tweak, tham số này kết hợp với các khoá sử dụng để lựa chọn cách hoán vị của thuật toán.
Adversary Kẻ tấn công hệ mật mã, thám mã, kẻ giả mạo.
Associative Tính chất kết hợp
Asymmetric cryptography Mật mã khoá bất đối xứng Authentication scheme Lược đồ/sơ đồ định danh
Axiom Tiên đề
Bijection Song ánh, (chính là ánh xạ 1-1)
Blocklength Độ dài của một khối trong mã hoá khối Certificate Authority Chứng nhận bản quyền chứng chỉ
Certificates Chứng nhận người dùng
Chaining variable Biến dây chuyền, chỉ cơ chế lưu giữ tạm thời các giá trị lối ra của hàm đang trong vòng lặp.
Collision resistant (collision free)
(Hàm) Chống xung đột, chống va chạm
Commutative Tính chất Giao hoán
Congruent Đồng dư
Cyclic permutation Phép hoán vị vòng quanh
Deterministic Tính chất tiền định, tức là một sự lựa chọn có tính toán, ngược lại với ngẫu nhiên.
Deterministic algorithm Giải thuật tiền định, là một giải thuật mà có khả năng phỏng đoán được. Với một lối vào biết trước, giải thuật luôn tạo ra chính xác cùng một lối ra.
Digital cash Tiền điện tử
Digital certificate Chứng chỉ số, Chứng thực khoá công khai (chống lại tấn công đứng giữa)
Digital envelope Vỏ bọc số Digital fingerprint Vân tay số
Digital signature scheme Lược đồ/sơ đồ chữ ký số Digital signatures Chữ ký số
Distributive Tính chất phân phối Entity Authentication (hay
identity verification)
Xác thực, hay định danh Exhaustive search Tìm kiếm vét cạn
Extended Euclidean algorithm Giải thuật Euclid mở rộng Fermat's little theorem Định lý Fermat nhỏ Generator ( hay primitive
element) Phần tử sinh (phần tử gốc hay thành phần nguyên thuỷ)
Hard-core function Hàm lõi cứng
Hash collistion Xung đột băm, va chạm băm
Hash function Hàm băm
Hash table Bảng (các giá trị) băm
Hash value Giá trị băm
Homophonic substitution ciphers
Bộ mã thay thế đồng âm
Identification Nhận dạng
Index Chỉ số, còn đợc coi là khoá của hàm băm
Injection Đơn ánh
Injective function Hàm đơn ánh
Integer factorization Phân tích ra thừa số nguyên tố
Internal state Trạng thái bên trong, ám chỉ khái niệm chaining variable
Iterative hash function Hàm băm có tính lặp Key-exchange pair Cặp khoá trao đổi Leading cofficient Hệ số chỉ đạo
Least residue Thặng dư nhỏ nhất
Man-in-the-middle attack Tấn công đứng giữa; là một dạng tấn công mà kẻ tấn công mạo danh người khác để người gửi tin sử dụng khoá công khai mạo danh để mã hoá bản tin cần gửi, khi đó cả người gửi và người bị mạo danh đều không phát hiện được.
Memoryless variation of birthday attack
Phép biến đổi không nhớ của tấn công ngày sinh nhật
Message digest Tóm lược bản tin Mono-alphabetic substitution
cipher
Bộ mã thay thế sử dụng một bảng mẫu tự Multiplicative inverse Số nghịch đảo nhân
One-way cryptographic function
Hàm mã một chiều
Padding Việc thêm vào một số bit vào trong văn bản Pair relative primes Các số nguyên tố cùng nhau
Permutation Tính chất giao hoán
Plaintext Là các file,tài liệu dưới dạng mã ASCII (hoặc ký
Polyalphabetic substitution
ciphers Bộ mã thay thế sử dụng nhiều bảng mẫu tự Primitive element (hay
generator) Thành phần nguyên gốc (còn gọi là phần tử sinh)
Private key Khoá cá nhân
pseudo-random generators Bộ tạo giả ngẫu nhiên Pseudorandom sequences Chuỗi giả ngẫu nhiên
Public key Khoá công khai
Public-key cryptography Mật mã khoá công khai Public-key encryption scheme Sơ đồ mã khoá công khai Quadratic residue Thặng dư bậc hai
Redundancy function Hàm dư thừa
Round Một chu trình trong vòng lặp của mã hoá khối lặp rounds Số lần update liên tục các trạng tháI bên trong
(trong các giải thuật băm)
Second-preimage resistant (Hàm) Cản tiền ảnh thứ 2, chặn tiền ảnh thứ 2 Signature pair Cặp (khoá) chữ ký
Square root Căn bậc 2
Stream cipher Mã dòng
Subsequent Liên tục
Substitution ciphers Mã thay thế
surjection Toàn ánh
Symmetric cryptography Mật mã khoá đối xứng
Symmetric key Khoá đối xứng
Transposition ciphers Mã chuyển vị
Trapdoor one-way function Hàm một chiều có cửa sập
Zero-knowledge proof Chứng minh không tiết lộ thông tin Chosen-ciphertext attack Tấn công lựa chọn bản mã
Cube-root Căn bậc 3
Salting message Ướp muối bản tin, việc gắn thêm
vào bản tin một chuỗi bit đ-ợc tạo ngẫu nhiên tr-ớc khi tiến hành mã
hoá, chuỗi bit này độc lập với mỗi lần mã hoá.
Homomorphic property Đặc tính đồng hình
Time polynomial Đa thức thời gian, một số nguyên n có thể được kiểm tra (tính nguyên tố) trong thời gian đa thức theo log 2 n (là số bit trong biểu diễn nhị phân của n).
Tài liệu tham khảo Tiếng Việt
1. Nguyễn Bình (2000). “Mật mã: từ lý thuyết đến thực hành” – Học viện Mật mã;
2. Phạm Văn Doanh (????) “ Nghiên cứu thuật toán và Xây dựng phần mềm phân tích số nguyên theo phương pháp sàng bình phương phục vụ cho việc nghiên cứu các hệ mật mã khoá công khai ” – Học viện mật mã.
Tiếng Anh
3. A.Menezes, P.van Oorschot, S.Vanstone, (1996) “Handbook of Applied Cryptography”, CRC Press, available on
www.cacr.math.uwaterloo.ca/hac
4. Burt Kaliski – “The mathematics of the RSA Public-key cryptosystem”, RSA laboratories;
5. Charles Blair (1995). “Notes on Cryptography” – Business Administration Dept. University of Illinois;
6. FIPS PUB 186-2 (2000) – “Digital signature standard”, available on http://www.csrc.nist.gov/publications/fips/fips186-2/fips186-2- change1.pdf;
7. Ilya Mironov (2005) – “Hash functions: Theory, attacks, and applications”, Microsoft research, Silicon Valley Campus;
8. Leornado Bonomi, Gerard Beuchot, (1999) -“Security guidelines for Inter-regional application”, Security subgroup of the Teleregions SUN2 project;
9. RSA Laboratories (2002) – “PKCS#1 v2.1: RSA Cryptography standard”;
10. R.Rivest, A. Shamir, L. Adleman (1997) – “Public key cryptography – RSA”;
11. Ronald L.Rivest (1992) – “The MD5 message-digest algorithm”, IETF RFC 1321, available on www.ietf.org/rfc/rfc1321.txt;
12. R.L. Rivest, A. Shamir, L. Adleman (????) – “A method for Obtain
13. Visa & Master card institude (1997) “SET Secure Electronic Transaction Specification – Book 1: Business description”;