MÃ HÓA DỮ LIỆU VÀ ỨNG DỤNG TRONG CHỮ KÝ ĐIỆN TỬ - Pdf 15

MÃ HÓA DỮ LIỆU VÀ ỨNG DỤNG TRONG CHỮ KÝ ĐIỆN
TỬ
I. ĐẶT VẤN ĐỀ
Ngày nay khi sự phát triển của Internet và công nghệ thông tin ngày càng cao. Đã cho
phép chúng ta thực hiện những giao dịch điện tử thông qua internet, nhưng tính linh hoạt
của internet cũng tạo cơ hội cho “bên thứ ba” có thể thực hiện các hành động bất hợp pháp
cụ thể là:
• Tấn công trực tiếp: Một phương pháp phổ biến đó là đoán và dò tìm username –
password theo các thông tin của nguời dùng như tên, ngày sinh, địa chỉ, số nhà Đây
là phương pháp đơn giản, dễ thực hiện và khả năng thành công cũng khá lớn, có thể
tới 30%.
• Nghe trộm và quan sát mạng: Được tiến hành ngày sau khi kẻ tấn công đã chiếm
được quyền truy nhập vào hệ thống. Thông tin không bị thay đổi nhưng tính bí mật
của nó thì đã không còn. Bên thứ ba dễ dàng ghi lại các thông tin không được mã
hóa khi truyền trên mạng như mật khẩu, số thẻ tín dụng hay các thông tin bảo mật
khác.
• Giả mạo (Tampering): Cá thông tin trong khi truyền trên mạng có thể bị thay đổi nội
dung hoặc thay thế trước khi đến đúng người nhận. Các kiểu giả mạo :
o Giả mạo các định tuyến: các thủ tục định tuyến chuẩn được dùng thông dụng
trong các cấu hình router cho phép bất kỳ người nào có thể lập lại cấu hình
cho các router này. Nó có thể được dùng để chuyển định tuyến các kết nối tới
các mạng mà bình thường chúng sẽ không được đi qua, ở đó các thông tin sẽ
bị đánh cắp.
o Giả mạo DNS: tấn công mức mạng có thể được dùng để yêu cầu các máy chủ
tên miền cung cấp các thông tin dùng để tấn công sau này.
o Giả mạo hệ thống truy nhập từ xa: có thể dễ dàng chặn một kết nối mà các bên
truyền không hề biết, chèn thêm vào hay đưa ra các lệnh mới, rồi truyền đến
nơi nhận. Từ đó có thể tấn công hay chiếm quyền điều khiển các máy tính
chạy sau firewall.
• Mạo danh: Một cá nhân có thể dựa vào thông tin của người khác để trao đổi với một
đối tượng. Có 2 hình thức mạo danh sau:

dạng khác, mà một người không có thẩm quyền, không có phương tiện giải mã thì không thể
đọc hiểu được. Giải mã dữ liệu là quá trình ngược lại, là sử dụng một phương pháp biến đổi dữ
liệu đã được mã hóa về dạng thông tin ban đầu.
2
2
Quy trình mã hóa dữ liệu
Sau đây là một số khái niệm và kí hiệu liên quan về vấn đề mã hóa và giải mã dữ liệu :
- Mã hóa (Encryption): Quá trình chuyển đổi dữ liệu gốc thành dữ liệu được mã hóa
sao người khác không thể đọc hiểu được (kí hiệu E);
- Giải mã (Decryption): Quá trình ngược lại của mã hóa, biến đổi dữ liệu đã được mã
hóa thành dạng gốc ban đầu (kí hiệu D);
- Thông điệp (Message), bản gốc (Plaintext): Tệp dữ liệu chưa mã hóa (kí hiệu M).
- Bản mã (Ciphertext): Tệp dữ liệu đã được mã hóa (kí hiệu C).
Theo quy ước, khi mã hóa thì C = E(M) và khi giải mã thì M = D(C) = D(E(M))
Theo phương pháp truyền thống, người ta thường dùng cùng một khóa để mã hóa và giải
mã. Lúc đó, khóa phải được giữ bí mật tuyệt đối. Người ta gọi đây là hệ thống mã hóa cổ
điển (hay còn gọi là mã hóa đối xứng, một khóa, khóa bí mật, ).
Phương pháp khác sử dụng khóa công khai (còn gọi là phương pháp mã hóa bất đối xứng,
hay hệ thống hai khóa) trong đó khóa để mã hóa và khóa để giải mã là khác nhau. Các khóa này
tạo thành một cặp chuyển đổi ngược nhau và không khóa nào có thể suy ra được từ khóa kia.
Phần tiếp theo của bài báo sẽ đề cập đến kỹ thuật mã hóa này.
II.2 Các giải thuật mã hóa
II.2.1 Thuật toán MD5
Hàm băm (Hash Function) nhận giá trị vào (Input) là một thông điệp M ở có chiều dài bất
kỳ, để biến (băm) thành một giá trị h ở đầu ra (Output) có chiều dài cố định, h được gọi là
giá trị băm (Hash Value).
Minh họa hàm băm
3
3
Thuật toán MD5 (Message Digest 5), do Ronald Rivest thiết kế năm 1991, là xây dựng

