Tải bản đầy đủ
TRONG HỆ THỐNG TÍNH TOÁN LƯỚI

TRONG HỆ THỐNG TÍNH TOÁN LƯỚI

Tải bản đầy đủ

29

+ Xác thực đúng thực thể có trách nhiệm về nội dung thông tin (xác thực
đúng nguồn gốc của thông tin).
Trong vấn đề xác thực thực thể sử dụng lưới, luận văn quan tâm tới việc Xác
thực đúng người đã đăng ký sử dụng lưới . Để thực hiện được điều này có thể sử
dụng phương pháp xác thực như: dựa trên User Name và Password, nhận dạng Chữ
ký số, nhận dạng Chữ ký viết tay, nhận dạng Sinh trắc học, ....
Trong luận văn này, để xác thực đúng người đã đăng ký sử dụng lưới tác giả
dùng phương pháp sử dụng Chữ ký số.
2.1.1.Phương pháp sử dụng chữ ký số
2.1.1.1. Sơ đồ chữ ký số [2]
Sơ đồ chữ ký cũng là bộ năm (P,A,K,S,V), trong đó:
P là tập hữu hạn các văn bản có thể
A là tập hữu hạn các chữ ký có thể
K là tập hữu hạn các khóa có thể
S là tập các thuật toán ký
V là tập các thuật toán kiểm thử, nếu với mỗi k ∈K ta có thuật toán ký

Sig k ∈S, Sig k : P →A và có thuật toán kiểm tra chữ ký:

Verk ∈ V,Verk :PxA → { True, False} ,
Người ta dùng hệ mã hoá công khai để lập sơ đồ chữ ký số. Ở đây khoá bí
mật dùng làm khoá ký, còn khoá công khai dùng để làm khoá kiểm tra chữ ký.

30

2.1.1.2. Chữ ký RSA
1/. Sơ đồ chữ ký
-

Tạo khoá:
Chọn bí mật p,q là các số nguyên tố lớn, tính bí mật n=p.q và
φ ( n ) = ( p −1).( q −1)

Cho P=A=Zn và định nghĩa
K là tập các khoá, k=(k’,k”) với k’=a là khoá bí mật,k”=(n,b) là khoá
công khai. Trong đó, a,b∈Z*n thoả mãn a . b ≡ 1mod φ ( n)
Các giá trị n,b là công khai, các giá trị p,q,a là các giá trị bí mật.
-

Tạo chữ ký:
Với mỗi k=(n,p,q,a,b), chữ ký trên x là:y = Sig k ' ( x) = x mod n
a

-

Kiểm tra chữ ký :

Verk " ( x, y ) = True ⇔ x = y b mod n, x, y ∈ Z n
Giả sử A muốn gửi thông báo x, A sẽ tính chữ ký y bằng cách
y = Sigk’(x) =xa mod n (a là khoá bí mật của A), do đó chữ ký là an toàn.
So sánh sơ đồ chữ ký RSA với sơ đồ mã hoá RSA ta thấy có sự tương ứng:
+ Việc ký chẳng qua là mã hoá, việc kiểm thử lại chính là việc giải mã.
+ Việc ký số vào tài liệu x tương ứng với việc mã hoá tài liệu x
+ Kiểm thử chữ ký chính là việc giải mã chữ ký, để kiểm tra xem tài liệu đã
giải mã có đúng là tài liệu trước khi ký không. Thuật toán và khoá kiểm thử
là công khai, ai cũng có thể kiểm thử chữ ký được.

31

Ví dụ: Chữ ký trên x=2
-

Tạo cặp khoá (bí mật,công khai) (a,b):
Chọn bí mật số nguyên tố p=3, q=5, tính n= p.q = 3.5 = 15 , công khai n.
Đặt P=C=Zn , tính bí mật φ (n) = (p-1).(q-1) = 2.4 = 8
Chọn khoá công khai b = 3 < φ (n) ,nguyên tố với φ (n) = 8
Khoá bí mật a=3, là phần tử nghịch đảo của b theo mod φ(n)
a.b ≡1modφ ( n )

-

Ký số: Chữ ký trên x = 2 ∈P là

y = Sig k ( x) = x a mod n = 23 mod15 = 8, y ∈ A
-

Kiểm tra chữ ký:

