minh_ky

New Member

Download miễn phí Đề tài Một hệ chữ ký số có sử dụng RSA





Mục lục
Chương I. Chữ ký số dựa trên mật mã hiện đại 1
1-Giới thiệu 1
2- Chữ ký số từ hệ mã có thể đảo ngược 3
3 - Các định nghĩa và phân loại 5
4- Lược đồ chữ ký số cùng phụ lục 8
5- Lược đồ chữ ký khôi phục thông báo 9
6- Các kiểu tấn công trên lược đồ ký 12
7- Hàm băm 13
Chưng II. Lược đồ chữ ký số RSA15
1- Lược đồ chữ ký RSA 15
2- Các tấn công đối với chữ ký RSA 16
3- Chữ ký RSA trong thực tế 17
4- Định dạng chuẩn ISO/IEC 9796 20
5- Định dạng chuẩn PKCS #1 24
Chương III. Module thực hiện ký và kiểm tra chữ ký số sử dụng chứng chỉ số 27
1-Một số chuẩn mật mã khoá công khai 27
1.1-Giới thiệu về PKCS#1: Chuẩn mã hoá RSA 27
1.1.1- Sinh khoá 27
1.1.2- Cú pháp khoá 27
1.1.3- Tiến trình mã hoá 28
1.1.4- Tiến trình giải mã 28
1.1.5- Các thuật toán chữ ký số 28
1.2-Giới thiệu về định dạng PKCS#7 29
1.2.1- Data content type 30
1.2.2- Signed-data content type 30
1.2.3- Enveloped-data content type 32
1.2.4- Signed-and-enveloped-data content type 33
1.2.5- Digested-data content type 34
1.2.6- Encrypted-data content type 35
1.3- PKCS#8: Private-Key information Syntax Standard 35
1.3.1- Private-key information syntax 35
1.3.2- Encrypted private-key information syntax 36
2-Module thực hiện việc ký/kiểm tra chữ ký 36
2.1-Module thực hiện ký một tệp dữ liệu sử dụng chứng chỉ số 36
2.1.1-Các thưviện cung cấp các hàm thực hiện việc ký 36
2.1.2-Chương trình ví dụ thực hiện việc ký một tệp dữ liệu 38
2.2-Module thực hiện việc kiểm tra chữ ký số 40
2.2.1-Các thưviện cung cấp các hàm thực hiện việc kiểm tra chữ ký 40
2.2.2-Module chương trình ví dụ việc kiểm tra chữ ký 40



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

