3.4.1. Thư viện hàm cỏc phộp tớnh trờn số lớn
Ta xõy dựng lại thƣ viện cỏc hàm và cỏc thủ tục xử lớ tớnh toỏn cộng trừ nhõn chia… cỏc số lớn:
public statuc BigInteger operator + (Biginteger bi1, BigInteger bi2)
Kết quả trả về là tổng của 2 số lớn x, y
public statuc BigInteger operator - (Biginteger bi1, BigInteger bi2)
Kết quả trả về là hiệu của 2 số lớn x, y
public statuc BigInteger operator * (Biginteger bi1, BigInteger bi2)
Kết quả trả về là tớch của 2 số lớn x, y
public statuc BigInteger operator / (Biginteger bi1, BigInteger bi2)
Kết quả trả về là phần nguyờn của phộp chia số lớn x cho y
public statuc BigInteger operator ^(Biginteger bi1, BigInteger bi2)
Kết quả trả về là một số lũy thừa
public BigInteger gcd(Biginteger bi)
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
3.4.2. Thuật toỏn kiểm tra một số lớn là nguyờn tố
Trong cỏc phƣơng phỏp kiểm tra cỏc số nguyờn dƣơng lẻ là nguyờn tố trƣớc đõy, một cỏch thụng thƣờng là việc kiểm tra xem cỏc số lẻ khụng quỏ căn bậc 2 của số nguyờn ấy cú là ƣớc thực sự của số nguyờn ấy khụng và kết luận về tớnh nguyờn tố của nú. Với cỏc phƣơng phỏp trờn ta cú một khẳng định chớnh xỏc về tớnh nguyờn tố nhƣng tốc độ kiểm tra khụng thể ỏp dụng với những số nguyờn lớn. Việc kiểm tra tớnh nguyờn tố của cỏc số nguyờn lớn tới cỡ vài trăm chữ số thỡ ta khụng thể ấp trờn đƣợc, đũi hỏi phải cú những phƣơng phỏp. Dƣới đõy là một phƣơng phỏp mới cú thể ỏp dụng cho việc kiểm tra tớnh nguyờn tố trờn cỏc số nguyờn lớn. Áp dụng cỏc phƣơng phỏp
Kiểm tra Miller – Rabin là một thuật toỏn xỏc suất để kiểm tra tớnh nguyờn tố cũng nhƣ cỏc thuật toỏn kiểm tra tớnh nguyờn tố: Kiểm tra Fermat và Kiểm tra Solovay – Strassen. Nú đƣợc đề xuất đầu tiờn bởi Gary L. Miller nhƣ một thuật toỏn tất định, dựa trờn giả thiết Riemann tổng quỏt; Micheal O. Rabin đó sửa chữa nú thành một thuật toỏn xỏc suất.
3.4.3. Thuật toỏn Gordon sinh số nguyờn tố mạnh
Số nguyờn tố mạnh thƣờng dựng trong việc sinh khúa mó RSA để đảm bảo tớnh an toàn cho hệ mó.
Định nghĩa 4.1
Số p là số nguyờn tố mạnh nếu tồn tại r, s, t thỏa món:
Thứ nhất: p-1 cú ƣớc là số nguyờn tố lớn r
Thứ hai: p+1 cú ƣớc là số nguyờn tố lớn s
Thứ 3:r-1 cú ƣớc là số nguyờn tố lớn t.
Thuật toỏn Gordon gồm cỏc bước sau:
Bước 1: Phỏt sinh 2 số nguyờn tố siờu lớn s, t.
Bước 2: Chọn i* thuộc N* và tỡm r = 2*i*t + 1 với i = i*, i = i*+1… đầu tiờn làm cho r vượt qua Miller_Rabin_Test.
Bước 3: z:=s^(r-1) mod s*r Bước 4: p*:=2*z-1
Bước 5: Chọn k* thuộc N và tỡm p = p* + 2*k*r*s với k = k*, k = k*+1… đầu tiờn làm cho p vượt qua Miller_Rabin_Test.
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Bước 6: p là kết quả.
3.4.4. Hàm băm
public byte[] HashByte(byte[] bytes) {
byte[] HashBytes = null;
// Convert the encrypted bytes back to a string (base 16) SHA1CryptoServiceProvider SHS = new
SHA1CryptoServiceProvider SHS(); hashBytes = SHS.ComputeHash(bytes); return hashBytes;
3.4.5. Sơ đồ khối cỏc thủ tục kớ và xỏc nhận chữ kớ
Thủ tục của cỏc sơ đồ chữ kớ số mới là nhƣ nhau, tỏc giả xin đƣa ra thủ tục của phƣơng trỡnh xỏc minh sau:
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
a. Thủ tục sinh khúa
Hỡnh 3.1. Sơ đồ thủ tục tạo một bộ khúa
Temp:=temp+1 r:=temp δ’+1 Output (δ, n) r nguyờn tố r-1 chia hết δ’’ Yes No Temp1:=temp1+1 p:=temp δ’’+1 p nguyờn tố p-1 chia hết δ’ Yes No Tớnh n:=r*p tớnh δ:=δ’* δ’’
Input: 2 số nguyờn tố ngẫu nhiờn δ’, δ’’(80 bit). Temp =0
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
b. Thủ tục kớ
Hỡnh 3.2. Sơ đồ thủ tục kớ Input: Điện văn M;
cỏc khúa bớ mật
Chọn số ngẫu nhiờn U
Tớnh giỏ trị hàm băm của M
Tớnh giỏ trị: g, k theo cụng thức
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/ c. Thủ tục kiểm tra chữ kớ Hỡnh 3.3. Sơ đồ thủ tục xỏc minh một chữ kớ Output: 2 số nguyờn tố ngẫu nhiờn δ’, δ’’ (80 bit). Temp =0 Temp1 =0 cỏc khúa bớ mật
Input: Điện văn, chữ
kớ(M, g, k) Khúa cụng khai cỏc khúa bớ mật Tớnh giỏ trị : Output: (S khụng đỳng là chữ kớ của M) Output: (S đỳng là chữ kớ của M) T = k Yes T F No
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
3.4.6. Cỏc chức năng chớnh của chương trỡnh ứng dụng
a. Giao diện chớnh của chƣơng trỡnh
Với giao diện dễ sử dụng, đối với cỏc sơ đồ chữ kớ số mới thỡ đều cú chức năng tạo khúa, kớ văn bản và xỏc nhận chữ kớ.
Hỡnh 3.4. Giao diện chớnh của chƣơng trỡnh ứng dụng b. Chức năng tạo bộ khúa
Trƣớc khi tạo khúa, chƣơng trỡnh sẽ tạo một mật khẩu cho ngƣời dựng. Mỗi ngƣời dựng cú một mật khẩu của riờng mỡnh cho từng cặp khúa. Nhƣ thế để khi ngƣời dựng cú bị mất file chứa khúa thỡ cũng khụng bị lộ khúa bớ mật. Tiếp theo đú chƣơng trỡnh sẽ tự động tạo cặp khúa và lƣu vào 2 file khỏc nhau.
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Hỡnh 3.5. Chức năng tạo bộ khoỏ c. Chức năng kớ văn bản
Đầu tiờn ngƣời dựng phải chọn file cần kớ và phải chọn file privakey của mỡnh. Ở đõy để load đƣợc file privakey ngƣời của mỡnh, ngƣời dựng phải đỏnh đỳng mật khẩu mà mỡnh đó tạo ra privakey. Lỳc đấy chƣơng trỡnh sẽ tạo ra cặp khúa tƣơng ứng và lƣu vào 1 file
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
d. Chức năng xỏc thực chữ kớ
Với thụng tin đầu vào gồm một văn bản đó đƣợc chọn là để xỏc thực chữ kớ. Ngƣời dựng chọn file chứa publickey của ngƣời kớ văn bản. Và cặp khúa tƣơng ứng mà ngƣời kớ gửi sang. Chƣơng trỡnh sẽ tự động kiểm tra xem chữ kớ đấy cú phải của ngƣời đú kớ khụng.
Hỡnh 3.7. Chức năng xỏc thực chữ kớ – kiểm tra chữ kớ là sai
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
3.5. Túm tắt chƣơng
Sử dụng một kĩ thuật mới trong phƣơng phỏp rỳt gọn chữ kớ số dựa vào độ khú của bài toỏn phõn tớch một số nguyờn lớn thành thừa số nguyờn tố, ở đõy chỳng ta đó giảm đƣợc độ dài chữ kớ ở mức bảo mật tối thiểu xuống cũn 320 bit (280 phộp tớnh). Để cú đƣợc khả năng nhƣ vậy chỳng ta dó sử dụng số nguyờn tố δ làm thành phần khúa bớ mật và đề xuất phƣơng phỏp rỳt gọn chữ kớ số thụng qua phƣơng trỡnh xỏc minh chữ kớ “ba cấp”. Kết hợp tớnh toỏn bốn nhúm khỏc nhau Gδ, Gq, Gn, và Gr. Trong đú, ở bờn tạo chữ kớ số chỉ tớnh toỏn trờn ba nhúm Gδ, Gq, và Gr. Cũn bờn xỏc nhận chữ kớ số thỡ cỏc phộp tớnh đƣợc thực hiện trong hai nhúm Gn, và Gr. Trong việc thực hiện rỳt gọn chữ kớ số dựa vào phƣơng trỡnh xỏc minh “ba cấp” với cỏc giỏ trị r = 2pq + 1 để sinh ra khúa cụng khai thỡ độ phức tạp hơn trong tiờu chuẩn DSA và trong RSA, tuy nhiờn nú cú thể đơn giản hơn bằng cỏch sử dụng giỏ trị r sao cho r = epq + 1, trong đú e là t bớt, t = 10 đến 16 bớt. Trong trƣờng hợp này với sự lựa chọn q và p là số nguyờn tố và việc đƣa e vào để r cũng là số nguyờn tố xỏc suất sẽ cao hơn. Kết quả này cung cấp đầy đủ tớnh toỏn hiệu quả trong việc tạo khúa.
Cỏc mụ tả bởi phƣơng trỡnh xỏc minh của phƣơng phỏp rỳt gọn chữ kớ số (3.1) và (3.3) sử dụng yếu tố tổng hợp δ. Tuy nhiờn đó đơn giản thiết kế để đƣợc nhanh hơn, trong cả phƣơng trỡnh kớ và xỏc nhận kớ. Phƣơng trỡnh xỏc minh chữ kớ (3.1) và (3.3) dƣờng nhƣ đƣợc ứng dụng thực tế cao hơn. Về hiệu suất tớnh toỏn thỡ phƣơng phỏp rỳt gọn chữ kớ số này cũng gần giống với phƣơng phỏp DSA. Độ phức tạp của thủ tục xỏc nhận chữ kớ giảm đi hai lần so với DSA.
Do sử dụng một kĩ thuật mới trong việc tạo chữ kớ. Nhƣ vậy chỳng ta đó tạo thành cụng rỳt gọn chữ kớ số, cú thiết kế dễ hiểu và cú kớch thƣớc giảm đi so với cỏc chữ kớ trƣớc. Phƣơng phỏp rỳt gọn chữ kớ này dựa trờn phƣơng phỏp phõn tớch một số nguyờn lớn ra thừa số nguyờn tố.
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
KẾT LUẬN
Mật mó là ngành khoa học đó đƣợc nghiờn cứu và ứng dụng từ rất lõu trong lịch sử. Trong thời đại bựng nổ thụng tin hiện nay, cỏc nguồn tin ngày càng đa dạng, rất nhiều thụng tin trong mọi ngành nghề, lĩnh vực đũi hỏi phải đƣợc bảo mật. Việc kớ và xỏc thực điện tử đƣợc ỏp dụng ngày càng phổ biến. Từ những nhu cầu lớn mang tớnh thực tiễn cao của xó hội đũi hỏi cỏc nhà khoa học ngành mật mó, khoa học mỏy tớnh và cụng nghệ thụng tin nhiều hơn nữa những sản phẩm ứng dụng trong việc mó húa, trao đổi, giao dịch, kớ và xỏc thực điện tử. Cỏc sản phẩm đú phải đỏp ứng ngày càng cao hơn về tốc độ làm việc, sự phong phỳ trong cỏc lĩnh vực trờn cỏc nền tảng phần cứng, phần mềm…
Những vấn đề đó hoàn thành:
Theo những mục tiờu chớnh đó đƣa ra của luận văn này với tiờu đề “Nghiờn cứu và phỏt triển phƣơng phỏp rỳt gọn chữ kớ số”. Ngoài việc giới thiệu những khỏi quỏt về mật mó, mật mó khúa cụng khai, những ứng dụng và những vấn đề cơ bản liờn quan đến hệ mật mó khúa cụng khai. Về chữ kớ số và ứng dụng của chữ kớ số trong cuộc sống. Tỏc giả cũng đó đi sõu nghiờn cứu cơ sở lớ thuyết về cỏc sơ đồ chữ kớ số. Nhƣ xõy dựng sơ đồ chữ kớ số dựa trờn độ khú của bài toỏn phõn tớch một số ra thừa số nguyờn tố, hay xõy dựng chữ kớ số dựa trờn tớnh khú của bài toỏn logarit rời rạc cũng nhƣ dựa trờn bài toỏn đƣờng cong elliptic. Tƣ tƣởng chớnh của việc phỏt triển và việc nghiờn cứu là dựa trờn tớnh khú của của bài toỏn phõn tớch một số ra thừa số nguyờn tố để rỳt gọn chữ kớ số. Đồng thời xõy dựng cỏc lƣợc đồ chữ kớ số ngắn gọn hơn.
Về lý thuyết thỡ sơ đồ chữ kớ số mới cú độ dài ngắn hơn so với độ dài chữ kớ thụng thƣờng trƣớc đú, nhƣng vẫn đảm bảo đƣợc độ an toàn cần thiết. Tuy nhiờn những ƣu việt của sơ đồ chữ kớ số mới cần đƣợc chứng minh trong thực tế sử dụng.
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
TÀI LIỆU THAM KHẢO Tiếng Việt
1. PGS. TS Nguyễn Bỡnh (2004), Giỏo trỡnh Mật mó học, Nhà xuất bản Bƣu Điện. 2. Dƣơng Anh Đức, Trần Minh Triết (2005), Mó húa và ứng dụng, Nhà xuất bản TP Hồ Chớ Minh.
3. Trần Văn Dũng (2007), Giỏo trỡnh an toàn và bảo mật thụng tin, trƣờng ĐH GTVT.
4. Nguyễn Khỏnh Văn (2000), Mật mó và an toàn thụng tin, trƣờng ĐHBKHN. 5. Hà Huy Khoỏi, Ngụ Việt Trung, Phạm Huy Điền (2004), Mó húa thụng tin – Cơ sở toỏn học và ứng dụng, Nhà xuất bản Đại học Quốc gia.
6. Một số thụng tin trờn Website http://Wikipedia.org
Tiếng Anh
7. Nikolay A. Moldovyan, “Short Signatures from Difficulty of Factorization Problem”, International Journal of Network Security, Vol.8, no.1, PP.90-95, Jan. 2009 90
8. T. ElGamal, “A public key cryptosystem and a signature scheme based on discrete logarithms”, IEEE Transactions on Imfomation Theory, vol. IT=31. no.4.pp.469 – 472, 1985.
9. Certicom Research (2000), SEC2: Recommended Elliptic Curve Domain Parameters, Certicom Corp.
10. Fiat A., Chamir A. (1987) How to prove yourself: Practical solutions to identification and signature problems. Advancs in cryptology – CRYPTO‟ 86, springer – Verlag LNCS, vol. 263, pp. 186 – 194.
11. Hastad J. (1988) Solving simultaneous modular equations of low degree. SIAM Journal on Computing.
12. Menezes A. J., Vanstone S.A (1996)Handbook of Applied Cryptography. 780 p.
13. Mohan Atreya, Ben Hammond, Stephen Paine, Paul Starret, Stephen Wu (2002), Digital Signature, RSA.
14. Moldovyan N. A. (2005) New Public Key Cryptosystems Based on Difficulty of Factorization and Discrete Logarithm Problems.
15. Rabin M. O. (1979) Digitalized signatures and Public key functions as intractable as factorization. – Technical report MIT/ LCS/ TR – 212, MIT Laborary for Computer Science
16. Rivest R.L., Shamir A., and Adleman L.M. A Method (1978) For Obtaining Digital Signatures and Public Key Cryptosystems, Communicationspf
17. Schneier B. (1996), Applied Cryptography: Protocol, Algorithms, and Source code (Second Edition) – New York – John Wiley & Sons.
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
18. Simmons G.J, Norris M.J.(1977)Preliminary comments on the M.I.T public key cryptosystem. Cryptologia, n.1, pp. 404 -416.