mã hóa.
Thuật toán mã hóa khóa công khai dựa trên các hàm toán học hơn là những phép tính bit
thông thường. Và hơn nữa, hệ mã hóa khóa công khai là bất đối xứng tức là hệ mã hóa này
sử dụng hai khóa, một khóa để mã hóa và một để giải mã, đối nghịch với mã hóa đối xứng
truyền thống là chỉ dùng 1 khóa để mã hóa và giải mã.
Việc sử dụng 2 khóa được ứng dụng nhiều trong các lĩnh vực như về độ tin cậy, phân phối
khóa hay chứng thực.
Mô hình hệ mã hóa bất đối xứng
Mã hóa công khai
Mã hóa khóa công khai được ứng dụng nhiều trong các lĩnh vực như để đảm bảo độ tin
cậy, phân phối khóa, chứng thực văn bản. Mức độ an toàn của mã hóa bất đối xứng hơn hẳn
so với hệ mã hóa đối xứng, bên tấn công không thể sử dụng phân tích mã hóa hay tấn công
5
5
vét cạn để tấn công hệ mã hóa công khai vì rất phức tạp về mặt tính toán khi biết khóa công
khai và bản tin ciphertext để tìm được plaintext.
Đặc trưng của hệ mã hóa khóa công khai là sử dụng hai khóa, trong đó một khóa để mã
hóa, khóa còn lại được giữ bí mật và dùng để giải mã. Bên gửi sử dụng khóa công khai của
bên nhận để mã hóa, như vậy ai cũng có thể thực hiện mã hóa được vì khóa đó là khóa công
khai, mọi người đều có thể biết. Nhưng khi tới bên nhận thì chỉ có người chủ đích thực mới
có thể giải được mã vì chỉ riêng người đó có khóa riêng để giải mã, những người thuộc bên
thứ 3 không có khóa riêng nên không thể giả mạo tin nhắn được.
Các bước thực hiện mã hóa theo hệ mã hóa khóa công khai :
1) Mỗi người dùng sinh một cặp khóa sử dụng để mã hóa và giải mã bản tin
2) Người dùng đăng ký 1 trong 2 khóa là công khai hoặc chứa trong tệp để người
khác có thể truy nhập được. Đó là khóa công khai.
3) Nếu người dùng A muốn gửi bản tin tới người dùng B, thì A mã hóa bản tin
sử dụng khóa công khai của B
4) Khi B nhận được bản tin, B sẽ thực hiện giải mã nó sử dụng khóa riêng.
Không ai có thể giải mã được bản tin đó vì chỉ có B biết, đó là khóa riêng của