Verk " ( x, y ) = True ⇔ x = y b mod n ⇔ 2 ≡ 8b mod15
2/. Độ an toàn của chữ ký RSA
Độ an toàn của chữ ký số RSA phụ thuộc vào bài toán tách số n thành hai số
nguyên tố p và q.
2.1.1.3. Chữ ký Elgamal
1/Sơ đồ chữ ký
+ Tạo cặp khoá (bí mật, công khai) ( a,b)
Chọn số nguyên tố p sao cho bài toán logarithm rời rạc trong Zp là khó giải.
*
*
*
*
Chọn phần tử nguyên thuỷ g ∈ Zp . Đặt P = Zp , A = Zp xZp-1
*
Chọn khoá bí mật là a ∈ Zp . Tính khoá công khai b = g a mod p
a
Định nghĩa tập khoá K = { ( p, g , a, b) : b = g mod p} , các giá trị p,g,b được công

khai, phải giữ bí mật a.

+ Tạo chữ ký:

32

*
*
Dùng hai khoá ký: Khoá a và khoá ngẫu nhiên bí mật r ∈ Zp-1 (vì r ∈ Zp-1 nên

nguyên tố cùng p-1, do đó tồn tại r −1 mod( p − 1) )
Chữ ký trên x ∈ P là y = sig k ( x, r ) = (γ , δ ) , y ∈ A
*
Trong đó : γ ∈ Z p , δ ∈ Z p−1 , γ = g r mod p và δ = ( x − a * y )* r −1 mod( p − 1)

+ Kiểm tra chữ ký :
Verk ( x, y, δ ) = True ⇔ bγ * γ δ ≡ g x mod p

Ví dụ:
Giả sử cho p = 467, α = 2, a = 127 , khi đó:

β = α a mod p =2127 mod 467 =132
Nếu B muốn ký lên bức điện x = 100 và chọn số ngẫu nhiên k = 213 (

UCLN (213, 466) = 1 và 213−1 mod 466 = 431). Khi đó

γ =2213 mod 467 = 29 và δ =(100-127x29) mod 466 = 51
Bất kỳ ai cũng có thể xác minh chữ ký bằng cách kiểm tra:

13229 .2951 ≡ 189(mod 467) và 2100 ≡ 189(mod 467)
Vì thế chữ ký là hợp lệ.
2/ Độ an toàn của chữ ký Elgamal
Độ an toàn của chữ ký số Elgamal phụ thuộc bài toán tính loggh..
2.1.1.4. Quy trình tạo và kiểm tra chữ ký số
Việc ký một tài liệu bằng chữ ký số trước khi lưu trữ vào cơ sở dữ liệu hoặc
gửi đi được thực hiện qua những bước như sau:
 Chọn file tài liệu muốn ký.
 Sử dụng hàm băm tạo đại diện của tài liệu cần ký.
 Sử dụng khoá bí mật để mã hoá đại diện của tài liệu. Kết quả thu được chính
là chữ ký số của người cần ký đối với tài liệu này.
 Gắn hoặc đưa chữ ký số vào tài liệu.
 Lưu tài liệu có chứa chữ ký số vào cơ sở dữ liệu hoặc gửi tài liệu đó đi.
Chữ ký có thể được lưu riêng vào một file hoặc được ghép trực tiếp vào file
tài liệu. Nếu lưu riêng thì khi gửi ta phải gửi cả tài liệu gốc và file chữ ký.

33

Hình 2.1 Sơ đồ tạo chữ ký số của tài liệu
Để kiểm tra một tài liệu đã ký bằng chữ ký số xem tài liệu này có đúng là A
gửi cho B hay không, nội dung của tài liệu có bị thay đổi hay không, A thực hiện
theo những bước sau:
 Mở tài liệu đã được ký bằng chữ ký số .

34

 Tách riêng phần chữ ký số và phần nội dung của tài liệu gốc.
 Sử dụng khoá công khai để giải mã chữ ký. Kết quả thu được đại diện tài liệu
gốc đã tạo khi ký.
 Sử dụng hàm băm tạo đại diện của tài liệu cần ký.
 So sánh đại diện tài liệu mới được tạo với đại diện tài liệu có được từ việc
