Việc mã hoá dữ liệu được thực hiện bằng thuật toán mã hoá khoá đối xứng AES để đảm bảo yếu tố tốc độ mã hoá; thuật toán mã khoá công khai RSA được sử dụng trong việc tạo/kiểm tra chữ ký
Trang 1Hệ mật RSA và ứng dụng lược đồ chữ
ký số trong xác thực thông tin : Luận văn ThS Công nghệ thông tin : 60 48
10 / Đỗ Thanh Bình ; Nghd : PGS TS
Đoàn Văn Ban
Luận văn với đề tài “Hệ mật RSA và ứng dụng lược đồ chữ ký số trong xác thực thông tin” nghiên cứu và ứng dụng hệ mật mã RSA trong
mã hóa dữ liệu
Nội dung được chia thành các chương như sau:
Chương I: Tổng quan về các hệ mật mã
Giới thiệu mô hình một số hệ mật mã đang được ứng dụng như hệ
mã dịch vòng, mã thay thế, hoán vị, hệ mật mã RSA, v.v
Chương II: Hệ mật mã khoá công khai RSA
Nghiên cứu các vấn đề liên quan đến hệ mật mã khoá công khai RSA; phương pháp lập mã và giải mã; các đặc điểm và độ an toàn của
hệ mật; vấn đề quản lý khoá, phân phối khoá
Chương III: Lược đồ chữ ký số RSA
Giới thiệu chữ ký số RSA, các ứng dụng của chữ ký số trong việc xác thực dữ liệu; lược đồ chữ ký số; v.v
Chương IV: Chương trình mã hoá dữ liệu
Ứng dụng cơ sở lý thuyết đã nghiên cứu để xây dựng một chương trình mã hoá ứng dụng các kỹ thuật mã khoá bí mật, mã khoá công khai
và lược đồ chữ ký số
Trang 2Đỗ Thanh Bình 2 Tóm tắt luận văn thạc sĩ
CHƯƠG 1 – TỔG QUA VỀ CÁC HỆ MẬT MÃ
1.1 Hệ mật mã cổ điển
1.1.1 Hệ thống truyền tin mật
Nhiệm vụ của mã mật là tạo ra khả năng liên lạc trên kênh công
cộng (công khai) giữa hai người sử dụng sao cho người thám mã ở giữa,
giả thiết thu đầy đủ thông tin trên kênh, mà không thể hiểu được nội
dung bản rõ được truyền đi Thông tin người gửi có cấu trúc tuỳ ý;
người gửi sẽ mã hoá bản tin rõ bằng một khoá đã được xác định trước và
gửi bản mã tới người nhận qua kênh công cộng Người nhận nhờ có
khoá mật kD nên dễ dàng có thể giải mã để nhận được bản rõ
Định nghĩa 1.1: Một hệ mật là một bộ gồm 5 tham số (R, M, K, E,
D) thoả mãn các điều kiện sau:
1) R là tập hữu hạn các bản rõ có thể
2) M là tập hữu hạn các bản mã có thể
3) K (không gian khoá) là tập hữu hạn các khoá có thể
4) Đối với mỗi k∈ K có một quy tắc giải mã ek: P → C và một
quy tắc giải mã tương ứng dk ∈ D Mỗi ek: R → M và dk: M
→ R là những hàm mã: dk(ek(x)) = x với mọi bản rõ x ∈ R
1.1.2 Một số hệ mật mã kinh điển
a) Mã dịch vòng
Hệ mật được xây dựng dựa trên số học modulo Ký hiệu m là số chữ
cái của bộ chữ xây dựng bản rõ R
Theo định nghĩa 1.1, cho R = M = K = Zn với 0 ≤ k ≤ (m - 1) và x, y
∈ Z ; Z là không gian chữ cái, ta định nghĩa:
(Người thám mã)
Bản rõ
Kênh truyền Bản rõ (Người gửi) (Người nhận)
Bản mã
K D
K E
H1.1: Sơ đồ khối hệ thống truyền tin mật
Thám mã
Nguồn khoá
Bộ mã hoá Bộ giải mã
Kênh an toàn (truyền khoá)
KẾT LUẬ
Nội dung của luận văn nghiên cứu các vấn đề lý thuyết hệ mật mã khoá công khai RSA Kỹ thuật mã khoá công khai RSA được ứng dụng trong việc phân phối khoá công khai và sử dụng để mã hoá và phân phối khoá bí mật Ngày nay, việc phân phối khoá công khai sử dụng chứng chỉ khoá công khai là phương án được dùng phổ biến Luận văn cũng tập chung nghiên cứu lược đồ chữ ký số RSA và các ứng dụng của nó Một trong những ứng dụng quan trọng của chữ ký số là vấn đề xác thực thông tin/dữ liệu
Trên cơ sở các vấn đề lý thuyết, tác giả xây dựng một chương trình
mã hoá dữ liệu đảm bảo các yêu cầu bảo mật thông tin trong quá trình truyền tin Thông tin được mã hoá ở phía người gửi và được giải mã ở phía người nhận, đồng thời có cơ chế để người nhận kiểm tra tính xác thực của thông tin nhận được Cơ chế phân phối khoá công khai được thực hiện bằng việc trao đổi các chứng chỉ khoá công khai Việc mã hoá
dữ liệu được thực hiện bằng thuật toán mã hoá khoá đối xứng AES để đảm bảo yếu tố tốc độ mã hoá; thuật toán mã khoá công khai RSA được
sử dụng trong việc tạo/kiểm tra chữ ký số và trong việc phân phối khoá phiên bí mật của thuật toán mã khoá đối xứng AES
Trong khuôn khổ của luận văn, chương trình mới chỉ được xây dựng như một ứng dụng độc lập và chỉ làm việc với chứng chỉ số chuNn X.509
có định dạng file PEM Để có thể triển khai chương trình vào thực tiễn, cần đầu tư thêm để phát triển các tính năng nhằm tăng cường tính tiện lợi của ứng dụng, chẳng hạn: cho phép làm việc với nhiều kiểu định dạng file chứng chỉ số; cho phép chuyển đổi qua lại giữa các kiểu định dạng N goài ra, có thể phát triển thêm một lựa chọn kiểu chương trình là cho phép cài đặt như một ứng dụng “thêm vào” (add-in), để tích hợp tính năng mã hoá và xác thực thông tin/dữ liệu ngay từ bên trong một ứng dụng cụ thể (chẳng hạn, ứng dụng thư điện tử Microsoft Outlook, v.v ) Qua những hoạt động về mật mã trên thực tiễn cùng với những nghiên cứu và kết quả của luận văn có thể khẳng định mật mã nói chung
và mật mã RSA nói riêng đóng vai trò rất quan trọng trong mọi lĩnh vực
xã hội Việc nghiên cứu lý thuyết mật mã RSA và ứng dụng triển khai
kỹ thuật mã hoá này cho phù hợp với những bài toán cụ thể trong hoạt động thực tiễn là một vấn đề hoàn toàn có thể thực hiện
Trang 3Public Key
A
Private Key
B
Private Key
A
CERT A
Dữ liệu/
văn bản
HASH value
SHA-1
Digital Signature
Digital
Signature
Khoá mật
Dữ liệu
đã mã hoá
Public Key
B AES RSA
RSA
CERT B
Khoá mật
đã mã hoá
Khoá mật
đã mã hoá
So sánh
RSA
Khoá mật AES
CERT A
Dữ liệu/
văn bản
Digital Signature
HASH value SHA-1
RSA
Dữ liệu
đã mã hoá
MÃ HOÁ
HASH value
2
Kết quả xác thực
Các hệ mã mật hiện đại về thực chất là sự cải tiến của mã dịch vòng Đối với mã hoá một văn bản tiếng Anh thông thường là sự thiết lập tương ứng giữa các chữ cái với các số theo modulo 26
Tính bảo mật của hệ mã dịch vòng nói là không cao, thám mã có thể dùng phương pháp vét cạn để tìm khoá để xác định bản rõ, điều này càng rút ngắn nếu thực hiện phép tìm khoá theo cách vét cạn từ hai phía
b) Mã thay thế
Mã thay thế về bản chất xem phép mã hoá và giải mã như là các hoán vị của các ký tự
của m ký hiệu Với mỗi phép hoán vị π ∈ K, ta định nghĩa: eπ(x) = π(x)
và dπ(y) = π-1(y), trong đó π-1 là hoán vị ngược của π
Với các văn bản tiếng Anh khi cần mã hoá, mỗi khoá của mã thay thế là một trong 26! hoán vị Do vậy, áp dụng phương pháp tìm khoá bằng phương pháp vét cạn sẽ khó khăn hơn Mã thay thế có thể dễ dàng
bị thám bằng phương pháp thống kê
c) Mã hoán vị
Ý tưởng của mã hoán vị là thay đổi vị trí giữa các ký tự của rõ Cho m là một số nguyên dương xác định nào đó Theo định nghĩa 1.1, cho R = M = (Z26)m và k gồm tất cả các hoán vị π của {1, …, m} Đối với một khoá π (tức là một hoán vị) ta xác định:
eπ(x1, …, xm) = (xπ(1),… , xπ(m)) và:
dπ (y1,… , ym) = ( 1( ) ( )1 )
1 , , −
−
m y
d) Các hệ mã dòng
Bản chất của mã này là tạo ra một dòng khoá z = z1 z2 z3… và dùng
nó để mã hoá một xâu bản rõ x = x1 x2 x3… theo quy tắc
y= y1 y2…=ez1(x1)ez2(x2)
Định nghĩa 1.2: Mã mật (mã hoá) dòng là một bộ (R, M, K, L, F, E,
D) thoả mãn các điều kiện sau:
1) R là tập hữu hạn các bản rõ có thể 2) M là tập hữu hạn các bản mã có thể 3) K là tập hữu hạn các khoá có thể (không gian khoá)
Trang 4Đỗ Thanh Bình 4 Tóm tắt luận văn thạc sĩ
4) L là tập hữu hạn bộ chữ của dòng khoá
5) F = (f1 f2…) là bộ tạo dòng khoá fi: K x R-1 → L; i ≥ 1
6) Với mỗi z ∈ L có một quy tắc mã ez ∈ E và một quy tắc giải
mã tương ứng dz ∈ D thoả mãn dz(ez(x)) = x với mọi x∈P
Hệ mã khối là một trường hợp đặc biệt của mã dòng khi dùng khoá
không đổi zi = K, với ∀i ≥ 1
1.2 Hệ mật khoá công khai
1.2.1 Khái quát
Hệ mật khoá công khai cho khả năng tính toán để xác định quy tắc
giải mã (dk) là rất thấp dù đã biết đầy đủ quy tắc mã hoá ek Quy tắc mã
hoá ek được công khai rộng rãi Ưu điểm của hệ mật này là nười gửi có
thể gửi bản tin cho người nhận mà không cần thông tin trước về khoá
mật N gười nhận là người duy nhất có thể giải mã thông tin nhận được
nhờ sử dụng quy tắc giải mã dk
1.2.2 guyên tắc mã hoá của hệ mật khoá công khai
Trong hệ thống có N đối tượng cùng trao đổi thông tin mật Từng
khai N hư vậy, có N khoá lập mã k1, k2, kn
Khi một đối tượng thứ i muốn gửi thông tin cho đối tượng thứ j thì
dữ liệu được chuyển thành từng khối với độ dài nào đó, mỗi khối P trong
văn bản được mã hoá bằng khoá lập mã ekj của đối tượng thứ j
Thông tin gửi đi có dạng: M = ekj(P)
Để giải mã, đối tượng thứ j thực hiện: dkj(M) = dkj(ekj(P)) = P
Do ekj và dkj là cặp khoá lập mã và giải mã của đối tượng j nên đối
tượng khác trong hệ thống khó có thể tìm ra khoá giải mã dkj trong thời
gian chấp nhận được với phương tiện tính toán giới hạn
1.2.3 Một số hệ mật khoá công khai thông dụng
a) Hệ mật RSA
Hệ mật RSA được xây dựng trên cơ sở mã mũ, trong đó khoá lập mã
là cặp (b, n), gồm số mũ b và mod n Với n = p.q, trong đó p và q là các
số nguyên tố; còn b được chọn là một số nguyên ngãu nhiên sao cho 1(b,
ϕ(n)) = 1, với ϕ(n) là giá trị hàm Euler của n, và: ϕ(n) = (p - 1)(q - 1)
Đặt R = M = Zn và định nghĩa:
K = {(n, p, q, a, b)} và ab ≡ 1(mod ϕ(n))
Quá trình giải mã:
7) Giải mã khoá mật: sử dụng khoá riêng của người nhận (Private Key B) để giải mã khoá mật
8) Giải mã dữ liệu: sử dụng khoá mật để giải mã toàn bộ dữ liệu hoặc văn bản điện tử, chữ ký và chứng chỉ số
9) Tính giá trị “băm” của văn bản: toàn bộ dữ liệu hoặc văn bản điện tử gốc được đưa qua thuật toán băm 1 chiều để tạo
ra một mã nhận dạng có tính duy nhất (Hash Value) 10) Kiểm tra tính hợp lệ của văn bản: sử dụng khoá công khai của người gửi (Public Key A) để kiểm tra chữ ký số trên giá trị “băm” của văn bản để kết luận về tính hợp lệ của dữ liệu hoặc văn bản:
1 N ếu kết quả kiểm tra đúng, chứng tỏ thông tin là do người gửi gửi (khoá giải mã cùng cặp khoá với khoá mã hoá); và nội dung thông tin còn nguyên gốc sau khi ký
2 N ếu kết quả kiểm tra sai thì chứng tỏ thông tin không phải do người gửi gửi (khoá giải mã không cùng cặp khoá với khoá mã hoá); và nội dung thông tin không còn nguyên gốc sau khi ký
Trang 5CHƯƠG 4 - CHƯƠG TRÌH MÃ HOÁ DỮ LIỆU
4.1 Giới thiệu bài toán
Mục tiêu của chương này nhằm xây dựng một chương trình mã hoá
ứng dụng mô hình mật mã RSA với lược đồ chữ ký số phục vụ bảo mật
thông tin trong môi trường truyền tin, đảm bảo các yêu cầu sau:
Bảo mật thông tin trong quá trình truyền tin Thông tin được
mã hoá ở phía người gửi và được giải mã ở phía người nhận
Việc thực hiện mã hoá sử dụng thuật toán mã hoá có độ
phức tạp cao và thời gian thực hiện nhanh
Có cơ chế để người nhận có thể kiểm tra tính hợp lệ của
thông tin nhận được (thông tin được gửi đi bởi đúng người
gửi và không bị thay đổi nội dung trên đường truyền)
Chương trình mã hoá được xây dựng hoạt động theo mô hình như
sau:
Quá trình mã hoá:
1) Tính giá trị “băm” của văn bản/dữ liệu: toàn bộ dữ liệu hoặc
văn bản điện tử được đưa qua thuật toán băm 1 chiều để tạo
ra một mã nhận dạng có tính duy nhất (Hash Value)
2) Tạo chữ ký số: mã nhận dạng này được mã hoá bằng khoá
riêng của người ký (Private Key A) để tạo ra 1 chữ ký số
(Digital Signature)
3) ChuNn bị dữ liệu mã hoá: Gắn chữ ký số này và chứng chỉ
số của người ký (Certificate A) với dữ liệu hoặc văn bản
điện tử
4) Mã hoá dữ liệu: toàn bộ dữ liệu hoặc văn bản điện tử, chữ
ký số và chứng chỉ số được mã hoá bằng thuật toán AES bởi
một khoá mã hoá/giải mã (khoá mật) sinh ra ngẫu nhiên cho
mỗi phiên giao dịch
5) Mã hoá khoá mật: khoá mã hoá/giải mã sau đó được mã hoá
bằng khoá công khai của người nhận (Public Key B) Khoá
công khai này được lấy từ chứng chỉ số của người nhận
(Certificate B)
Quá trình truyền thông tin:
6) Dữ liệu và khoá mật đã được mã hoá được gửi đến người
nhận qua các kênh truyền thông công cộng
Với k = (n, p, q, a, b) ta xác định được :
ek(x) = xb mod n ; dk(y) = ya mod n
b) Hệ mật RABI
Định nghĩa 1.3:
Giả sử n là tích của hai số nguyên tố phân biệt p và q; p.q ≡ 3 (mod 4);
Giả sử R = M = Zn và xác định:
K = {(n, p, q, B): 0 ≤ B ≤ n - 1}
với k = (n, p, q, B) ta định nghĩa:
ek(x) = x(x + B) mod n
2 4
y
B y
Các giá trị n và B được công khai còn p và q được giữ bí mật
c) Hệ mật Elgamal
Hệ mật Elgamal được xây dựng trên bài toán logarithm rời rạc Việc
mô tả bài toán này được thiết lập trong trường hữu hạn Zp, p là số nguyên tố (bài toán logarithm rời rạc trong Zp)
Định nghĩa 1.4: Cho p là một số nguyên tố sao cho bài toán
logarithm rời rạc trong Zp là khó giải Cho α ∈ Z*p là phần tử nguyên thủy Giả sử P = Z*p, C = Z*p×Z*p Từ đây ta định nghĩa:
K = {(p, α, a, β): β ≡ αa (mod p)}
Các giá trị p, α, β được công khai, còn a giữ bí mật
Với K = (p, α, a, β) và một số ngẫu nhiên bí mật k ∈ Zp, ta xác định:
ek(x, k) = (y1, y2), trong đó : y1 = αk mod p ; y2 = x βk modp với y1, y2 ∈ Z*p ta xác định d k(x,k)= y2( )y1a −1 mod p
d) Hệ mật xếp balô Merkle – Hellman Định nghĩa 1.5: Cho S = (S1, S2, … , Sn) là một danh sách các số nguyên siêu tăng
Trang 6Đỗ Thanh Bình 6 Tóm tắt luận văn thạc sĩ
=
>
n
i
i
S p
1 là một số nguyên tố và 1 ≤ a ≤ p – 1 Với 1≤ i≤ n,
ta xác định:
ti = aSi mod p và ký hiệu t = (t1,…, tn)
Giả sử p = {0,1}n, C = {0, …, n(p-1)} và cho k = {(s, p, a, t)}, trong
đó s, a, p và t là các số được xây dựng như trên, t được công khai, còn p,
a, s được giữ bí mật
Với k = {(s, p, a, t)} ta định nghĩa:
=
=
n
i i i
x x
e
1 1
k , ,
với 0 ≤ y ≤ n(p - 1) ta xác định: Z = a-1 y mod p
và giải mã tập con (S1, , Sn, Z) ta sẽ nhận được: dk(y) = (x1, , xn)
e) Hê mật McEliece
Hệ mật McEliece sử dụng nguyên lý tương tự hệ mật Merkle –
Hellman Phép giải mã là một trường hợp đặc biệt của bài toán N P đầy
đủ nhưng nó được nguỵ trang giống như trường hợp tổng quát của bài
toán Trong hệ mật này bài toán N P được áp dụng là bài toán giải mã
cho một mã sửa sai (nhị phân) tuyến tính nói chung
Hệ mật McEliece dùng mã Goppa có các nhược điểm: dung lượng
khoá lớn (512 K); mã hoá và giải mã phức tạp; chưa có thuật toán tìm
mã hữu hiệu
iv) Dùng thuật toán Euclidean mở rộng để tính số nguyên d, 1<d<ϕ(n), sao cho e.d ≡ 1 (mod ϕ(n))
Khoá công khai của A là (n; e) và khoá riêng của A là (n; d)
3.5.2 Thuật toán sinh và chứng thực chữ ký RSA a) Sinh chữ ký
i) Số hoá P thành số nguyên m ∈ [0, n – 1]; m = R(P);
ii) Tính s = md mod n iii) Chữ ký của A cho thông điệp P là s, gửi s cho B
b) Chứng thực chữ ký
i) Xác thực đúng khoá công khai của A là (n, e) ii) Tính m = se mod n
iii) Xác nhận chữ ký của A nếu m ∈ MR iv) Khôi phục lại P = R-1(m)
3.6 Các kiểu tấn công lược đồ chữ ký số
Chỉ tấn công vào khoá: Trong kiểu tấn công này đối phương chỉ biết
khoá công khai của người ký
Tấn công vào thông điệp: Đối phương biết thêm một số văn bản nào
đó và chữ ký tương ứng của chúng Tấn công vào thông điệp lại được chia làm ba loại:
Tấn công vào thông điệp đã biết: Biết thông điệp và chữ ký
tương ứng của thông điệp nhưng không được chọn lựa theo ý của đối phương
Tấn công vào thông điệp được chọn: Đối phương có thể chọn
trước một số văn bản và có chữ ký của chúng
Tấn công vào thông điệp được chọn thích ứng: Đối phương có
thể lựa chọn các văn bản để lấy chữ ký ngay trong quá trình tấn công (căn cứ trên kết quả lấy chữ ký của vác văn bản trước đó)
Trang 7Mỗi cá thể tạo một khoá riêng dùng để ký thông điệp và một khoá
công khai tương ứng để các cá thể khác dùng trong xác minh chữ ký
Mỗi cá thể A chọn một khoá k = (k’; k”) ∈ K, Sigk’ là thuật
toán ký với khoá k
R là một hàm sao cho R(M) = MR và có nghịch đảo là R-1
Thuật toán Ver k” là một ánh xạ từ Ms đến MR sao cho:
Verk”Sigk’ là ánh xạ đồng nhất trên MR, ∀k ∈ K Verk” gọi
là thuật toán chứng thực được xây dựng sao cho có thể tính
toán khi không biết khoá riêng của người ký thông điệp
Cặp khoá k = (k’; k”), trong đó khoá công khai của A là k”;
khoá riêng của A là k’
Thuật toán sinh chữ ký:
Cá thể A ký một thông điệp P ∈ M với chữ ký s Một cá thể B bất
kỳ có thể các minh chữ ký và phục hồi thông điệp P từ chữ ký đó Để
sinh chữ ký, cá thể A thực hiện:
i) Chọn một khoá k = (k’; k”) ∈ K
ii) Tính m = R(P) và s = Sigk’(m) (R là nghịch đảo của nó là R-1
là các hàm được công khai)
iii) Chữ ký của A cho thông điệp P là s, và s được gửi đến B
Thuật toán chứng thực chữ ký
Để xác thực chữ ký, B làm như sau:
i) Xác thực đúng khoá công khai của A là k”
ii) Tính m = Verk”(s)
iii) Xác minh rằng m ∈ MR (nếu m ∉ MR thì từ chối chữ ký)
iv) Phục hồi thông điệp P từ m bằng cách tính R-1(m)
3.5 Lược đồ chữ ký số RSA
3.5.1 Thuật toán sinh khoá cho lược đồ chữ ký số RSA
Mỗi cá thể A làm như sau:
i) Sinh ngẫu nhiên hai số nguyên tố lớn p và q
ii) Tính n = p.q và ϕ(n) = (p-1)(q-1)
iii) Chọn ngẫu nhiên một số nguyên e, 1<e<ϕ(n) sao cho
(e,ϕ(n)) = 1
CHƯƠG 2 - HỆ MẬT MÃ KHOÁ CÔG KHAI RSA 2.1 Giới thiệu hệ mật
Bài toán: A muốn gửi cho B một thông tin mật mà A muốn duy nhất
B có thể đọc được Để làm được điều này, B gửi cho A một chiếc hộp có khoá đã mở và giữ lại chìa khoá A nhận chiếc hộp, cho vào đó một tờ giấy viết thư bình thường và khoá lại (lúc này ngay cả A cũng không thể đọc lại hay sửa thông tin trong thư được nữa) Sau đó A gửi chiếc hộp lại cho B B mở hộp với chìa khoá của mình và đọc thông tin trong thư Trong ví dụ này, chiếc hộp với khoá mở đóng vai trò khoá công khai, chiếc chìa khoá chính là khoá riêng
Độ mật của RSA được dựa trên cơ sở là hầu như không có khả năng khôi phục hai số nguyên tố p và q từ tích n = p.q của chúng ít nhất là theo với các thuật toán phân tích ra thừa số hiện đã biết Mặt khác, các
số nguyên tố lớn ngẫu nhiên có thể được tạo sinh nhanh chóng
2.2 Phương pháp lập mã và giải mã của hệ mật RSA 2.2.1 Thuật toán
a) Tạo khoá
i) Chọn hai số nguyên tố lớn p, q (p ≠ q) , tính tích n = p.q ii) ϕ(n) = (p - 1)(q - 1)
iii) Chọn một số nguyên e đủ lớn nguyên tố cùng ϕ(n), có nghĩa: 1< e <ϕ(n) và (e, ϕ(n) = 1)
iv) Tìm số d thoả mãn: e.d (mod ϕ(n)) = 1, 1<d<ϕ(n) bằng giải thuật Euclidean mở rộng
Bộ ba (n; e; d) là chìa khoá của hệ mã, với khoá công khai của B là (n; e) và khoá riêng của B là (n; d)
b) Lập mã
i) Sử dụng khoá công khai của B là (n, e) ii) Biểu diễn thông điệp dưới dạng số, giả sử là số nguyên m sao cho: m ∈ [0, n-1]
iii) Tính C = me mod n iv) Gửi bản mã C cho B
c) Giải mã
i) Dùng khoá riêng d của B tính m = Cd mod n ii) Khôi phục thông điệp từ hàm ngược của hàm số hoá để có P
Trang 8Đỗ Thanh Bình 8 Tóm tắt luận văn thạc sĩ
2.2.2 Đặc trưng của hệ mật RSA
Hệ mật RSA có các đặc trưng sau:
Không cần phải thiết lập một kênh bảo vệ phức tạp để
truyền khoá như trong hệ mã bí mật
Cặp khoá công khai được tạo ra theo một phương pháp đặc
biệt có quan hệ với nhau và được chọn trong nhiều khoá có
thể (trong đó nếu khoá này dùng để mã hoá thì khoá kia
dùng để giải mã)
Ứng với một cặp p, q có thể chọn được nhiều bộ khoá công
khai (n; e; d)
Mọi người trong hệ thống nếu nhận được bản mật C thì
cũng không thể biết được bản rõ P Với việc chỉ biết khoá
mã hoá ke và căn cứ vào các thông tin về thuật toán thì
không thể tìm ra khó giải mã kd trong thời gian chấp nhận
được (kể cả dùng hệ thống hiện đại nhất để tính toán)
Quá trình gửi và nhận thông điệp (bản tin) được thực hiện như sau:
i) Mỗi thành viên sinh một cặp khoá (n; e) và (n; d)
ii) Công khai khoá (n; e); giữ bí mật hoá (n; d)
iii) A gửi thông điệp cho B thì A mã hoá thông điệp bằng khoá
công khai (n; eb) của B
iv) B giải mã thông điệp bằng khoá riêng (n; db) Không một
người nào khác có thể giải mã thông điệp ngoài B, vì chỉ có
B mới biết khoá riêng của mình
2.3 Độ an toàn của hệ mật RSA
Độ an toàn của hệ mật RSA thể hiện qua hai yếu tố:
Mã hoá Giải mã
C = e b
P mod n Bên gửi A Bên nhận B
N guồn cặp khoá của B
e b d b
Khoá bí mật
P = C d bmod n Khoá công khai
Hình 2.1: Quá trình mã hóa khóa công khai RSA
Thuật toán sinh khoá:
Mỗi cá thể A chọn một khoá k = (k’; k”) ∈ K, Sigk’ là thuật toán ký với khoá k
Thuật toán Verk” tương ứng là một ánh xạ từ MhxMs đến tập hợp {True, False} sao cho:
Với khoá k = (k’; k”), trong đó khoá công khai của A là k”; khoá riêng của A là k’
Thuật toán sinh chữ ký:
Cá thể A thực hiện:
i) Chọn một khoá k = (k’; k”) ∈ K ii) Tính m = h(P) và s = Sigk’(m) iii) Chữ ký của A cho thông điệp P là s, P và s được gửi đến B
Thuật toán chứng thực chữ ký:
Xác thực đúng khoá công khai của A là k”:
i) Tính m = h(P) và u = Verk”(m; s) ii) Chấp nhận chữ ký của A nếu và chỉ nếu u = True Các thuộc tính sau là yêu cầu cần thiết cho các thuật toán ký và chứng thực:
Với mỗi khoá k = (k’;k”) ∈ K, Sigk’ được tính toán hiệu quả
Verk” cần tính toán một cách hiệu quả
cho Verk”(m; s) = True, ở đây m = h(P)
b) Lược đồ chữ ký tự khôi phục thông điệp gốc
Có đặc điểm là thông điệp được ký có thể được phục hồi từ ngay chữ ký đó và thường được dùng để ký các thông điệp nhỏ
Định nghĩa: Lược đồ chữ ký số không đòi hỏi phải có thông điệp
gốc làm đầu vào để xác minh chữ ký được gọi là lược đồ chữ ký tự khôi phục thông điệp gốc, trong trường hợp này thông điệp gốc sẽ được phục hồi chính từ chữ ký của nó
Thuật toán sinh khoá:
True , nếu y = sigk’(x) Verk’’(x ;y) =
False, nếu y ≠ sigk’(x)
Trang 9Trong đó:
Ks gọi là mầm khoá hay còn gọi là khoá khởi thảo được
chọn theo phương pháp ngẫu nhiên
Hai thuật toán F, G dùng để tính toán các khoá A dùng hai
thuật toán F và G cùng với mầm khoá ks để tạo ra hai khoá:
khoá giải mã kd là khoá riêng được giữ lại sử dụng riêng cho
mình và khoá ke công khai thông báo cho mọi người
P là thông điệp gửi đi, S là thông điệp sau khi ký
E k d: Thuật toán mã hoá với khoá kd
D ke: Thuật toán giải mã với khoá ke
3.4.2 Định nghĩa lược đồ chữ ký số
Một lược đồ chữ ký số là một bộ (M, Ms, K, S, V) gồm:
M là tập hợp hữu hạn các văn bản có thể
Ms là tập hợp hữu hạn các chữ ký có thể
K là tập hợp hữu hạn các khoá
S là tập hợp các thuật toán ký
V là tập hợp các thuật toán chứng thực chữ ký
Mỗi k ∈ K là một cặp (k’; k”) trong đó k’ là khoá bí mật dùng để ký,
k” là khoá công khai dùng để kiểm thử chữ ký
Với mỗi k = (k’; k”) ∈ K Có một thuật toán ký Sigk’: M → Ms (Sigk’
∈ S) và một thuật toán kiểm thử Verk”: M x Ms → {True, False}(Verk” ∈
V) Thoả mãn điều kiện sau đây đối với mọi x∈M, y∈Ms:
3.4.3 Phân loại lược đồ chữ ký số
a) Lược đồ chữ ký kèm theo bản rõ
Loại lược đồ này dùng phổ biến trong thực tế Chúng dựa vào các
hàm băm mật mã hơn là các hàm thừa tuỳ biến và ít bị các tấn công giả
mạo hơn
Định nghĩa: Lược đồ chữ ký số mà yêu cầu phải có thông điệp gốc
là đầu vào cho thuật toán chứng thực chữ ký được gọi là lược đồ chữ ký
số kèm theo bản rõ
True , nếu y = sigk’(x) Verk’’(x ;y) =
False, nếu y ≠ sigk’(x)
Tính mật của hệ RSA, chủ yếu dựa vào việc bảo vệ khoá riêng d và giữ bí mật các số nguyên tố p và q
Tính an toàn của hệ RSA dựa vào độ khó của bài toán RSA
và độ phức tạp của bài toán phân tích một số thành các thừa
số nguyên tố Với người thám mã có thể tấn công vào hệ mã RSA theo các hình thức:
Vét cạn: không gian khoá của RSA là rất lớn vì vậy tấn công theo hướng này là không thể thực hiện được
Dựa trên cơ sở toán học để tìm cách phân tích modulus n thành các thừa số nguyên tố
2.4 Quản lý khoá của hệ mật mã RSA 2.4.1 Phân phối khoá công khai a) Phương pháp khai báo công khai
Bất kỳ thành viên nào cũng có thể thông báo khoá công khai của mình để cho các thành viên khác được biết
Giải pháp này có nhược điểm là bất kỳ ai cũng có thể giả mạo một khoá công khai
b) Phương pháp sử dụng thư mục công khai
Việc duy trì và tổ chức một thư mục công khai thuộc về một tổ chức được tin cậy nào đó Một lược đồ như vậy bao gồm các yếu tố sau:
Tổ chức có nhiệm vụ duy trì thư mục, mỗi thành viên có một entry (định danh, khoá) trong thư mục
Mỗi thành viên đăng ký một khoá công khai với tổ chức quản lý thư mục
Mỗi thành viên có thể thay thế một khoá công khai bất cứ lúc nào khi cảm thấy khoá riêng bị lộ
Cơ quan quản lý công bố toàn bộ thư mục và có nhiệm vụ cập nhật thư mục một cách định kỳ
Mọi thành viên đều có thể truy nhập vào thư mục bất cứ lúc nào, vì thế việc truyền thông xác thực an toàn (từ cơ quan quản lý đến các thành viên) phải mang tính bắt buộc
c) Trung tâm quản lý khoá công khai
Trang 10Đỗ Thanh Bình 10 Tóm tắt luận văn thạc sĩ
Một cơ quan trung tâm duy trì một thư mục khoá công khai Mỗi
thành viên đều biết khoá công khai của trung tâm quản lý khoá công
khai, nhưng chỉ có trung tâm này biết khoá riêng cùng cặp
Quá trình trao đổi thông tin bí mật diễn ra như sau:
i) A gửi một thông điệp có gán nhãn thời gian cho cơ quan
quản lý khoá công khai, yêu cầu khoá công khai hiện thời
của B
ii) Cơ quan quản lý trả lời bằng một thông điệp Thông điệp
này được mã hoá bằng khoá riêng dauth của cơ quan quản lý
bao gồm:
các thông điệp gửi cho B)
2 Yêu cầu gốc (request) – A so khớp yêu cầu này với yêu
cầu A đã gửi đi trước đó, nhờ đó A có thể biết yêu cầu gốc có bị sửa đổi trước khi cơ quan quản lý nhận được hay không
3 N hãn thời gian gốc – cho phép A xác định được rằng:
đây không phải là một thông điệp cũ mà là thông điệp
có chứa khoá công khai hiện thời của B
iii) A lưu giữ khoá công khai của B và sử dụng nó để mã hoá
một thông điệp gửi cho B, thông điệp này chứa tên của A
(IDA) và một giá trị (được gọi là nonce) N 1 để nhận dạng
giao dịch này
iv) B lấy khoá công khai của A từ cơ quan quản lý khoá (tương
tự như A đã lấy khoá công khai của B)
N hư thế là A và B đã chuyển giao khoá công khai một cách an toàn,
và họ có thể gửi và nhận tin của nhau
d) Phương pháp sử dụng chứng chỉ khoá công khai
Các thành viên sử dụng chứng chỉ để trao đổi khoá mà không cần
liên lạc với cơ quan quản lý khoá công khai Mỗi chứng chỉ chứa một
khoá công khai và các thông tin khác N ó được một cơ quan quản lý
chứng chỉ tạo ra và phát hành cho các thành viên Mỗi thành viên thông
báo khoá công khai của mình cho các thành viên khác thông qua chứng
chỉ
Đặc trưng quan trọng của chứng chỉ là: “Các chứng chỉ có thể được
phát hành mà không cần phải bảo vệ thông qua các dịch vụ an toàn
thay đổi (dù chỉ là 1 bit) thì kết quả của dấu vết thông điệp cũng sẽ thay đổi
N gười ta thường sử dụng sự hỗ trợ của các hàm băm mật mã trong quá trình số hoá của các lược đồ ký Hàm băm mật mã phải có tính chất sau:
Là hàm một chiều
Không tìm được xung đột: tức là rất khó để tìm hai văn bản
P và P’ có cùng mã băm
Một dấu vết thông điệp phải có hai thuộc tính thiết yếu sau:
N ếu một bit hoặc một vài bit của dữ liệu bị thay đổi thì dấu vết thông điệp cũng bị thay đổi
Một ai đó có muốn giả mạo thì cũng không thể đưa ra một thông điệp giả cùng với một dấu vết thông điệp tương ứng giống như bản gốc trong thời gian chấp nhận được
3.4 Lược đồ chữ ký số dùng mật mã khoá công khai 3.4.1 Hoạt động của chữ ký số
N ếu A gửi cho B một bản tin được mã hoá bằng khoá công khai của
B thì B có thể giải mã bằng khoá riêng của mình để đọc bản tin đó mà những người khác không làm được N gược lại, B có thể “ký” vào một bản tin bằng khoá riêng (chứng thực) và gửi cho A, sau đó A có thể kiểm tra tính xác thực của chữ ký bằng khoá công khai của B
k d
G
F
k e
k s
P
Bí mật của A
Khoá công khai
S=
d
k
E (P) P=D k e(s)
Hình 3.1: Sơ đồ nguyên lý hoạt động của chữ ký số dùng mật
mã khoá công khai