Kpu
(M)]
4) Việc tính toán của bên thứ 3, từ khóa công khai K
PU
để tìm được K
PR
là điều
không thể
5) Việc tính toán của bên thứ 3, từ khóa công khai K
PU
và ciphertext C để tìm được
bản tin gốc M là điều không thể
6) Một trong hai khóa được dùng để mã hóa thì khóa còn lại được dùng để giải mã
M = D
Kpr
[E
Kpu
(M)] = D
Kpu
[E
Kpr
(M)]
II.2.3.2 Giải thuật RSA (Rivest Shamir Aldeman)
Thuật toán RSA là một trong những thuật toán khóa công khai được phát triển sớm nhất,
được đưa ra vào năm 1977 bởi Ron Rivest, Adi Shamir và Len Adleman. RSA hỗ trợ cả mã
hóa và giải mã dữ liệu với độ dài khóa thay đổi. Sử dụng khóa dài giúp tăng độ an toàn của
hệ thống nhưng phải trả giá về thời gian tính toán
RSA là một khối mã hóa (block cipher) trong đó plaintext và ciphertext là những số
nguyên từ 0 đến (n-1) với n xác định
Khối plaintext M và khối ciphertext C

Hai yêu cầu đầu tiên có thể dễ dàng đáp ứng, yêu cầu thứ 3 có thể đáp ứng với giá trị lớn
của e và n.
7
7
Sơ đồ thuật toán RSA
Thuật toán RSA được tổng quát trong 3 quá trình như sau :
1) Tạo cặp khóa
Để tạo được cặp khóa, đầu tiên cần lựa chọn 2 số nguyên tố p và q. Tiếp đó tính tích
của chúng được giá trị n tức là tính n = p x q.
Tính φ(n) = (p -1)(q -1). Hai số nguyên tố p, q lựa chọn là đủ lớn để khó có thể tính
ngược lại từ n và φ(n).
Sau đó lựa chọn số nguyên e (1 < e < φ(n) ) là số nguyên tố cùng nhau với φ(n), tức
là thỏa mãn ƯSCLN (φ(n),e) = 1.
Tính d thỏa mãn d = e
-1
mod φ(n)
Khi đó cặp khóa sinh ra với khóa công khai là K
PU
= {n, e} và khóa riêng K
PR
={n,
d}.
2) Mã hóa
Giả sử người dùng A công khai khóa của họ và người dùng B muốn gửi tin cho A thì
B sẽ mã hóa bản tin sử dụng khóa K
PU
của A : C = M
e
mod n
Sau đó truyền C đi.

1
mod 96) x (83
2
mod 96)
2
mod 96] mod 96
83 mod 96 = 83
83
2
mod 96 = 73
C = 83
5
mod 96 = (83 x 73
2
) mod 96 = 35
7. Khi tới nơi nhận, bên nhận thực hiện giải mã sử dụng khóa riêng, cần tính M = 35
77
mod 96
35
77
mod 96 = [35
2
mod 96 x (35
5
mod 96)
15
mod 96] mod 96
35
2
mod 96 = 73

- Người gửi và người nhận
phải sử dụng cùng giải
thuật và cùng khóa
- Một giải thuật cho mã hóa
và một giải thuật cho giải

- Người gửi và người nhận
mỗi nguời có cặp khóa
cho riêng mình
Yêu cầu cho bảo
mật
- Khóa phải được giữ bí mật
- Không thể hay ít nhất
không có tính thực tế để
giải mã đoạn tin nếu thông
tin khác không có sẵn
- Kiến thức về giải thuật
cùng với các mẫu về mật
mã không đủ để xác định
khóa
- Một trong hai khóa phải
được giữ bí mật
- Không thể hay ít nhất
không có tính thực tế để
giải mã đoạn tin nếu
thông tin khác không có
sẵn
- Kiến thức về giải thuật
cùng với khóa được công
khai, cùng với các mẫu về