giải mã chữ ký số.
Nếu phần chữ ký không bị thay đổi thì kết quả giải mã sẽ cho ta đại diện của
tài liệu được lưu trữ hoặc gửi đi. Việc tạo đại diện của tài liệu nhận được cũng được
thực hiện bằng thuật toán băm giống như khi ký tài liệu.
Vì vậy, khi giá trị đại diện của nội dung tài liệu nhận được bằng với giá trị
giải mã của chữ ký số thì có nghĩa là khoá bí mật của người gửi đã được sử dụng để
mã hoá đại diện của tài liệu và nội dung của tài liệu không bị thay đổi. Và do chỉ có
người gửi mới biết khoá bí mật của họ nên có thể xác định được là người ký tài liệu
đã gửi tài liệu đó đi. Điều này có nghĩa là người gửi không thể chối cãi về việc mình
đã gửi tài liệu đi và được gọi là tính “Không thể phủ nhận” của chữ ký.
Nếu giá trị giải mã của phần chữ ký số nhận được khác với giá trị đại diện
của phần nội dung tài liệu nhận được thì có thể xảy ra một hoặc các trường hợp sau
đây:
- Nội dung của tài liệu nhận được đã thay đổi so với tài liệu được gửi đi.
- Chữ ký đã bị thay đổi.
- Không phải người gửi đã ký vào tài liệu nhận được

35

Hình 2.2 Sơ đồ đọc và xác thực một tài liệu được ký bằng chữ ký số
2.1.2. Sử dụng Chữ ký số xác thực người sử dụng
Như đã trình bày ở trên, để xác thực đúng người đã đăng ký sử dụng lưới có
thể dùng một số phương pháp như: dựa trên User Name và Password, nhận dạng
Chữ ký số, nhận dạng Chữ ký viết tay, nhận dạng Sinh trắc học, ....Nhưng trong
luận văn, tác giả chỉ nghiên cứu và trình bày một phương pháp chung là sử dụng
Chữ ký số.

36

Chẳng hạn, để sử dụng lưới tính toán, đầu tiên người dùng
phải đăng ký tham gia và cài đặt các phần mềm lưới cần thiết. Hệ
thống sẽ yêu cầu một thủ tục định danh với mục đích an toàn.
Người dùng cũng có thể thể đăng ký một tài khoản mới mà chỉ
mình mới có thể sử dụng được.
Sau khi các thủ tục định danh được thực hiện, người dùng
nhận được các phần mềm lưới để cài đặt trên hệ thống của mình
với vai trò là người khai thác hệ thống hay người cung cấp tài
nguyên cho hệ thống lưới.
Tiếp đó, hệ thống lưới yêu cầu người sử dụng phải đăng nhập trước khi sử
dụng và khai thác hệ thống. Người sử dụng sẽ dùng định danh của mình khi đăng ký
hệ thống.
Khi có nhu cầu sử dụng, người dùng đăng nhập vào hệ thống và phải được
xác thực là đúng người đã đăng ký sử dụng hợp pháp. Lúc đó, ta áp dụng phương
pháp ký số để xác thực. Việc áp dụng như thế nào còn tuỳ thuộc vào cơ chế xác
thực cụ thể của từng hệ thống lưới.

2.2. VẤN ĐỀ BẢO VỆ THÔNG TIN TRÊN ĐƯỜNG TRUYỀN LƯỚI

Thông tin được truyền trên mạng nói chung và trên lưới nói riêng dễ bị lấy
trộm, nghe lén, thay đổi….vì vậy cần phải được bảo vệ.
Bảo vệ thông tin trên đường truyền lưới cũng phải bảo đảm: tính bảo mật,
tính bảo toàn, tính xác thực và tính sẵn sàng. Ở đây, tác giả chỉ tập trung vào vấn đề
bảo mật và bảo toàn.

37

