nghiên cứu các mô hình, cấu trúc và các thành phần cơ bản của trung tâm xác thực dựa trên công nghệ PKI - Pdf 10

MỞ ĐẦU
Phần mở đầu xin trích một đoạn trong loạt bài viết “Hướng dẫn lập kế
hoạch cho PKI” của Martin Kiaer một chuyên gia về lĩnh vực PKI của tập
đoàn Microsoft “Một vài năm trở lại đây, hầu hết mọi người đều nói về năm
2000 như là năm của PKI. Nhiều người tin tưởng rằng, xu thế chủ đạo của thị
trường cuối cùng cũng có khuynh hướng sử dụng tất cả các khía cạnh tốt mà
PKI có thể cung cấp. Mặc dù vậy như những gì bạn có thể đoán, các chứng chỉ
và PKI chưa từng thực sự cất cánh. Điều đơn giản là nó không đủ gây chú ý
cho việc quản lý phân loại và nhân viên kỹ thuật (người có thể thấy được giá
trị của PKI). Mặc dù vậy, sau một thời gian, PKI lại trở thành một trong
những chủ đề nóng nhất trong các doanh nghiệp lớn và trung bình. Sự thay đổi
trong vấn đề bảo mật, nơi bảo mật và các cải thiện trong Internet và khi các
công nghệ truyền thông di động trở thành một ngành kinh doanh cho doanh
nghiệp, điều đó có nghĩa rằng các chứng chỉ và PKI đã sẵn sàng cho xu thế
chủ đạo của thị trường kinh doanh hơn bao giờ hết.”
Đó là thực trạng chung về nhu cầu sử dụng PKI trên thế giới, còn ở Việt
nam hiện nay nhiều tổ chức, cá nhân đã và đang đầu tư nghiên cứu phát triển
hạ tầng khóa công khai thông qua việc phát triển các tiêu chuẩn: mã hóa,
truyền thông và liên kết, xác thực, cấp chứng chỉ… Mặc dù nhu cầu cải cách
hành chính, nhu cầu hội nhập quốc tế, an ninh kinh doanh của các doanh
nghiệp… đòi hỏi phải đưa chứng chỉ số vào thực tế cuộc sống, nhưng việc
ứng dụng PKI vào các hoạt động của các tổ chức nhà nước hay doanh nghiệp
còn rất nhiều hạn chế, chỉ với một số tổ chức kinh doanh tài chính, ngân hàng,
bảo hiểm và một số cơ quan đơn vị trong lĩnh vực an ninh quốc phòng ứng
dụng. Tuy nhiên việc ứng dụng chỉ nằm trong phạm vi một tổ chức hoặc một
nhóm tổ chức nhỏ. Vì vậy việc xây dựng một trung tâm xác thực chung có
1
chức năng thống nhất hoặc giao tiếp với các trung tâm hiện có đang là bài
toán lớn trong quá trình thực hiện chính phủ điện tử ở nước ta.
Mục đích của luận này nhằm nghiên cứu các mô hình, cấu trúc và các
thành phần cơ bản của trung tâm xác thực dựa trên công nghệ PKI, giới thiệu