văn bản được tách làm 2 phần, phần văn bản gốc được tính lại fingerprint để so sánh với
fingerprint cũ cũng được phục hồi từ việc giải mã chữ ký số. Như vậy ta có thể xác định
được thông điệp bị gửi không bị sửa đổi hay can thiệp trong quá trình gửi.
Mô hình chung cho chữ ký điện tử
III.1.3 Quy trình thực hiện của chữ ký điện tử:
Bước 1 : Mã hóa :
- Dùng giải thuật băm để thay đổi thông điệp cần truyền đi. kết quả ta được
một message digest. dùng giải thuật MD5 (Message Digest 5) ta được digest
có chiều dài 128-bit, dùng giải thuật SHA (Secure Hash Algorithm) ta có
chiều dại 160 bit.
- Sử dụng khóa private key của người gửi để mã hóa message digest thu
được ở bước 1. thông thường ở bước này ta dùng giải thuật rsa. kết quả thu
được gọi là digital signature của message ban đầu .
- Gộp digital signature vào message ban đầu. công việc này gọi là “ký
nhận” vào message. sau khi đã ký nhận vào message, mọi sự thay đổi trên
11
11
message sẽ bị phát hiện trong giai đoạn kiểm tra. ngoài ra, việc ký nhận này
đảm bảo người nhận tin tưởng message này xuất phát từ người gửi chứ không
phải ai khác.
Bước 2: Kiểm tra :
- Dùng public key của người gửi (khóa này được thông báo đến mọi người) để
giải mã chữ ký số của message .
- Dùng giải thuật md5 hoặc sha băm message đính kèm .
So sánh kết quả thu được ở các bước trên . Nếu trùng nhau , ta kết luận message này không
bị thay đổi trong quá trình truyền và message này là của người gửi.
III.2. Chữ ký số
III.2.1 Khái niệm
Chữ ký số là một dạng đặc biết của chữ ký điện tử sử dụng công nghệ khóa công khai
PKI (Public Key Infrastructure). Trong đó mỗi người tham gia ký cần một cặp khóa bao

bản tin giả sẽ khác với giá trị băm ban đầu vì hai bản tin khác nhau tương ứng với
hai giá trị băm khác nhau.
• Nếu khóa công khai không tương ứng với khóa bí mật đã dùng trong quá trình ký
số, giá trị băm ban đầu nhận được khi giải mã chữ ký sẽ là một giá trị sai.
III.2.3 Tính chất của chữ ký số
Dịch vụ bảo mật (Security Service) là những dịch vụ nhằm nâng cao tính an toàn cho hệ
thống xử lý dữ liệu và các thông tin được chuyển đi giữa các tổ chức. Các dịch vụ bảo mật
đuợc hỗ trợ bao gồm :
• Xác thực (Authentication): nhằm đảm bảo các bên tham gia truyền thông đều được
xác thực.
• Đảm bảo độ tin cậy của dữ liệu (Data Confidentiality): bảo vệ dữ liệu khỏi những
tấn công thụ động ( những tấn công mà bên bị tấn công không biêt).
• Toàn vẹn dữ liệu(Data Intergrity): Đảm bảo dữ liệu truyền đi trên đường truyền
không có sự sửa đổi, thay thế hoặc tái sử dụng.
14
14
• Tính bí mật (Privacy): khả năng đảm bảo thông tin giữa người gửi và người nhận
được bảo mật.
• Không thể phủ nhận (Nonrepudiation): khả năng đảm bảo các bên tham gia giao dịch
không phủ định các hành động giao dịch trực tuyến mà họ đã thực hiện.
• Điều khiển truy nhập (Access Control): khả năng giới hạn và điều khiển các truy
nhập hệ thống.
• Khả dụng (Availability): tăng tính khả dụng cho hệ thống
III.2.4 Giải thuật chữ ký số DSA (Digital Signature Algorithm)
III.2.4.1 Khái quát về DSA
DSA là chuẩn của chính phủ Mỹ hoặc FIPS cho các chữ ký số. Giải thuật này được đề
nghị bởi Viện các tiêu chuẩn và công nghệ quốc gia (NIST) vào tháng 8/1991 để sử dụng
trong chuẩn chữ ký số (DSS), được chỉ ra trong FIPS 186 [1], được chấp nhận năm 1993.
Một sửa đổi nhỏ được đưa ra năm 1996 trong FIPS 186-1 [2], chuẩn được mở rộng hơn năm
2000, được xem như FIPS 186-2


