Sơ đồ định danh

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu hệ mật mã khoá công khai trong giao dịch điện tử (Trang 73 - 88)

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”;

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu hệ mật mã khoá công khai trong giao dịch điện tử (Trang 73 - 88)

Tải bản đầy đủ (PDF)

(88 trang)