thông tin, đặc biệt trong các lĩnh vực quân sự, chính trị, ngoại giao. Mật mã
trước hết là một loạt hoạt động thực tiễn, nội dung chính của nó là để giữ bí
mật thông tin. Ví dụ: Người A muốn gửi văn bản rõ sang người nhận B, A
phải mã hóa văn bản đó rồi gửi cho B. Để hiểu được nội dung thông tin mà A
muốn gửi cho mình, B cần khôi phục (giải mã) lại văn bản đã bị mã hóa thành
dạng rõ. Do văn bản đã bị mã hóa có thể được chuyển qua các con đường
công khai nên người ngoài có thể “lấy trộm” nhưng không thể đọc hiểu được;
còn A và B có thể mã hóa và giải mã là do hai người đã có một thỏa thuận về
khóa chung. Trong thực tiễn, có những hoạt động ngược lại với hoạt động bảo
mật là khám phá bí mật từ các bản mã “lấy trộm” được, hoạt động này thường
được gọi là thám mã hay phá khóa.
Hệ mật mã được định nghĩa là một bộ gồm 5 thành phần (P, C, K, E, D)
trong đó:
P là tập hữu hạn các bản rõ có thể
C là tập hữu hạn các bản mã có thể
K là tập hữu hạn các khóa có thể
E là tập hữu hạn các hàm lập mã
D là tập các hàm giải mã
3
Với mỗi k thuộc K thì tồn tại hàm lập mã e
k
thuộc E, e
k
:P →C là một
hàm giải mã d
k
thuộc D: C → P sao cho d
k
(e
k

thế giới. Hiện tại DES không còn được đánh giá cao do kích thước của khóa
quá nhỏ 56 bits và dễ bị phá vỡ.
Chuẩn mã dữ liệu 3DES (Triple Data Encryption Standard)
Triple DES (3DES) có độ phức tạp thám mã lớn hơn DES với việc sử
dụng một quá trình mã hóa và giải mã sử dụng 3 khóa. Khối 64 – bits của bản
rõ đầu tiên sẽ được mã hóa sử dụng khóa thứ nhất. Sau đó, dữ liệu bị mã hóa
được giải mã bằng việc sử dụng khóa thứ hai. Cuối cùng, sử dụng khóa thứ ba
và kết quả của quá trình giải mã trên để mã hóa:
C = EK
3
(DK
2
(EK
1
(P)))
P = DK
1
EK
2
(DK
3
(C)))
5
Bản

Key
K
Bản

Môi