o Nếu α =1 , quay lại bước a
• Chọn một số nguyên ngẫu nhiên a sao cho 1 ≤ a ≤ q-1.
• Tính
mod
a
y p
α
=
.
• Khóa công khai của người dùng là (p,q, α,y); khóa bí mật là a
Chú ý : Sinh các số nguyên tố p và q cho DSA: Trong thuật toán trên ta cần sinh số nguyên
tố q trước rồi mới tìm số nguyên tố p sao cho q chia hết cho (p-1)
III.2.4.3 thuật toán tạo chữ ký số và xác minh chữ ký số
Người dùng A ký lên bản tin nhị phân có chiều dài tùy biến m. Bất kỳ người dùng B nào
đều có thể xác minh chữ ký này sử dụng khóa công khai của A.
 Thuật toán tạo chữ ký
Người dùng A cần thực hiện các bước sau:
1. Chọn ngẫu nhiên một số nguyên bí mật k, 0<k<p
2. Tính r = (α
k
mod p)mod q
3. Tính k
-1
mod q
4. Tính s = k
-1
{h(m) + a.r} mod q
5. Chữ ký của A cho m là cặp (r,s)
 Thuật toán xác minh chữ ký

thì các giao dịch quan trọng giữa những người không quen biết, không có liên hệ bằng hợp
đồng và không bao giờ gặp lại nhau thì vấn đề xác thực/ không chối bỏ trở thành một yếu tố
của tính hiệu quả và tin cậy. Một hệ thống truyền thông mở như Internet cần có một hệ
thống xác thực nhận dạng để quản lý tình huống này.
Ví dụ : A muốn gửi thông điệp cho B và mã hóa theo phương pháp khóa công khai.
Lúc này A cần phải mã hóa thông điệp bằng public key của B. Trường hợp public key bị giả
mạo thì sao? Hacker có thể tự sinh ra một cặp khóa public key/private key, sau đó đưa cho
A khóa public key này và nói đây là khóa public key của B. Nếu A dùng public key giả này
mà tưởng là của B thì dẫn đến hệ quả mọi thông tin A truyền đi đều bị hacker đọc được.
Giải pháp cho vấn đề này được đưa ra là sử dụng một bên chứng thực thứ ba để kết
hợp nhận dạng của người ký với một khóa công khai.Với mã hóa đối xứng, người ta sử
dụng phương pháp phân phối khóa để đảm bảo các bên tham gia có thể trao đổi khóa bí mật
một cách an toàn. Còn với mã hóa công khai, để xác thực nguồn gốc của khóa công khai
hay chữ ký, người ta đề xuất bên thứ 3 đó là CA – Certification Authority.
CA là cơ quan chứng nhận, đứng ra để xác nhận chữ ký điện tử hay khóa công khai là
của cá nhân hay tổ chức cụ thể và là duy nhất. Để có thể thực hiện xác thực thì các bên tham
gia truyền thông phải cung cấp cho cơ quan chứng nhận chứng cứ định danh của mình Và
khi mà A cần truyền tin cho B, A sẽ không hỏi trực tiếp khóa công khai của B từ B mà sẽ
hỏi CA, CA khi đó cung cấp cho A bảng chứng thực của B, A sẽ dùng khóa công khai của
CA để giải mã tìm được khóa công khai của B.
17
17
Một chứng nhận điện tử có thể được xem như là một “hộ chiếu” hay “chứng minh
Một số tổ chức CA điển hình tin cậy như VeriSign, Entrust, CyberTrust, v.v Một khi
public key đã được CA chứng nhận thì có thể dùng khóa đó để trao đổi dữ liệu trên mạng
với mức độ bảo mật cao.
- Cấu trúc của một chứng nhận điện tử gồm các thành phần chính như sau:
Issuer: tên của CA tạo ra chứng nhận.
Period of validity: ngày hết hạn của chứng nhận.
Subject: bao gồm những thông tin về thực thể được chứng nhận.