Có nhiều phương pháp để bảo đảm tính bí mật của thông tin như: Sử dụng
các cơ chế và phương tiện vật lý, quản lý truy xuất, mã hoá. Tuy nhiên, phương
pháp mã hoá được xem là công cụ bảo mật thông tin hữu hiệu nhất trong môi
trường máy tính nói chung và môi trường lưới nói riêng.
Bảo mật thông tin bằng mã hoá có hai hướng tiếp cận là:
+ Theo đường truyền.
+ Từ nút đến nút.
Trong luận văn này, tác giả sử dụng phương pháp mã hoá để bảo mật và sử
dụng phương pháp tạo đại diện thông điệp để kiểm tra tính toàn vẹn thông tin trên
đường truyền lưới.
Sau đây là phần trình bày về hai phương pháp trên.
2.2.1. Phương pháp mã hoá
2.2.1.1. Hệ mã hoá [2]
Việc mã hoá phải theo một quy tắc nhất định, quy tắc đó gọi là hệ mã hoá.
Hệ mã hoá được định nghĩa là bộ năm (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 khoá có thể
E là tập các hàm lập mã
D là tập các hàm giải mã

Với khoá lập mã k e ∈ K , có hàm lập mã e ke ∈ E , e ke : P → C với khoá giải mã

k d ∈ K , có hàm giải mã d k d ∈ D , d k d :C → P sao cho d k d (eke ( x)) = x, ∀ x ∈ P .
Ở đây, x được gọi là bản rõ, eke ( x) được gọi là bản mã.
2.2.1.2.Hệ mã hoá khoá đối xứng

38

Mã hoá khoá đối xứng là hệ mã hoá mà nếu biết được khoá lập mã thì có thể
“dễ” tính được khoá giải mã và ngược lại. Đặc biệt, một số hệ mã hoá có khoá lập
mã và khoá giải mã trùng nhau ( k e =k d ) như hệ mã hoá dịch chuyển hay DES.
Hệ mã hoá khoá đối xứng còn gọi là Hệ mã hoá khoá bí mật hay khoá riêng,
vì phải giữ bí mật cả hai khoá.
Độ an toàn của hệ mã hoá loại này phụ thuộc vào khoá.
Bản mã

Bản rõ

Mã hoá

Giải mã

Bản rõ

Khoá
Hình 2.3 Mã hoá với khoá mã và giải mã giống nhau
Ưu điểm của hệ mã hóa khóa đối xứng là mã hóa và giải mã nhanh hơn hệ
mã hóa công khai. Tuy nhiên hệ mã hóa này lại có một số hạn chế :
- Mã hóa khóa đối xứng chưa thật an toàn vì người mã hóa và người giải mã
phải có chung một khóa. Khóa phải được giữ bí mật tuyệt đối vì biết khóa này dễ
xác định được khóa kia và ngược lại.
- Vấn đề thoả thuận khóa và quản lý khóa chung là khó khăn và phức tạp.
Người gửi và người nhận phải luôn thông nhất với nhau về khóa. Việc thay đổi
khóa là rất khó và dễ bị lộ. Khóa chung phải được gửi cho nhau trên kênh an toàn.
Mặt khác khi hai người (lập mã, giải mã) cùng biết chung một bí mật thì càng khó
giữ được bí mật.
Do những ưu nhược điểm trên nên hệ mã hóa khóa đối xứng thường được sử
dụng trong môi trường mà khóa chung có thể dễ dàng trao chuyển bí mật, chẳng
hạn trong cùng một mạng nội bộ. Hệ mã hóa khóa đối xứng thường dùng để mã hóa
những bản tin lớn, vì tốc độ mã hóa và giải mã nhanh hơn hệ mã hóa khóa công
khai.

39

Sau đây ta xét một hệ mã hoá khoá đối xứng
Hệ mã hoá khoá đối xứng DES
Chuẩn mã hoá dữ liệu DES (Data Encryption Standard) được Văn
phòng tiêu chuẩn của Mỹ ( U.Snational Bureau for Standards) công bố năm 1971,
để sử dụng trong các cơ quan chính phủ liên bang. Giải thuật được phát triển tại
công ty IBM dựa trên hệ mã hoá LUCIFER của Feistel.
DES là thuật toán mã hoá khối (block algrithm), với cỡ của một khối là 64
bít. Một khối 64 bít bản rõ được đưa vào, sau khi mã hoá dữ liệu đưa ra là một khối
bản mã 64 bít. Cả mã hoá và giải mã đều sử dụng cùng một thuật toán và khoá.
Khoá mã có độ dài 64 bít, trong đó có 8 bít chẵn lẻ được sử dụng để kiểm
soát lỗi. Các bít chẵn lẻ nằm ở các vị trí 8, 16, 24,... , 64. Tức là cứ 8 bít khoá thì
trong đó có 1 bít kiểm soát lỗi, bít này qui định số bít có giá trị “1” của khối 8 bít đó
theo tính bù chẵn.
Nền tảng để xây dựng khối của DES là sự kết hợp đơn giản của các kỹ thuật
thay thế và hoán vị bản rõ dựa trên khoá. Đó là các vòng lặp. DES sử dụng 16 vòng
lặp, nó áp dụng cùng một kiểu kết hợp của các kỹ thuật trên khối bản rõ 16 lần