K. Sau đó dùng K để tạo luật mã hóa e
k
và luật giải mã d
k
. Trong hệ mật này,
d
k
hoặc giống như e
k
hoặc dễ dàng nhận được từ nó (ví dụ trong hệ DES), quá
trình giải hệ mật thuộc loại này còn được gọi là các hệ mật khóa bí mật vì
việc để lộ e
k
sẽ làm cho hệ thống mất an toàn.
Nhược điểm của hệ mật này là nó yêu cầu phải có thông tin trước về
khóa K giữa Alice và Bob qua một kênh an toàn trước khi gửi một bản mã bất
kỳ. Trên thực tế, điều này rất khó đảm bảo. Chẳng hạn khi Alice và Bob ở rất
6
xa nhau và họ chỉ có thể liên lạc với nhau bằng thư tín điện tử. Trong tình thế
đó Alice và Bob không thể tạo được một kênh bảo mật với giá phải chăng.
Ý tưởng xây dựng một hệ mật khóa công khai (hay khóa dùng chung)
là tìm một hệ mật không có khả năng tính toán để xác định d
k
nếu đã biết e
k
.
Nếu thực hiện được như vậy thì quy tắc mã e
k
có thể được công khai bằng
cách công bố nó trong một danh bạ (bởi vậy nên có thuật ngữ hệ mật khóa

Hệ này dựa trên lý thuyết mã đại số và vẫn còn được coi là an toàn.
Hệ mật McEliece dựa trên bài toán giải mã cho các mã tuyến tính (cũng là
một bài toán NP – đầy đủ).
- Hệ mật ElGamal
Hệ Elgamal dựa trên tính khó giải của bài toán logarit rời rạc trên các
trường hữu hạn.
- Hệ mật Chor – Rivest
Hệ mật Chor – Rivest cũng được xem như một loại hệ mật xếp balô,
tuy nhiên nó vẫn được coi là an toàn.
- Hệ mật trên các đường cong Eliptic
Các hệ mật này là các biến tướng của các hệ mật khác (chẳng hạn từ
hệ mật ElGamal). Chúng làm việc trên đường cong Eliptic chứ không phải là
trên các đường hữu hạn. Hệ mật này đảm bảo độ mật với khóa số nhỏ hơn các
hệ mật khóa công khai khác.
Sơ đồ hoạt động hệ mật khóa công khai:
8
Alice’s
PublicKey
Môi
trường
truyền
Bản

Bản

Alice’s
PrivateKey
Bản

Bản

k
≡13 (mod 17) hãy tìm k
Có nhiều hệ thống khóa công khai được triển khai rộng rãi như hệ
RSA, hệ ElGamal sử dụng giao thức trao đổi khóa Diffe – Hellnam và nổi lên
trong những năm gần đây là hệ thống đường cong Elliptic. Trong số các hệ
mật mã trên thì hệ RSA là hệ được cộng đồng chuẩn quốc tế và công nghiệp
chấp nhận rộng rãi trong việc thực thi mật mã khóa công khai.
Thuật toán được Ron Rivest, Adi Shamir và Len Adleman mô tả lần
đầu tiên vào năm 1977 tai học viện Công nghệ Masachusetts (MIT). Tên của
thuật toán lấy từ 3 chữ cái đầu tiên của tên 3 tác giả. Hệ mật mã RSA được sử
dụng rộng rãi trong thực tiến đặc biệt cho mục đích bảo mật và xác thực dữ
liệu số. Tính bảo mật và an toàn của chúng được đảm bảo bằng độ phức tạp
9
của một bài toán số học nổi tiếng là phân tích số nguyên thành các thừa số
nguyên tố. Hệ mật RSA được mô tả như hình sau:
Cho n = pq với p,q là số nguyên tố lớn. Đặt P = C = Z
n
Ta định nghĩa:
K = {n, p, q, a, b}: n=pq, p,q là các số nguyên tố ab ≡ 1 mod φ(n)
φ(n) = (p – 1)(q – 1), a khóa mật, b khóa công khai
Với mỗi K = (n, p, q, a, b), mỗi x ∈ P, y ∈C, ta xác định hàm mã và
giải mã như sau:
Hàm mã hóa: y = e
k
(x) = x
b
mod n.
Hàm giải mã: D
k
(x) = y

đủ lớn. Nếu n có độ dài 256 bits hoặc ngắn hơn, có thể bị phân tích trong vài
giờ với máy tính cá nhân dùng các phần mềm có sẵn. Nếu n có độ dài 521
bits, nó có thể bị phân tích bởi vài trăm máy tính tại thời điểm năm 1999. Một
thiét bị lý thuyết có tên là TWIRL do Shamir và Tromer mô tả năm 2003 đã
đặt ra câu hỏi về độ an toàn của khóa 1024 bits. Vì vậy hiện nay người ta
khuyến cáo sử dụng khóa có độ dài tối thiểu 2048 bits.
Năm 1993, Peter Shor công bố thuật toán Shor chỉ ra rằng: máy tính
lượng tử có thể giải bài toán phân tích ra thừa số trong thời gian đa thức. Tuy
nhiên, máy tính lượng tử vẫn chưa thể phát triển được tới mức độ này trong
nhiều năm nữa.
Việc phát minh ra phương pháp mã công khai tạo ra một cuộc cách
mạng trong công nghệ an toàn thông tin điện tử. Nhưng thực tiễn triển khai
cho thay tốc độ mã hóa khối dữ liệu lớn bằng các thuật toán mã hóa công khai
chậm hơn rất nhiều so với hệ mã hóa đối xứng. Ví dụ, để đạt được độ an toàn
như các hệ mã hóa đối xứng mạnh cùng thời, RSA đòi hỏi thời gian cho việc
mã hóa một văn bản lâu hơn gấp hàng ngàn lần. Do đó, thay bằng việc mã
hóa văn bản có kích thước lớn bằng lược đồ khóa công khai thì văn bản này
sẽ được mã hóa bằng một hệ mã đối xứng có tốc độ cao như DES, IDEA...
sau đó khóa được sử dụng trong hệ mã đối xứng sẽ được mã hóa sử dụng mật
mã công khai. Phương pháp này rất khả thi trong việc mã và giải mã những
văn bản có kích thước lớn như được mô tả trong hình dưới:
11
Hình 1.4. Dùng khóa công khai mã hóa khóa mật – Dùng khóa mật mã
hóa thông điệp gửi đi
Hệ mật Rabin
Hình 1.5. Sơ đồ hoạt động hệ mật Rabin
Đây là hệ mật có độ an toàn cao về mặt tính toán chống lại được cách
tấn công bản rõ lựa chọn và không có khả năng phân tích được n=pq
Với hàm mã hoá e
k

Khóa
mật
Khóa
mật
Khóa bí
mật của
Alice
Bản

Bản

Khóa công
khai của Alice
Bob
Gửi
Alice
Nhận
với một bản mã bất kỳ cho trước. Giả sử w là một trong 4 căn bậc hai của một
modulo n. Giả sử xєZn. Ta kiểm tra các phương trình sau:






+





+
222222
BB
xw
BB
xw
BB
xwe
k
( )
xe
Bxx
BB
Bxx
BB
xw
k
=
+=
−++=











Bxx
mod
4
mod0
24
2
2
1
2
1
2
1
2
1
+≡
≡−−++−
Nếu đặt
y
B
C +=
4
2
thì có thể viết lại phương trình đồng dư như sau:
x1 ≡ C (mod n)
13
Như vậy phép giải mã sẽ chỉ còn là thực hiện phép khai căn bậc hai
theo modulo n. điều này tương đương với việc giải phương trình đồng dư sau:
x
1
2

(p+1)/2
≡ 1(mod p).
Vì thế , hai căn bậc hai của C modulo p là ±C
(p+1)/4
mod p. Tương tự,
hai căn bậc hai của C modulo q là ±C
(p+1)/4
mod q. Sau đó ta có thể thu được
bốn căn bậc hai của x
1
của C modulo n bằng cách dùng định lý phần dư
China.
14
Nhận xét:
Một điều lý thú là với p ≡1 (mod 4), người ta chưa biết được một
thuật toán tất định theo thời gian đa thức nào để tính căn bậc hai của các thặng
dư bậc hai theo modulo p . Tuy nhiên, vẫn có thuật toán Las Vegas với thời
gian đa thức để tính nó .
Một khi đã xác định bốn giá trị có thể của x
1
, ta tính x từ phương trình
x=x
1
- B/2 để tìm được bốn bản rõ có thể. Điều này dẫn đến công thức giải
mã sau:

( )
24
2
B

liệu mà có sử dụng PKI có thể thực hiện trong một tổ chức, một thành phố,
hay một vùng. Để tăng cường quản lý khóa và bảo đảm độ an toàn cao cho dữ
liệu, PKI bao gồm các cơ chế và thủ tục hỗ trợ cho phần cứng và phần mềm.
Các chức năng của PKI bao gồm:
- Phát ra cặp khóa riêng và chung cho client PKI
- Tạo và thẩm định các ký tự
- Đăng ký và thẩm định người sử dụng
- Cấp chứng nhận cho người sử dụng
- Theo dõi các khóa được phát ra ghi lại lịch sử của từng khóa.
- Thu hồi chứng nhận hết hiệu lực.
- Tạm dừng hay kích hoạt chứng chỉ.
- Thẩm định các client PKI
1.2.1. Sinh khóa, phân phối khóa
1.2.1.1. Sinh khóa:
Giả sử Alice và Bob cần trao đổi thông tin bí mật thông qua một kênh
không an toàn (ví dụ như Internet). Với thuật toán RSA, Alice đầu tiên cần
tạo ra cho mình cặp khóa gồm khóa công khai và khóa bí mật theo các bước
sau:
B1. Chọn 2 số nguyên tố lớn p và q với p ≠ q
B2. Tính n=pq và φ(n)=(p-1)(q-1)
16
B3. Chọn số b nguyên tố cùng nhau với φ(n) và 1< b < φ(n)
B4. Tính a sao cho ab≡ 1 (mod φ(n))
Thành phần công khai bao gồm: n và b(khóa công khai)
Thành phần bí mật bao gồm: p, q, a(khóa bí mật)
a là số mũ bí mật (cũng gọi là số mũ giải mã).
Alice gửi khóa công khai cho Bob, và giữ bí mật khóa cá nhân của
mình. Ở đây, p và q giữ vai trò rất quan trọng. Chúng là các phân tố của n và
cho phép tính a khi biết b. Việc tìm ra 2 số nguyên tố đủ lớn p và q thường
được thực hiện bằng cách thử xác suất của các số ngẫu nhiên có độ lớn phù

DES. Vì thế thực tế các hệ mã khoá riêng thường được dùng để mã các bức
điện dài. Nhưng khi đó chúng ta lại trở về vấn đề trao đổi khoá mật.
Giả sử, ta có một mạng không an toàn gồm n người sử dụng. Trong
một số sơ đồ, ta có người uỷ quyền được tín nhiệm (TA) để đáp ứng những
việc như xác minh danh tính của người sử dụng, chọn và gửi khoá đến người
sử dụng ... Do mạng không an toàn nên cần được bảo vệ trước các đối
phương. Đối phương (Oscar) có thể là người bị động, có nghĩa là hành động
của anh ta chỉ hạn chế ở mức nghe trộm bức điện truyền trên kênh. Song mặt
khác, anh ta có thể là người chủ động. Một đối phương chủ động có thể làm
nhiều hành vi xấu chẳng hạn:
-Thay đổi bức điện mà anh ta nhận thấy là đang được truyền trên
mạng.
- Cất bức điện để dùng lại sau này.
- Cố gắng giả dạng làm những người sử dụng khác nhau trên mạng.
Mục tiêu của đối phương chủ động có thể là một trong những cái nêu
sau đây:
18
- Lừa U và V chấp nhận khoá “không hợp lệ” như khoá hợp lệ (khoá
không hợp lệ có thể là khoá cũ đã hết hạn sử dụng, hoặc khoá do đối phương
chọn).
- Làm U hoặc V tin rằng, họ có thể trao đổi khoá với người kia khi họ
không có khoá.
Mục tiêu của phân phối khoá và giao thức thoả thuận khoá là, tại thời
điểm kết thúc thủ tục, hai nhóm đều có cùng khoá K song không nhóm khác
nào biết được (trừ khả năng TA). Chắc chắn, việc thiết kế giao thức có kiểu
an toàn này khó khăn hơn nhiều trước đối phương chủ động.
Trước hết ta xem xét ý tưởng về sự phân phối khoá trước. Với mỗi cặp
người sử dụng {U,V}, TA chọn một khoá ngẫu nhiên KU,V=KV,U và truyền
“ngoài dải” đến U và V trên kênh an toàn. (Nghĩa là, việc truyền khoá không
xảy ra trên mạng do mạng không an toàn). Biện pháp này gọi là an toàn





2
n
khoá và đưa mỗi khoa cho
duy nhất một cặp người sử dụng trong mạng có n người sử dụng. Như đã nêu
ở trên, ta cần một kênh an toàn giữa TA và mỗi người sử dụng để truyền đi
các khoá này. Đây là một cải tiến quan trọng vì số kênh an toàn cần thiết giảm
từ








2
n
xuống còn n. Song nếu n lớn, giải pháp này cũng không thực tế cả về
lượng thông tin cần truyền đi an toàn lẫn lượng thông tin mà mỗi người sử
dụng phải cất giữ an toàn (nghĩa là các khoá mật của n-1 người sử dụng
khác). Như vậy, điều cần quan tâm là cố gắng giảm được lượng thông tin cần
truyền đi và cất giữ trong khi vẫn cho phép mỗi cặp người sử dụng U và V có
khả năng tính toán khoá mật K
UV
. Một sơ đồ ưu việt hơn thoả mãn yêu cầu
này là sơ đồ phân phối khoá trước của Blom.

p
Hình 1.6. Sơ đồ phân phối khóa trước của Blom
Ví dụ minh họa sơ đồ Blom với k=1:
Giả sử có 3 người sử dụng U,V,W, p=17 và các phần tử công khai của
họ là r
U
= 12, r
V
= 7, r
W
= 1. Giả thiết TA chọn a=8, b=7, c=2, khi đó đa thức f
như sau:
f(x,y) = 8 + 7(x+y) + 2xy
Khi đó các đa thức
g
U
(x) = 7 + 14x
g
V
(x) = 5 + 4x
g
W
(x) = 15 + 9x
Như vậy 3 khóa nhận được sẽ là:
K
U,V
= K
V,U
= 3
K

(x) là đa thức tuyến
tính theo x nên có thể viết như sau:
g
U
(x)= a
U
+ b
U
x
Với a
U
= a + br
U
mod p
b
U
= b+ cr
U
mod p
4. Nếu U và V muốn liên lạc với nhau họ sẽ dùng khóa chung:
K
U,V
= K
V,U
= f(r
U
,r
V
) = a + b(r
U

V,W
= K
W,V
= 10
Khi đó U tính K
U,V
như sau:
g
U
(r
V
) = 7 + 14×7 mod 17 = 3
Và V tính K
V,U
g
V
(r
U
) = 6 + 4×12 mod 17 = 3
Tương tự các khóa khác.
Sơ đồ Diffie-Hellman
Trong phần này ta sẽ mô tả một sơ đồ phân phối khóa trước là cải tiến
của giao thức trao đổi khóa Diffie – Hellman và gọi nó là sơ đồ phân phối
trước khóa Diffie Hellman. Sơ đồ này an toàn về mặt tính toán vì nó liên quan
đến bài toán logarithm rời rạc không Z
p
, p là số nguyên tố, mặc dù có thể thực
hiện nó trên nhóm hữu hạn bất kỳ, trong đó bài toán logarihm rời rạc không
giải được. Giả sử rằng, α là phần tử nguyên thủy của Z
p

,sig
TA
(ID (U),b
U
))
22
Trong đó b
U
được thiết lập theo mô tả ở phần trên (chú ý rằng TA
không cần biết giá trị của a
U
). Dấu xác nhận của người sử dụng U sẽ được
đóng vào khi U nối vào mạng. Có thể lưu các dấu xác nhận trong cơ sở dữ
liệu công khai hoặc mỗi người sử dụng có thể tự lưu dấu xác nhận của chính
họ. Chữ ký của TA trên dấu xác nhận cho phép bất kỳ ai trên mạng đều có thể
xác minh được thông tin trên nó. U và V rất dễ dàng tính ra khóa chung:
pK
VU
aa
VU
mod
,
α
=
1. Số nguyên tố p và phần tử nguyên thủy α € Z
p
công khai.
2. V tính:
V
VU

riêng của U
Hình 1.7. Sơ đồ phân phối khóa trước của Diffie Hellman
Dưới đây là ví dụ minh họa:
Giả sử p = 25307 còn α = 2 là những tham số công khai (p nguyên tố
còn α là nghiệm nguyên thủy theo modulo p). Giả thiết U chọn a
U
= 3578.
Sau đó có ta tính
pb
U
a
U
mod
α
=
= 2
3578
mod 25307 = 6113
Đặt trên dấu xác nhận. Giả thiết V chọn a
V
= 19956. Sau đó tính:
19956
2mod == pb
V
a
V
α

798425307mod =
Đóng trên dấu xác thực của V.

mod p và
V
a
α
mod p thì có khả năng tính được
UV
aa
α
mod p
không? Đây là bài toán Diffie – Hellman được định nghĩa như sau:
Sơ đồ phân phối khóa trước Diffie – Hellman an toàn trước đối
phương thụ động khi bài toán Diffie – Hellman khó giải.
Nếu W có thể tính a
U
, b
U
thì anh ta có thể tính K
U,V
một cách chính xác
như U, V. Nhưng tính toán này là các trường hợp của bài toán logarithm rời
rạc. Vì thế chỉ cần bài toán logarithm rời rạc trong Z
P
khó giải thì sơ đồ
Diffie-Hellman sẽ an toàn.
Sơ đồ Kerboros
Trong các phương pháp phân phối trước khoá xem xét trong các phần
trước đó, mỗi cặp người sử dụng cần tính một khoá cố định. Nếu dùng cùng
một khoá trong một thời gian dài sẽ dễ bị tổn thương, vì thế người ta thường
thích dùng phương pháp trực tiếp trong đó khoá của phiên làm việc mới chỉ
được tạo ra mỗi khi hai ngưới sử dụng muốn liên lạc với nhau (gọi là tính tươi

3. TA tính
),),(,(
),),(,(
2
1
LTUIDKem
LTVIDKem
v
U
K
K
=
=
Sau đó gửi m
1
, m
2
đến U
4. U dùng hàm giải mã
U
K
d
để tính K, T, L và ID(V) từ m
1
, và tính:
m
3
= e
K
(ID(U),T)

Trích đoạn Mã hóa và giải mã Chứngchỉ số và giải pháp quản lý Chức năng cơ bản của PKI Mô hình lai ghép
Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status