Chương trình sử dụng thuật toán RSA để mã hóa khóa riêng (private key) của người gửi
và bản tóm lược hash value thành một dạng khác (giá trị băm ở dạng mật mã) gọi là chữ ký
điện tử.
Kết hợp file ban đầu với chữ ký điện tử thành một thông điệp đã ký và gửi đi cho người
nhận.
Sơ đồ mô tả quá trình ký và gửi các tệp văn bản
(2). Quá trình nhận các tệp văn bản
Sau khi người nhận đăng nhập vào hệ thống và thực hiện việc nhận các tệp văn bản. Hệ
thống sẽ tách thông điệp đã ký thành ra file và chữ ký điện tử. Đến giai đoạn này sẽ có 2
quá trình kiểm tra:
1. Kiểm tra file có đúng người gửi hay không?
- Sử dụng thuật toán RSA để giải mã chữ ký điện tử bằng khóa công khai (username)
của người gửi.
- Nếu giải mã không được thì file nhận được không đúng người gửi.
- Nếu giải mã thành công thì file nhận được đúng người gửi và có được Bản tóm lược 1.
2. Kiểm tra file có bị thay đổi hay không?
- Từ file được tách ra ta sử dụng hàm băm MD5 mã hóa thành Bản tóm lược 2.
- Kiểm tra Bản tóm lược 1 và Bản tóm lược 2 có giống nhau hay không? Nếu giống
nhau thì file nhận được là vẹn toàn (không bị thay đổi hay tác động), ngược lại là file đã bị
thay đổi.
20
20
21
21
IV.2. Ví dụ sử dụng chữ ký điện tử trong email
Chúng ta hãy bắt tay vào ứng dụng cụ thể sau đây để hiễu rõ hơn về cách thức dùng
chũ ký điện tử trong một giao dịch thông thường.
Trong mô ví dụ này, chúng ta cần 2 tài khoản e-mail dạng POP3.
Tài khoản e-mail POP3 thứ nhất được xác lập cho Mike (trong ví dụ này Mike sẽ dùng để
gửi email và tài khoản thứ hai xác lập cho Amanda (Amanda sẽ dùng để nhận e-mails và

chỉ số cục bộ này không thường được sử dụng cho các giao dịch điện tử với các giao dịch
không cùng tổ chức của bạn.
Chính vì những lý do này, nên công ty Storks đã quyết định sử dụng chứng chỉ số của nhà
cung cấp Thawte (www.thawte.com), để trang bị cho Mike trong các giao dịch email dùng
chứng chỉ số cá nhân.
Và Mike có thể đăng ký cho mình một tài khoản Personal Email Certificate hoàn toàn miễn
phí tại đây. Truy cập weblink sau và tiến hành đăng ký để nhận chứng chỉ số cá nhân
/>
23
23
Lưu ý quan trọng:
Bạn phải cung cấp cho Thawte thông tin cá nhân để xác định bạn. Các thông tin này
là cần thiết và sẽ được các hệ thống CA của Thawte xử lý trong tiến trình cấp pháp chứng
chỉ số cho bạn. Đảm bảo phải đọc tất cả các thông tin về việc cung cấp chứng chỉ số trên
Website của Thawte và biết những việc gì cần thiết phải thực hiện trong suốt quá trình đăng
ký.
Bạn cần cung cấp thông tin cá nhân và trả lời 5 câu hỏi xác nhận cho chính mình.Sau
khi đã thực hiện đăng ký, bạn sẽ nhận một email từ Thawte với những hướng dẫn cụ thể
cách thức hoàn thành việc xin cấp chứng chỉ số.
Sau quy trình này, bạn sẽ nhận tiếp một email khác xác nhận chứng chỉ số cá nhân
của Thawte đã được cấp cho bạn. Chỉ cần click vào các link trên Email này và tiến hành cài
đặt chứng chỉ số. Click Yes và OK khi thông báo Certificate Installation Complete xuất
hiện .

24
24
IV.2.3. Xác nhận điện tử cho các emails
Một khi chứng chỉ số cá nhân cho email đã được cài đặt , bạn có thể dùng nó làm chữ ký số
và mã hóa các email gửi đi.
1. Mở Outlook Express dùng tài khoản email POP3 đầu tiên đã tạo ở trên. Chọn


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