ông khai RSA và một khoá bí mật RSA
t−ơng ứng. Mỗi thực thể A thực hiện nh− sau:
1. Sinh ngẫu nhiên 2 số nguyên tố lớn khác nhau p và q, xấp xỉ về kích th−ớc .
2. Tính n = pq và φ = (p-1)(q-1).
3. Chọn ngẫu nhiên một số nguyên e, 1 < e < φ, thoả mãn gcd(e, φ) = 1.
4. Sử dụng thuật toán Euclidean mở rộng để tìm số nguyên duy nhất d, 1 < d
< φ, thoả mãn ed ≡ 1 (mod φ).
5. Khoá công khai của A là (n, e); Khoá bí mật của A là d.
-------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------
Thuật toán
Tóm tắt: Thực thể A ký một message m ∈ M. Thực thể B kiểm tra chữ ký của A và
khôi phục lại message m từ chữ ký.
1. Tạo chữ ký. Thực thể A thực hiện nh− sau:
(a) Tính ),(~ mR=m là một số nguyên trong khoảng [0, n-1].
(b) Tính s n. mod ~dm=
(c) Chữ ký của A trên m là s.
2. Kiểm tra ký. Để kiểm tra chữ ký s của A và khôi phục message m, B làm
nh− sau:
(a) Nhận đ−ợc khoá công khai của A là (n, e). (có xác thực)
(b) Tính m .n mod ~ es=
~(c) Kiểm tra rằng ;M m R∈ nếu sai, không chấp nhận chữ ký.
(d) Khôi phục m ( ).~1 mR−=
-------------------------------------------------------------------------------------------------
15
Chứng minh việc kiểm tra chữ ký. Nếu s là một chữ ký của message m, thì
với ,n mod ~ esm = ).(~ mRm =
( ) ( (R ~ -1= Rm
Vì ed ≡ 1 (mod φ), nên Cuối
cùng tìm m,
. n) (modm~ m~ ≡≡ edes
) m. )1 =− mR
Ví dụ (tạo chữ ký RSA với các tham số nhỏ)
Sinh khoá. A chọn 2 số nguyên tố p = 7927, q = 6997, và tính n = pq = 55465219
và φ = 7796 x 6996 = 55450296. Chọn e = 5 và giải ed = 5d ≡ 1 (mod 55450296),
tìm đ−ợc d = 44360237. Khoá công khai của A là (n = 55465219, e = 5); và khoá
bí mật của A là d = 44360237.
Tạo chữ ký. Để đơn giản, giả sử rằng M = Zn và hàm phần d− R: M -> Zn là ánh xạ
R(m) = m với ∀ m ∈ M. Để ký lên message m = 31229978, A tính
31229978, )(~ == mRm và tính chữ ký = 31229978n mod ~dms = 44360237 mod
55465219 = 30729435.
Kiểm tra ký. B tính m = 30729435n mod ~ es=
m
5 mod 5465219 = 31229978. Cuối
cùng, B chấp nhận chữ ký vì ~ đã đúng yêu cầu hàm phần d− (tức là, ,M m~ R∈ ).
và khôi phục = 31229978. ( )m~1Rm −=
2-Các tấn công đối với chữ ký RSA
(i) Phân tích số nguyên
Nếu kẻ tấn công có thể phân tích public modulus n của thực thể A, thì sau
đó hắn có thể tính φ và tiếp đó, sử dụng thuật toán Euclidean mở rộng, suy
ra private key d từ φ và luỹ thừa công khai e bằng cách giải bài toán ed ≡ 1
(mod φ). Nh− vậy, có nghĩa là đã phá vỡ hoàn toàn hệ thống (total break
attack). Để chống lại điều này, A phải chọn p và q để việc phân tích n là
không thể thực hiện đ−ợc.
(ii) Tính chất nhân của RSA
L−ợc đồ ký RSA (cũng nh− ph−ơng pháp mã hoá) có tính chất nhân, đôi khi
đ−ợc xem nh− tính chất đồng cấu (homomorphic property). Nếu s1 = m1d
mod n và s2 = m2d mod n là các chữ ký trên các messages m1 và m2, t−ơng
ứng (hay hơn nữa là các chữ ký trên các messages sau khi đã sử dụng hàm
phần d−), thì s = s1s2 mod n có tính chất là s = (m1m2)d mod n. Nếu m =
m1m2 có tính d− đúng (tức là, m ∈ MR) thì s là chữ ký đúng của message m.
Do đó, một điều rất quan trọng đó là hàm phần d− R không có tính chất
nhân, tức là, với tất cả các cặp a, b ∈ M, R(a.b) ≠ R(a).R(b). Ví dụ sau chỉ ra
rằng điều kiện này cho R là cần thiết nh−ng không phải là điều kiện đủ để
đảm bảo an toàn.
16
Ví dụ (về hàm phần d− không an toàn) Cho n là một RSA modulus và d là private
key. Gọi k = lg n là độ dài bit của n, và cho t là một số nguyên d−ơng cố định
thoả mãn t < k/2. Cho w = 2t và các messages là các số nguyên m ∈ [1, n2-t-1].
Hàm phần d− R có dạng R(m) = m2t (t bits nhỏ nhất trong biểu diễn nhị phân của
R(m) = 0). Nh− vậy, với các sự lựa chọn n, thì R sẽ không có tính chất nhân. Tấn
công existential forgery attack trình bày ở trên có xác suất thành công là (1/2)t.
Nh−ng với hàm phần d− này, sẽ bị tấn công kiểu selective forgery attack (rất
nghiêm trọng), nó sẽ đ−ợc trình bày d−ới đây.
Giả sử một kẻ tấn công muốn giả mạo chữ ký trên message m. Kẻ tấn công biết n
nh−ng không biết d. Hắn có thể sắp đặt tấn công theo chosen-message attack để
lấy chữ ký trên m. Sử dụng thuật toán Euclidean mở rộng cho n và
Tại mỗi b−ớc trong thuật toán mở rộng Euclidean, các số
nguyên x, y, và r đ−ợc tính sao cho thoả mãn biểu thức
mw. m2 R(m) ~ t ===m
r. m~y =+xn Có thể chỉ ra
rằng tại một b−ớc nào đó tồn tại y và r thoả mãn |y| < n/w và r < n/w với
.n ≤w Nếu y > 0, lấy các số nguyên m2 = rw và m3 = yw. Nếu y < 0, thì lấy các
số nguyên m2 = rw và m3 = -yw. Trong cả 2 tr−ờng hợp, m2 và m3 đều có độ d−
cần thiết. Nếu các chữ ký s2 = m2d mod n và s3 = m3d mod n là chữ ký đúng từ
ng−ời ký, thì kẻ tấn công có thể tính chữ ký cần giả mạo chữ ký trên m nh− sau:
• Nếu y > 0, tính n; mod m~
y
r
yw
rw
m
3
d
2
3
2 d
dd
dms
s =


=


==
• Nếu y < 0, tính n. mod m~
y
r
yw
rw
m
3
d
2
3
2 d
dd
dms
s =


=


=−=−
Nh− vậy, kẻ tấn công có một message đã đ−ợc ký theo lựa chọn của mình với độ
d− cần thiết. Tấn công này là một ví dụ của tấn công chosen-message attack cung
cấp selective forgery. Điều này nhấn mạnh rằng phải thận trọng khi lựa chọn hàm
phần d− R.
3- Chữ ký RSA trong thực tế
(i) Bài toàn reblocking
Một đề nghị sử dụng RSA trong thực tế là thực hiện việc ký message và sau đó mã
hoá chữ ký đó. Nh− vậy, điều quan tâm ở đây là quan hệ giữa các kích th−ớc của
các modulus khi thực hiện cài đặt thủ tục này. Giả sử rằng A muốn ký và sau đó
mã hoá một message cho B. Và giả sử rằng (nA, eA) và (nB, eB) t−ơng ứng là public
key của A và B. Nếu nA > nB, thì có khả năng message m không đ−ợc khôi phục
bởi B, nh− là minh hoạ trong ví dụ d−ới đây.
Ví dụ (về bài toán reblocking) Cho nA = 8377 x 7499 = 62894113, eA = 5, và dA =
37726937; và nB = 55465219, eB = 5, dB = 44360237. Chú ý rằng nA > nB. Giả sử
17
rằng m = 1368797 là message cùng với phần d− để ký bằng private key của A và
sau đó đ−ợc mã hoá sử dụng public key của B. A thực hiện tính toán nh− sau:
1. = 136879A
d n mod m A=s 37726937 mod 62894113 = 59847900.
2. = 59847900B
d n mod s B=c 5 mod 55465219 = 38842235.
Để khôi phục message m và kiểm tra chữ ký, B tính toán nh− sau:
1. s = 38842235B
d n mod c ˆ B= 44360237 mod 55465219 = 4382618.
2. = 4382618A
e n mod sˆ mˆ A= 5 mod 62894113 = 54383568.
~Nhận thấy rằng m ≠m . Lý do ở đây là s lớn hơn modulus nB. Xác suất xảy ra tình
huống này là (nA - nB)/nA ≈ 0.12.
Có nhiều cách để khắc phục vấn đề reblocking.
1. reordering. Vấn đề giải mã sai sẽ không bao giờ xảy ra nếu phép toán sử dụng
modulus nhỏ hơn đ−ợc thực hiện tr−ớc. Có nghĩa là, nếu nA > nB, thì thực thể A
nên mã hoá message sử dụng public key của B, và sau đó ký lên bản mã nhận
đ−ợc bằng private key của A. Tuy nhiên, trật sự của các phép toán lại là ký
message tr−ớc và sau đó mã hoá chữ ký; Nếu để A mã hoá tr−ớc và sau đó mới
ký, thì kẻ tấn công có thể bỏ đ−ợc chữ ký và thay thế nó bằng chữ ký của hắn
ta. Mặc dù ...
 
Các chủ đề có liên quan khác
Tạo bởi Tiêu đề Blog Lượt trả lời Ngày
D một số xu thế lớn trong quan hệ quốc tế, ý nghĩa đối với việc thực hiện đường lối đối ngoại của đảng Môn đại cương 0
D một số giải pháp nhằm hoàn thiện hệ thống kênh phân phối tại công ty tnhh hàn việt hana Luận văn Kinh tế 0
D Thiết kế hệ thống cô đặc một nồi làm việc gián đoạn Nông Lâm Thủy sản 0
D Tìm hiểu thuyết Mo - Hucken và áp dụng xây dựng giản đồ phân tử π cho một số hệ liên hợp Khoa học Tự nhiên 0
D Một số giải pháp cải thiện hệ thống quản trị chất lượng dịch vụ tư vấn ở Công ty cổ phần Tư vấn xây dựng Vĩnh Phúc Khoa học kỹ thuật 0
A Tổng quan mô hình hệ thống y tế của một số quốc gia trong khu vực và trên thế giới Y dược 0
D Trên Cơ sở động lực phát triển hệ thống (một ý tưởng kinh doanh mới) Kinh doanh đồ ăn online là hình thức không quá xa lại, phù hợp nhiều đối tượng Luận văn Kinh tế 0
D Lựa chọn một hệ thống thương mại điện tử (TMĐT) đang hoạt động. Tìm và lập danh sách các hệ thống tương tự (hệ thống vừa lựa chọn) Thương Mại Điện Tử 0
M Nghiên cứu một số hệ mã hoá mới và ứng dụng Luận văn Kinh tế 0
M Nghiên cứu điều chế một số hệ xúc tác có chứa vanadi cho phản ứng oxi hoá n-Hexan Kiến trúc, xây dựng 2

Các chủ đề có liên quan khác

Top