Luận văn này đã trình bày chi tiết nhất có thể một số bài toán về an toàn thông
tin trong thỏa thuận và ký kết hợp đồng của thương mại điện tử. Tác giả đã làm được:
Nghiên cứu lý thuyết và thực tế để tổng hợp lại các vấn đề sau:
- Tổng quan về ATTT trong TMĐT.
- Các phương pháp bảo vệ thông tin trong thỏa thuận và ký kết hợp đồng
điện tử.
- Một số bài toán về ATTT trong thỏa thuận và ký kết hợp đồng điện tử.
Theo sự tìm hiểu của mình, đây là một trong những nghiên cứu về mã hóa
AES và chữ ký không thể phủ nhận.
Đã mã hóa và giải mã thành công cho một số hợp đồng giao dịch cụ thể,
dùng chữ ký không thể phủ nhận để chống chối bỏ hợp đồng giao dịch.
Tuy nhiên do thời gian có hạn nên tác giả chưa đưa ra được chương trình thủy
vân số để giấu thủy vân vào trong hợp đồng. Trong tương lai, nếu có cơ hội và thời
gian, tác giả sẽ cải thiện những vấn đề còn tồn tại như đã đề cập ở trên để đưa đề tài
được hoàn thiện hơn nữa.
68 trang |
Chia sẻ: yenxoi77 | Lượt xem: 739 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Luận văn Nghiên cứu một số bài toán về an toàn thông tin trong thỏa thuận và ký kết hợp đồng của thương mại điện tử, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ơng đương hay
các khóa có liên quan trở nên không khả thi.
Đối với phương pháp vi phân rút gọn, việc phân tích chủ yếu khai thác đặc
tính tập trung thành vùng của các vết vi phân trong một số phương pháp mã hóa.
Trong thuật toán AES, số lượng chu kỳ lớn hơn 6, không tồn tại phương pháp công
phá mật mã nào hiệu quả hơn phương pháp thử sai. Tính chất phức tạp của biểu
thức S-box cùng với hiệu ứng khuếch tán giúp cho thuật toán không thể bị phân tích
bằng phương pháp nội suy.
Đối với phương pháp thử sai với chiều dài khóa 256-bit tương ứng 2256 hay 1.2
x 10
77
khả năng có thể xảy ra. Thậm chí nếu sử dụng một trong những siêu máy
tính mạnh nhất hiện nay là Roadrunner 54 của IBM để xử lý thì cũng cần 3.5 x 1054
năm để kiểm tra tất cả khả năng (Roadrunner có khả năng thực hiện 1.042 triệu tỉ
phép tính / giây).
1.3.3.2. Hệ mã hóa RSA
Sơ đồ
Là hệ mã hóa sử dụng các phép tính toán trong Zn, trong đó n là tích của hai số
nguyên tố phân biệt p và q. Ta nhận thấy: (n) = (p-1).(q-1).
Mô tả thuật toán:
1. Tạo cặp khóa (bí mật, công khai) (a, b) :
Chọn bí mật nguyên tố lớn p, q và tính n = p * q, công khai n, đặt P = C = Zn
Tính bí mật (n) = (p-1).(q-1). Chọn khóa công khai b < (n) và b lànguyên tố
cùng nhau với (n).
Khóa bí mật a là phần tử nghịch đảo của b theo mod (n) ta có: a*b 1 (mod (n).
Cặp khóa (bí mật, công khai) K = (a, b)/ a, b Z(n) , a*b 1 (mod (n)).
Với Bản rõ x P và Bản mã y C, định nghĩa:
2. Mã hoá: y = ek (x) = x
b
mod n
3. Giải mã: x = dk (y) = y
a
mod n
23
Ta kiểm tra xem các phép mã hóa và giải mã có phải là nghịch đảo của nhau
không vì:
a*b 1 (mod (n)).
nên ta có: a*b t(n) +1
với một số nguyên t ≥ 1 nào đó. Giả sử x Zn
*
khi đó ta có:
(x
b
)
a
xt(n) +1(mod n)
(xt(n))x(mod n)
(1t)x(mod n)
x(mod n)
Thực hiện:
Thiết lập hệ RSA cần tuân theo các bước sau:
1. Tạo hai số nguyên tố lớn p và q.
2. Tính n = p × q và (n) = (p-1).(q-1).
3. Chọn một số ngẫu nhiên b (với điều kiện 1 < b < (n)) sao cho
UCLN(b, (n)) = 1
4. Tính a = b
-1
mod (n) dùng thuật toán Euclide mở rộng.
5. Công bố n và b trong cùng một danh bạ và dùng chúng làm khóa công khai.
Độ an toàn
1. Hệ mã hóa RSA là tất định nghĩa là với một bản rõ x và một khóa bí mật
a, thì chỉ có duy nhất một bản mã y.
2. Hệ mật RSA an toàn, khi giữ được bí mật khoá giải mã a, p, q, (n).
Thám mã dễ dàng tính được (n) = (q-1)*(p-1) nếu biết được p và q.
Thám mã sẽ tính được a theo thuật toán Euclide mở rộng nếu biết được (n)
Việc phân tích n thành tích của p và q là bài toán không dễ dàng hay nói cách khác
là bài toán “khó”.
Độ an toàn của hệ mật RSA dựa vào việc giải bài toán phân tích số nguyên
dương n thành tích của hai số nguyên tố lớn p và q.
1.4. Chữ ký số
1.4.1. Khái niệm “Chữ ký số”
Để chứng thực nguồn gốc hay hiệu lực của một tài liệu [1] trước đây người
ta dùng chữ ký “tay”, ghi vào phía dưới của mỗi tài liệu. Như vậy người ký phải
trực tiếp “ký tay“ vào tài liệu.
Ngày nay các tài liệu được số hóa, người ta cũng có nhu cầu chứng thực
nguồn gốc hay hiệu lực của các tài liệu này. Rõ ràng không thể “ký tay“ vào tài
liệu, vì chúng không được in ấn trên giấy. Tài liệu “số” (hay tài liệu “điện tử”) là
một xâu các bit (0 hay 1), xâu bít có thể rất dài (có thể hàng nghìn trang). “Chữ ký”
24
để chứng thực một xâu bít tài liệu cũng không thể là một xâu bit nhỏ đặt phía dưới
xâu bit tài liệu. Một “chữ ký” như vậy chắc chắn sẽ bị kẻ gian sao chép để đặt
dưới một tài liệu khác bất hợp pháp.
“Chữ ký số” để chứng thực một “tài liệu số” đó chính là “bản mã” của xâu bit
tài liệu.
Người ta tạo ra “chữ ký số” (chữ ký điện tử) trên “tài liệu số” giống như tạo
ra “bản mã” của tài liệu với “khóa lập mã”.
Như vậy “ký số” trên “tài liệu số” là “ký” trên từng bit tài liệu. Kẻ gian khó
thể giả mạo “chữ ký số” nếu nó không biết “khóa lập mã”.
Để kiểm tra một “chữ ký số” thuộc về một “tài liệu số”, người ta giải mã “chữ
ký số” bằng “khóa giải mã”, và so sánh với tài liệu gốc.
Ngoài ý nghĩa để chứng thực nguồn gốc hay hiệu lực của các tài liệu số hóa,
“chữ ký số” còn dùng để kiểm tra tính toàn vẹn của tài liệu gốc.
Mặt mạnh của “chữ ký số” hơn “chữ ký tay” còn là ở chỗ người ta có thể
“ký” vào tài liệu từ rất xa (trên mạng công khai). Hơn thế nữa, có thể “ký” bằng các
thiết bị cầm tay tại khắp mọi nơi miễn là kết nối được vào mạng. Đỡ tốn thời gian,
sức lực, chi phí.
“Ký số” thực hiện trên từng bit tài liệu, nên độ dài của “chữ ký số” ít nhất
cũng bằng độ dài của tài liệu. Do đó thay vì ký trên tài liệu dài, người ta thường
dùng “hàm băm” để tạo “đại diện” cho tài liệu, sau đó mới “Ký số” lên “đại
diện” này.
Sơ đồ chữ ký số:
Sơ đồ chữ ký 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 khoá 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ử.
Với mỗi khóa k K, có thuật toán ký Sig k S, Sig k : P A,
có thuật toán kiểm tra chữ ký Ver k V, Ver k : P A đúng, sai,
thoả mãn điều kiện sau với mọi x P, y A:
Đúng, nếu y = Sig k (x)
Ver k (x, y) =
Sai, nếu y Sig k (x)
25
Chú ý:
Người ta thường dùng hệ mã hóa khóa công khai để lập “Sơ đồ chữ ký số”.
Ở đây khóa bí mật a dùng làm khóa “ký”, khóa công khai b dùng làm khóa kiểm
tra “chữ ký”.
Ngược lại với việc mã hóa, dùng khóa công khai b để lập mã, dùng khóa bí
mật a để giải mã.
Phân loại “Chữ ký số”:
1. Phân loại chữ ký theo khả năng khôi phục thông điệp gốc.
- Chữ ký có thể khôi phục thông điệp gốc
- Chữ ký không thể khôi phục thông điệp gốc
2. Phân loại chữ ký theo mức an toàn:
- Chữ ký “không thể phủ nhận”
- Chữ ký “một lần”
3. Phân loại chữ ký theo ứng dụng đặc trưng:
- Chữ ký “mù” (Blind Signature).
- Chữ ký “nhóm” (Group Signature).
- Chữ ký “bội” (Multy Signature).
- Chữ ký “mù nhóm” (Blind Group Signature).
- Chữ ký “mù bội” (Blind Multy Signature).
1.4.2. Một số chữ ký số tiêu biểu
1.4.2.1. Chữ ký RSA
Sơ đồ [1]:
Chú ý:
- So sánh giữa sơ đồ chữ ký RSA và sơ đồ mã hóa RSA ta thấy có sự tương ứng.
1. Tạo cặp khóa (bí mật, công khai) (a, b) :
Chọn bí mật số nguyên tố lớn p, q, tính n = p * q, công khai n, đặt P = A = Zn
Tính bí mật (n) = (p-1).(q-1).
Chọn khóa công khai b < (n), nguyên tố cùng nhau với (n).
Khóa bí mật a là phần tử nghịch đảo của b theo mod (n): a*b 1 (mod (n).
Tập cặp khóa (bí mật, công khai) K = (a, b)/ a, b Zn , a*b 1 (mod (n)).
2. Ký số: Chữ ký trên x P là y = Sig k (x) = x
a
(mod n), y A (R1)
3. Kiểm tra chữ ký: Verk (x, y) = đúng x y
b
(mod n) (R2)
26
- Việc ký là mã hoá, việc kiểm thử lại chính là việc giải mã
- Việc “ký số” vào 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à khóa kiểm thử “chữ
ký” là công khai, ai cũng có thể kiểm thử chữ ký được.
1.4.2.2. Chữ ký không thể phủ định (Chaum - van Antwerpen)
Giới thiệu:
Sơ đồ chữ ký không thể chối bỏ được David Chaum và Hans van Antwerpen
đề xuất năm 1989. Giả sử tài liệu cùng chữ ký từ G gửi đến N. Khi N yêu cầu G
cùng kiểm thử chữ ký thì một vấn đề nảy sinh là làm sao để ngăn cản G chối bỏ một
chữ ký mà anh ta đã ký, G có thể tuyên bố rằng chữ ký đó là giả mạo?
Để giải quyết tình huống trên, cần có thêm giao thức chối bỏ, bằng giao thức
này, G có thể chứng minh một chữ ký là giả mạo. Nếu G từ chối tham gia vào giao
thức đó thì có thể xem rằng G không chứng minh được chữ ký đó là giả mạo.
Sơ đồ [6]:
Chuẩn bị các tham số:
+ Chọn số nguyên tố p sao cho bài toán logarit rời rạc trong Zp là khó giải,
đồng thời thỏa mãn điều kiện p = 2 * q + 1, q cũng là nguyên tố.
+ Chọn g ∈
là phần tử có cấp q.
+ Chọn 1 ≤ a ≤ q – 1, tính h = ga mod p.
+ G là nhóm con (theo phép nhân) cấp q sinh ra bởi g của
+ Tập hữu hạn các văn bản có thể P, tập hữu hạn các chữ ký có thể A
+ P = A = G
+ Khóa công khai được định nghĩa pk = ( p, g, h ), khóa bí mật sk = a.
27
1.5. Đại diện tài liệu và hàm băm
1.5.1. Hàm băm (Hàm tạo đại diện tài liệu)
Khái niệm Hàm băm [1]:
Hàm băm là thuật toán không dùng khóa để mã hóa (ở đây dùng thuật ngữ
“băm” thay cho “mã hóa”), nó có nhiệm vụ “lọc” (băm) tài liệu và cho kết quả là
một giá trị “băm” có kích thước cố định, còn gọi là “đại diện tài liệu” hay “đại diện
bản tin” hay “đại diện thông điệp”.
Hàm băm là hàm một chiều, nghĩa là giá trị của hàm băm là duy nhất và từ giá trị
băm này “khó có thể” suy ngƣợc lại được nội dung hay độ dài ban đầu của tài liệu gốc.
Thuật toán ký:
Dùng khóa bí mật sk ở trên để ký lên thông điệp x, chữ ký là:
y = sigsk( x ) = x
a
mod p
Giao thức kiểm thử:
Bob muốn xác thực chữ ký y trên thông điệp x được ký bởi Alice. Giao thức
được thực hiện như sau:
- Bob chọn ngẫu nhiên e1, e2∈ 𝑍𝑞
- Bob tính c = 𝑦𝑒1ℎ𝑒2 mod p và gửi cho Alice.
- Alice tính d = 𝑐𝑎
−1 𝑚𝑜𝑑 𝑞 mod p và gửi cho Bob.
- Bob chấp nhận y là chữ ký đúng trên x khi và chỉ khi d ≡ 𝑥𝑒1𝑔𝑒2 mod p
Giao thức chối bỏ chữ ký:
- Bob chọn ngẫu nhiên e1, e2 ∈ 𝑍𝑞
- Bob tính c = 𝑦𝑒1ℎ𝑒2 mod p và gửi cho Alice.
- Alice tính d = 𝑐𝑎
−1 𝑚𝑜𝑑 𝑞 mod p và gửi cho Bob.
- Bob kiểm tra d ≢ 𝑥𝑒1𝑔𝑒2 mod p
- Bob chọn ngẫu nhiên f1, f2 ∈ 𝑍𝑞
- Bob tính C = 𝑦𝑓1ℎ𝑓2 mod p và gửi cho Alice
- Alice tính D = 𝐶𝑎
−1 𝑚𝑜𝑑 𝑞 mod p và gửi cho Bob
- Bob kiểm tra D ≢ 𝑥𝑓1𝑔𝑓2 mod p
- Bob kết luận chữ ký y thực sự là giả mạo nếu:
(𝑑𝑔−𝑒2)𝑓1 ≡ (D𝑔−𝑓2)𝑒1 mod p
28
Đặc tính của Hàm băm:
Hàm băm h là hàm một chiều có các đặc tính sau:
1. Với tài liệu đầu vào (bản tin gốc) x, chỉ thu được giá trị băm duy nhất z = h(x).
2. Nếu dữ liệu trong bản tin x bị thay đổi hay bị xóa để thành bản tin x’, thì giá
trị băm h(x’) h(x).
Cho dù chỉ là một sự thay đổi nhỏ, ví dụ chỉ thay đổi 1 bit dữ liệu của bản tin
gốc x, thì giá trị băm h(x) của nó cũng vẫn thay đổi. Điều này có nghĩa là: hai thông
điệp khác nhau thì giá trị băm của chúng cũng khác nhau.
3. Nội dung của bản tin gốc “khó” thể suy ra từ giá trị hàm băm của nó.
Nghĩa là: với thông điệp x thì “dễ” tính được z = h(x), nhưng lại “khó” tính ngược
lại được x nếu chỉ biết giá trị băm h(x) (kể cả khi biết hàm băm h).
Ứng dụng của hàm băm:
1. Với bản tin dài x, thì chữ ký trên x cũng sẽ dài, như vậy tốn thời gian “ký”,
tốn bộ nhớ lưu giữ “chữ ký”, tốn thời gian truyền “chữ ký” trên mạng.
Người ta dùng hàm băm h để tạo đại diện bản tin z = h(x), nó có độ dài ngắn
(chẳng hạn 128 bit). Sau đó ký trên z, như vậy chữ ký trên z sẽ nhỏ hơn rất nhiều
so với chữ ký trên bản tin gốc x.
2. Hàm băm dùng để xác định tính toàn vẹn dữ liệu.
3. Hàm băm dùng để bảo mật một số dữ liệu đặc biệt (chẳng hạn bảo vệ mật
khẩu, bảo vệ khóa mật mã, )
1.5.2. Các Hàm băm
Các hàm băm dòng MD (MD2, MD4, MD5) do Rivest đề xuất. Giá trị băm
theo các thuật toán này có độ dài cố định là 128 bit. Hàm băm MD4 đưa ra vào
năm 1990. Một năm sau phiên bản mạnh hơn là MD5 cũng được đề xuất.
Hàm băm an toàn SHA, phức tạp hơn nhiều, cũng dựa trên các phương pháp
tương tự, được công bố trong Hồ sơ Liên bang năm 1992 và được chấp nhận làm
tiêu chuẩn vào năm 1993 do Viện Tiêu Chuẩn và Công Nghệ Quốc Gia (NIST). Giá
trị băm theo thuật toán này có độ dài cố định là 160 bit.
1.6. Thủy vân số (Digital watermarking)
Theo [1] Thuỷ vân số là một kỹ thuật mới dựa trên lý thuyết tổng hợp của nhiều
lĩnh vực khác nhau như: lý thuyết thông tin, lý thuyết truyền thông, mật mã học, xử
lý tín hiệu số, xử lý ảnh.
Mục đích của kỹ thuật này là giấu một lượng thông tin có ích vào tài liệu số cần
bảo vệ bản quyền, lượng tin này được gọi là Thuỷ vân.
29
Thuỷ vân số là một kỹ thuật dùng để bảo vệ bản quyền các tài liệu số, chống
sao chép, phân biệt giả mạo. Các tài liệu này có thể là văn bản, audio, video, phần
mềm, ảnh, bản vẽ, các hình khối 3D.
1.6.1 Phân loại Thủy vân số
Có hai loại thuỷ vân: thuỷ vân hiện (visible watermark), thuỷ vân ẩn
(invisible watermark).
Hình 1.12: Phân loại Thủy vân
Thuỷ vân hiện là loại thuỷ vân mà người ta có thể nhận biết được nó bằng mắt thường.
Nói cách khác, nó như một loại dấu nổi.
Hình 1.13: Ví dụ về thuỷ vân hiện (trên trang web của Thư viện số liên bang Mỹ)
Thuỷ vân ẩn là loại thuỷ vân mà ta không thể nhận biết được nó trong ảnh
bằng mắt thường.
30
Hình 1.14: Giấu thông tin trong ảnh
1.6.2. Các ứng dụng của Thuỷ vân với ảnh số
- Bảo vệ bản quyền:
Kỹ thuật thuỷ vân cho phép gắn một “dấu hiệu” vào tài liệu, nhờ đó có thể
xác định được người nắm giữ bản quyền. Có thể gắn thêm một dấu hiệu khác gọi là
“vân tay” để xác định người dùng sản phẩm.
“Dấu hiệu” có thể là một dãy số như mã hàng hoá, một message hoặc một
logo. Thuật ngữ “thuỷ vân” đã có từ thời xa xưa, xuất phát từ cách đánh dấu giấy tờ
với một logo.
- Xác thực ảnh và bảo toàn dữ liệu:
Thuỷ vân có thể dùng để xác thực ảnh số và phát hiện giả mạo. Thuỷ vân dùng
để xác định xem ảnh là nguyên bản hay đã chịu sự tác động của con người, bằng các
ứng dụng xử lý ảnh.
Thuỷ vân được giấu lúc đầu phải mang tính chất không bền vững, để bất kỳ sự
thay đổi nhỏ nào tới ảnh cũng có thể làm hỏng thuỷ vân, hay phát hiện được thay
đổi đối với thuỷ vân. Tuy vậy, thuỷ vân vẫn phải tồn tại với các phép biến đổi ảnh
thông thường như chuyển đổi định dạng, lấy mẫu, hay nén.
- Giấu dữ liệu và gán nhãn ảnh:
Giấu dữ liệu là “giấu” nó vào một tài liệu khác (chẳng hạn như một bức ảnh),
người khác “khó” nhận ra nó bằng mắt thường. Điều này cho phép trao đổi thông
tin mà không gây chú ý đối với người ngoài. Khối lượng dữ liệu dấu được là quan
trọng nhất đối với mục đích này.
Gán nhãn ảnh là ứng dụng để cung cấp thêm thông tin cho người dùng hoặc
nhằm phục hồi ảnh từ cơ sở dữ liệu.
31
CHƢƠNG 2. CÁC BÀI TOÁN VỀ ATTT TRONG THỎA THUẬN
VÀ KÝ KẾT HỢP ĐỒNG CỦA TMĐT
2.1. Thỏa thuận và ký kết hợp đồng của TMĐT
2.1.1. Khái niệm về giao kết hợp đồng điện tử
Giao kết hợp đồng [7] là thuật ngữ được Bộ luật dân sự Việt Nam năm 2005
sử dụng để chỉ việc ký kết hợp đồng. Do vậy, giao kết hợp đồng điện tử là quá trình
thương thảo, đàm phán, tạo lập và ký kết thông qua trao đổi các dữ liệu điện tử. Các
hợp đồng như vậy sẽ được lưu trữ ở dạng dữ liệu điện tử.
Luật Giao dịch điện tử Việt Nam năm 2005 định nghĩa: “Giao kết hợp đồng
điện tử là sử dụng thông điệp dữ liệu để thực hiện một phần hay toàn bộ giao dịch
trong quá trình giao kết hợp đồng”. Quá trình giao kết hợp đồng có thể được thực
hiện qua nhiều giao dịch, từ việc quảng cáo hàng hóa (dịch vụ), chào bán, chào mua
hàng hóa (dịch vụ) đến chấp nhận mua hay bán hàng hóa, dịch vụ đó. Khi một số
các giao dịch này hay toàn bộ các giao dịch này được thực hiện thông qua việc trao
đổi dữ liệu (như trao đổi dưới dạng điện tín, điện báo, fax, thư điện tử...) thì quá
trình đó được gọi là quá trình giao kết hợp đồng điện tử.
Trên thực tế việc giao kết hợp đồng điện tử có thể đơn giản là việc người tiêu
dùng thực hiện một giao dịch nhỏ, đơn giản thông qua các phương tiện điện tử như
đặt mua vé máy bay, vé tàu qua điện thoại hoặc Internet; đặt mua sách, mua hàng
hóa tiêu dùng thông qua chào hàng hoặc đặt hàng thông qua website bán hàng của
doanh nghiệp kinh doanh hàng hóa trên mạng, thanh toán thông qua thẻ ngân hàng.
Hợp đồng điện tử cũng có thể được giao kết giữa hai hay nhiều công ty để thực
hiện giao dịch, trao đổi nhằm bán hoặc mua hàng hóa, dịch vụ nhằm mục đích
thương mại. Quá trình giao kết này có thể dẫn đến giá trị một hợp đồng lớn và tính
chất phức tạp, trong thực tiễn TMĐT phương thức này được gọi là B2B
(BUSINESS TO BUSINESS).
2.1.2. Chủ thể của hợp đồng điện tử
Chủ thể tham gia giao kết hợp đồng điện tử gồm các bên - người bán và người
mua hàng hoá (hoặc cung ứng dịch vụ) qua mạng. Để hợp đồng có hiệu lực, chủ thể
phải có năng lực hành vi, năng lực pháp lý. Tuy nhiên, việc xác định năng lực chủ
thể của các chủ thể trong giao kết hợp đồng điện tử sẽ trở nên khó khăn hơn rất
nhiều so với trong hợp đồng truyền thống. Những khó khăn đó là:
- Người bán trên mạng chắc chắn không muốn và không thể bán hàng hoá và
dịch vụ cho mọi đối tượng vào mạng Internet. Họ bị ràng buộc và chi phối bởi các quy
định pháp lý của nước mình cũng như nước ngoài tham gia giao kết với họ. Chẳng hạn
32
lệnh cấm vận của Mỹ với Iran, Libya, Cuba sẽ làm vô hiệu hoá các hợp đồng điện tử
được giao kết giữa các cá nhân và tổ chức của các nước này với nhau. Hoặc theo quy
định của pháp luật mỗi nước, một mặt hàng hoá hay dịch vụ đối với nước này là hợp
pháp nhưng ở nước khác lại bị cấm lưu thông cũng làm cho hợp đồng điện tử được
giao kết để mua hàng hay dịch vụ không thực hiện được dù đã giao kết. Vì vậy, chỉ
một sơ suất nhỏ trong việc xác định năng lực của các chủ thể sẽ có thể dẫn đến hợp
đồng điện tử vô hiệu và gây ra nhiều tổn thất thiệt hại cho người bán.
- Khó khăn nhất trong việc xác định năng lực chủ thể đối với các doanh
nghiệp cung cấp hàng hoá (dịch vụ) qua mạng là khó xác định được xem liệu khách
hàng có đủ năng lực hành vi hay chưa? Vấn đề rắc rối phát sinh khi khách hàng ở
tuổi vị thành niên. Cụ thể:
Một là, theo quy định của pháp luật ở một số nước, có một số loại hàng hoá
cấm bán cho đối tượng là vị thành niên như thuốc lá, rượu, sách báo khiêu dâm
v.v.. .Theo pháp luật của những nước này, người bán trong trường hợp này có thể bị
buộc vào tội hình sự hoặc phải chịu trách nhiệm dân sự nếu không biết chắc khách
hàng của mình đã đủ tuổi hành vi hay chưa? Rất khó xác định được điều này khi
mua hàng qua mạng.
Hai là, các hợp đồng giao kết với tuổi vị thành niên mà không nhằm phục vụ
nhu cầu sinh hoạt thiết yếu của chúng cũng sẽ bị vô hiệu. Vấn đề là hợp đồng sẽ bị
vô hiệu với vị thành niên nhưng vị thành niên sẽ được miễn trách nhiệm và sẽ gây
ra nhiều hậu quả pháp lý cho người bán.
- Sự xuất hiện của người thứ ba trong giao kết hợp đồng điện tử. Có thể thấy vai
trò của người thứ ba trong việc giao kết hợp đồng điện tử, vai trò của bên thứ ba là nhà
cung cấp dịch vụ mạng, các cơ quan chứng thực là rất quan trọng vì họ có thể đảm bảo
giá trị pháp lý và tính hiệu lực của hợp đồng điện tử. Họ chính là người truyền, lưu các
thông điệp số, các thông tin điện tử, cung cấp chứng thực xác nhận độ tin cậy, độ chính
xác của các thông điệp số và thông tin điện tử đó. Vì vậy, để các hoạt động TMĐT
phát huy hết vai trò của nó một cách có hiệu quả thì pháp luật về TMĐT cần phải có
các quy định về trách nhiệm và giới hạn trách nhiệm của các nhà cung cấp dịch vụ
mạng với các thông tin mà họ gửi, nhận và lưu trữ trong máy chủ. Đồng thời cũng cần
phải ban hành các quy định pháp lý cụ thể điều chỉnh hoạt động của các cơ quan chứng
thực trên mạng. Những quy định này chính là cơ sở pháp lý hướng dẫn việc giao kết
hợp đồng điện tử mà các chủ thể giao kết hợp đồng điện tử, đặc biệt là các doanh
nghiệp kinh doanh trên mạng phải nghiên cứu để tuân thủ trước khi thực hiện giao kết
hợp đồng điện tử nói chung và giao kết hợp đồng thương mại điện tử nói riêng, nếu họ
muốn thành công trong lĩnh vực kinh doanh đặc biệt này.
33
Tóm lại, việc xác định năng lực của chủ thể trong giao kết hợp đồng điện tử là
vô cùng quan trọng, với tính đặc thù của loại hình kinh doanh này mang tính phi
biên giới nên nó mang trong mình những rủi ro pháp lý về chủ thể giao kết hợp
đồng mà những nhà kinh doanh cần hết sức cẩn trọng trong việc giao kết hợp đồng
điện tử. Chỉ cần một chút thiếu cẩn trọng trong việc xác định năng lực của chủ thể
giao kết hợp đồng điện tử có thể đem lại cho những nhà cung cấp hàng hoá (dịch
vụ) những tổn thất và hậu quả pháp lý nghiêm trọng.
2.1.3. Hình thức hợp đồng điện tử
Hợp đồng điện tử được thiết lập dưới dạng thông điệp dữ liệu, hay nói cách
khác là hợp đồng điện tử không sử dụng các hình thức hợp đồng truyền thống như
hợp đồng bằng lời nói, bằng hành vi hay bằng văn bản. Hợp đồng điện tử có thể là
hợp đồng được thảo và gửi qua thư điện tử hoặc là hợp đồng nhấn nút đồng ý qua
các trang web bán hàng, theo đó khi người mua nhấn vào nút “tôi đồng ý” trên
trang web bán hàng (có chứa các điều kiện mua bán trước khi giao dịch hoàn thành)
thì hợp đồng được coi là giao kết và các bên phải thực hiện các cam kết của mình.
Một trong những vấn đề khó khăn của hợp đồng điện tử là các thoả thuận như
vậy thường được thực hiện trong môi trường hoàn toàn trực tuyến. Một môi trường
như vậy liệu có mang tính ràng buộc pháp lý hay không?
2.1.4. Nội dung hợp đồng điện tử
Nội dung của một hợp đồng điện tử bao gồm các điều khoản thoả thuận giữa
các chủ thể. Đối với hợp đồng điện tử, các điều khoản này mang tính kỹ thuật điện
tử rất cao và thường do người bán (hoặc người cung ứng dịch vụ) làm sẵn và hiển
thị trên web của mình.
Vì vậy, khi nói đến nội dung của hợp đồng điện tử, khác với hợp đồng truyền
thống - hợp đồng mà khi đàm phán để tiến tới giao kết, các bên thường chỉ chú ý
đến các điều khoản chủ yếu làm thành nội dung của hợp đồng như đối tượng của
hợp đồng, giá cả, điều kiện thanh toán, điều kiện cơ sở giao hàng v.v...Ở hợp đồng
điện tử, các bên giao kết hợp đồng bắt buộc và trước hết phải chú ý đến những quy
định có tính kỹ thuật của công nghệ tin học. Đó là cách hiển thị nội dung của hợp
đồng điện tử. Nếu không thao tác tốt, chính xác quy trình kỹ thuật này thì việc giao
kết hợp đồng điện tử về mặt nội dung cũng không thể đạt được. Vì vậy, khía cạnh
pháp lý của quy trình giao kết liên quan đến nội dung của hợp đồng điện tử. Từ đó,
có thể khẳng định, các yêu cầu về mặt kỹ thuật của cách hiển thị nội dung của hợp
đồng điện tử cũng chính là cơ sở pháp lý mà các bên phải tuân thủ khi giao kết hợp
đồng điện tử, đặc biệt là hợp đồng TMĐT.
34
2.2. Các bài toán về ATTT trong thỏa thuận và ký kết hợp đồng của TMĐT
Theo [2] thỏa thuận hợp đồng thương mại gồm có hai giai đoạn chính là đàm
phán và ký kết hợp đồng. Đàm phán là việc thực hiện một hay nhiều cuộc đối thoại,
trao đổi, thương lượng giữa các bên có ý muốn quan hệ đối tác với nhau nhằm tiến
đến một thoả thuận chung mà có thể đáp ứng yêu cầu cá nhân hoặc yêu cầu hợp tác
kinh doanh của các bên đàm phán.
Ký kết hợp đồng làm cho bản hợp đồng có hiệu lực chính là việc ký xác nhận
các nội dung đã đàm phán thỏa thuận ở trên.
Nhờ Internet mà việc thỏa thuận hợp đồng giữa doanh nghiệp với doanh
nghiệp giảm được nhiều thời gian trao đổi giữa đối tác cũng như các khách hàng
của họ. Việc tuân theo Luật thương mại được yêu cầu trong các vấn đề đàm phán,
thỏa thuận, ký kết hợp đồng, điều này cũng giống như việc thỏa thuận hợp đồng
của thương mại truyền thống.
Ngoài ra những vấn đề nảy sinh trong thỏa thuận hợp đồng trực tuyến còn có
an toàn thông tin trong giao dịch như: đảm bảo bí mật, toàn vẹn thông tin thỏa thuận
ký kết hợp đồng, xác minh nguồn gốc giao dịch, chống chối bỏ giao dịch.
Hình 2.1: Mô hình giải quyết bài toán
Các bƣớc giải quyết bài toán nhƣ sau:
- Bên A Thủy vân số vào nội dung hợp đồng (chẳng hạn có thể Thủy vân vào
từng dấu cách trong bản hợp đồng mỗi dấu cách chỉ giấu được 1 bit). Cụ thể:
Muốn giấu chữ P H E O vào các dấu cách trong bản hợp đồng thì trong mã nhị
phân các chữ này sẽ tương ứng với mã sau:
01010000 P
01001000 H
01000101 E
01001111 O
Hợp đồng
Thủy vân
số, Mã
hóa AES,
Chữ ký
không
thể phủ
định
Đảm bảo tính toàn vẹn
thông tin hợp đồng trực
tuyến
Đảm bảo tính xác thực
Chống chối bỏ hợp đồng
giao dịch
Đàm phán
35
- Bên A sẽ sử dụng hệ mã hóa AES để mã hóa hợp đồng và chuyển cho bên B.
- Bên B giải mã hợp đồng (AES) và kiểm tra xem có phải là hợp đồng của bên
A gửi không? (Kiểm tra bằng tách Thủy vân).
- Nếu bên B thấy hợp đồng hợp lý thì hai bên thỏa thuận ký kết.
- Ký hợp đồng bằng chữ ký không thể phủ định để chống chối bỏ hợp đồng
giao dịch.
2.2.1. Bảo đảm tính toàn vẹn thông tin hợp đồng trực tuyến
Bài toán:
Trong thỏa thuận hợp đồng trực tuyến giữa A và B về cung cấp hay đặt mua
một loại mặt hàng hay dịch vụ nào đó, giả sử rằng A là người soạn hợp đồng và gửi
đến B xem xét và thỏa thuận hợp đồng, sau khi kiểm tra nội dung nếu B đồng ý với
các điều khoản của hợp đồng thì B sẽ ký lên hợp đồng đó. Vấn đề đặt ra là liệu có
một kẻ thứ ba trái phép nào đó đã xem trộm và sửa bản hợp đồng đó, nội dung bản
hợp đồng mà B nhận được liệu có đúng với nội dung mà A đã soạn thảo hay không?
Khi B nhận được hợp đồng từ A, giả sử bản hợp đồng không bị sửa đổi trên
đường truyền, B đồng ý với các điều khoản trong bản hợp đồng và ký chấp nhận hợp
đồng, hay nếu B không đồng ý với tất cả các điều khoản trong hợp đồng thì B bổ sung
một số điều khoản để thỏa thuận lại và gửi lại cho A. Trong quá trình bản hợp đồng đã
được B gửi về A, liệu bản hợp đồng đó có đúng như bản hợp đồng mà B đã gửi hay đã
bị sửa đổi, bị xâm phạm tính toàn vẹn thông tin của bản hợp đồng này.
Giải pháp:
Do vậy, để chống lại sự tấn công hay giả mạo thì cần phải làm thế nào cho văn
bản khi được gửi đi sẽ “không được nhìn thấy” hoặc có xâm nhập được vào văn bản
thì cũng không thể giả mạo. Xuất phát từ nhu cầu đó công nghệ mã hóa và chữ ký
số ra đời để giải quyết bài toán bảo mật khi trao đổi thông tin.
Để đảm bảo tính toàn vẹn của bản hợp đồng trực tuyến trong khi chúng được
truyền đi trên mạng trước hết ta cần một kênh truyền an toàn, với các phương pháp
đảm bảo tính toàn vẹn trong giao dịch nói chung, một kỹ thuật đặc trưng quan trọng
để đảm bảo tính toàn vẹn hợp đồng giao dịch là dùng chữ ký số và chứng chỉ điện tử.
Khi nội dung của bản hợp đồng bị thay đổi, thì chữ ký trên bản hợp đồng đó
cũng phải thay đổi theo. Chữ ký điện tử nhằm đảm bảo tính toàn vẹn, duy nhất và
không bị sửa đổi dữ liệu gốc bởi người khác. Chữ ký là bằng chứng xác thực người
gửi chính là tác giả của thông điệp mà không phải là một ai khác. Không những thế,
khi chữ ký điện tử được gắn với thông điệp điện tử thì đảm bảo rằng thông tin trên
36
đường chuyển đi sẽ không bị thay đổi. Mọi sự thay đổi dù nhỏ nhất sẽ đều bị phát
hiện dễ dàng.
Cụ thể, để đảm bảo tính toàn vẹn thông tin hợp đồng trực tuyến thì tác giả đã
sử dụng hệ mã hóa AES như sau:
Input (Đầu vào), Output (Đầu ra) của hệ mã hóa AES:
Đầu vào và đầu ra của chuẩn mã hóa tiên tiến (AES) đều là các dãy 128 bit,
còn gọi là các khối (block), độ dài của mỗi khối này là số bit dữ liệu mà nó chứa.
Khóa của chuẩn mã hóa tiên tiến là một dãy có độ dài 128, 192 hoặc 256 bit. Chuẩn
mã hóa dữ liệu tiên tiến không làm việc với các giá trị đầu vào, đầu ra, khóa có các
đô ̣dài khác (mặc dù thuật toán cơ sở của nó cho phép điều này). Các bit của đầu
vào, đầu ra, khóa của hê ̣mã được đánh số từ 0.
Trạng thái (State):
Các trạng thái bên trong của AES được thực hiện trên một mảng hai chiều và
các byte được gọi là trạng thái. Một trạng thái gồm có 4 hàng các byte trong đó mỗi
hàng có Nb byte (Nb là kích thước của khối chia cho 32). Mảng trạng thái ký hiệu
là s trong đó mỗi byte của mảng có hai chỉ số là hàng r và cột c (0<=r, c<=4).
Tại thời điểm bắt đầu input của thuật toán – mảng byte in0, in1,...in15 được
copy vào mảng trạng thái theo quy tắc được minh họa bằng hình vẽ.
Bảng 3: Các trạng thái của AES
Trong đó các giá trị của mảng s và mảng output được tính như sau:
s[r,c]=in[r+4c] với mọi 0<=r, c<4
out[r+4c]=s[c,r] với mọi 0<=r, c<4
Biểu diễn trạng thái
Bốn cột của mảng trạng thái của thuật toán tạo thành 4 word 32 bit w0,
w1,...w3 được biểu diễn như sau:
w0 = s0,0 s1,0 s2,0 s3,0 w1 = s0,1 s1,1 s2,1 s3,1
w2 = s0,2 s1,2 s2,2 s3,2 w3 = s0,3 s1,3 s2,3 s3,3
37
Mã hóa và Giải mã AES:
Độ dài của input, output và các trạng thái (state) của chuẩn mã hóa cao cấp
AES là 128 bit tương ứng vớ i giá tri ̣của Nb = 4 (là số lượng các word 32-bit và
cũng là số cột của mỗi trạng thái). Khóa của AES có độ dài là 128, 192, 256 bit
tương ứng với các giá trị của Nk là 4, 6, 8 và cũng là số cột của khóa mã hóa.
Tương ứng với độ dài của khóa sử dụng số vòng lặp của thuật toán Nr nhận
các giá trị 10 (Nk = 4), 12 (Nk = 6) hoăc ̣14 (Nk = 8). Chúng ta có thể minh họa qua
bảng sau:
Độ dài khóa
(Nk từ)
Độ dài khối
(Nb từ)
Số vòng
(Nr)
AES-128 4 4 10
AES-196 6 4 12
AES-256 8 4 14
Bảng 4: Độ dài khóa AES
Quá trình mã hóa và giải mã AES đều sử dụng một hàm lặp kết hợp của bốn
hàm biến đổi sau:
- Biến đổi thay thế byte sử dụng một bảng thế (S-box)
- Số lần dịch của mỗi hàng dịch mảng trạng thái với là khác nhau
- Kết hợp dữ liệu của mỗi cột trong mảng trạng thái và cộng một khóa Round
Key vào trạng thái z.
1. Thuật toán mã hóa AES
Thuật toán mã hóa AES [5] được thực hiện các công việc giống nhau dựa trên
4 hàm (lần lượt theo thứ tự SubBytes(), ShiftRows(), MixColumns(),
AddRoundKey() trừ vòng cuối cùng bỏ qua việc thực hiện hàm MixColumns().
38
Hình 2.2: Sơ đồ thuật toán AES
Hàm SubByte():
Hàm SubBytes() sử dụng một bảng thế S-box để thực hiện phép thay thế các
byte của mảng trạng thái, bảng thay thế S-box này là khả nghịch, được xây dựng
bằng cách kết hợp hai biến đổi:
a. Nhân nghịch đảo trên trường hữu hạn GF(28), phần tử {00} được ánh xạ
thành chính nó.
b. Áp dụng biến đổi Affine sau (trên GF(2)):
39
bi’= bi b(i+4)mod8 b(i+5)mod8 b(i+6)mod8 b(i+7)mod8 ci, trong đó 0i8 là bit thứ i
của byte b tương ứng và ci là bit thứ I của byte c với giá trị {63} hay {01100011} Các
phần tử biến đổi affine của S-box có thể được biểu diễn dưới dạng ma trận như sau:
Hình 2.3: Các phần tử biến đổi của S-box dưới dạng ma trận
Hình dưới đây minh họa kết quả của việc áp dụng hàm biến đổi SubBytes()
đối với mảng trạng thái
Hình 2.4: Kết quả biến đổi của hàm SubBytes() với mảng trạng thái
Trong đó phép cộng thực hiện như phép XOR. Hình dưới trình bày nội dung
bảng S-box sau khi tính toán.
40
Hình 2.5: Nội dung bảng S-box sau khi tính toán
Ví dụ: xét giá trị {95}, tại bước 1, giá trị tại dòng 9 cột 5 là {95}, sau bước 2
tính nghịch đảo giá trị của ô này là {8A} có dạng nhị phân là 10001010. Thực hiện
phép nhân ma trận:
Hình 2.6: Kết quả tính toán
Kết quả dưới dạng thập lục phân là {2A}.
Hàm ShiftRows():
Các byte trong ba hàng cuối của mảng trạng thái sẽ được dịch vòng với số lần
dịch khác nhau. Hàng đầu tiên r=0 không bị dịch. Cụ thể hàm này sẽ tiến hành
bước đổi sau:
S’rc = Sr,(c+shift(r,Nb))modNb (Nb=4) trong đó giá trị dịch shift(r,Nb) phụ thuộc vào
số hàng r như sau:
shift(1,4)=1, shift(2,4)=2, shift(3,4)=3
41
Thao tác này sẽ chuyển các byte tới các vị trí thấp hơn trong các hàng và các
byte thấp nhất sẽ được chuyển lên đầu hàng. Tất cả các mô tả trên có thể minh họa
qua hình vẽ sau:
Hình 2.7: Minh họa sự dịch vòng
Hàm MixColumns():
Hàm này làm việc trên các cột của mảng trạng thái, nó coi mỗi cột của mảng
trạng thái như là một đa thức gồm 4 hạng tử. Các cột sẽ được xem như là các đa
thức trên GF(28) và được nhân trên modulo x4+1 với một đa thức cố định a(x):
a(x) = {03}x
3
+ {02}x
2
+ {01}x + {02}
Có thể biểu diễn bằng phép nhân ma trận:
s’(x) = a(x) s(x)= =
Với mọi 0≤c<Nb = 4
Kết quả là bốn byte trong mỗi cột sẽ được thay thế theo công thức sau:
s’0,c = ({02}●s0,c)({03}●s1,c) s2,c s3,c
s’1,c = s0,c({02}●s1,c) ({03}●s2,c) s3,c
s’2,c = s0,cs1,c ({02}●s2,c) ({03}●s3,c)
s’3,c = ({03}●s0,c)s1,c s2,c ({02}●s3,c)
42
Có thể minh họa việc thực hiện hàm này bằng hình vẽ sau:
Hình 2.8: Minh họa làm việc trên cột trạng thái
Hàm AddRoundKey():
Hàm này một khóa vòng (Round Key) sẽ được cộng vào mảng trạng thái bằng
một thao tác XOR bit. Mỗi khóa vòng gồm Nb word được sinh ra bởi thủ tục sinh
khóa. Các word này sẽ được cộng vào mỗi cột của mảng trạng thái như sau:
[s’0,c, s’1,c, s’2,c, s’3,c] = [s0,c, s1,c, s2,c, s3,c round*Nb+c] 0≤c≤Nb = 4
Trong đó [wi] là các word của khóa và round là lần lặp tương ứng với quy ước
0≤round≤Nb. Trong thuật toán mã hóa phép cộng khóa vòng khởi tạo xảy ra với
round=0 trước khi các vòng lặp của thuật toán được thực hiện. Hàm
AddRoundKey() được thực hiện trong thuật toán mã hóa khi 1≤round≤Nb.
Việc thực hiện hàm này có thể được minh họa như trong hình vẽ, trong đó
l=round*Nb.
Địa chỉ byte trong các word của dãy khóa được mô tả như sau:
Hình 2.9: Thực hiện hàm AddRoundKey()
43
Thuật toán sinh khóa (Key Expansion):
Thuâṭ toán sinh khóa của AES nhận một khóa mã hóa K sau đó thực hiện một
thủ tục sinh khóa để sinh một dãy các khóa cho việc mã hóa. Thủ tục này sẽ sinh
tổng số Nb*(Nr+1) word, thủ tục sử dụng một tập khởi tạo Nb word và mỗi một lần
lặp trong số Nr lần sẽ cần tới Nb word của dữ liệu khóa. Dãy khóa kết quả là một
mảng tuyến tính các word 4-byte được ký hiệu là [wi] trong đó 0<= i < Nb(Nr + 1).
Hình 2.10: Quá trình thực hiện Expand Key
2. Thuật toán giải mã AES
Thuật toán giải mã [5] về mặt cấu trúc cũng khá giống với thuật toán mã hóa
tuy nhiên bốn hàm cơ bản sử dụng là các hàm ngược của các hàm trong thuật toán
giải mã bao gồm: InvShiftRows(), InvSubBytes(), InvMixColumns() và
AddRoundKey().
Hàm InvSubBytes():
Hàm này là hàm ngược của hàm SubBytes(), hàm sử dụng nghịch đảo của
biến đổi Affine bằng cách thực hiện nhân nghịch đảo trên GF(28)
Hàm InvShiftRows():
Hàm này là hàm ngược của hàm ShiftRows(). Các byte của ba hàng cuối (của
mảng trạng thái) sẽ được dịch vòng với vị trí dịch là khác nhau. Hàng đầu tiên
không bị dịch, ba hàng cuối bị dịch đi Nb-shift(r,Nb) byte trong đó giá trị
shift(r,Nb) phụ thuộc vào số hàng
Cụ thể hàm này tiến hành xử lý như sau:
s’r,(c+shift(r,Nb))modNb = sr,c 0<r<4, 0≤c<Nb (Nb=4)
44
Hình 2.11: Minh họa thực hiện hàm InvShiftRows()
Hàm InvMixColumns():
Hàm này là hàm ngược của hàm MixColumns(). Nó làm việc trên các cột của mảng
trạng thái, coi mỗi cột như một đa thức bốn hạng tử. Các cột được xem như là các đa
thức trên GF(28) và được nhân theo modulo x4+1 với một đa thức cố định là a-1(x)
a
-1
(x) = {0b}x
3
+ {0d}x
2
+ {09}x + {0e}
Có thể được mô tả bằng phép nhân ma trận sau:
s’(x) = a-1(x) s(x) = =
trong đó 0≤c<Nb
Kết quả là bốn byte trong mỗi cột sẽ được thay thế theo công thức sau:
s’0,c = ({0e}●s0,c)({0b}●s1,c) ({0d}●s2,c) ({09}●s3,c)
s’1,c = ({09}●s0,c)({0e}●s1,c) ({0b}●s2,c) ({0d}●s3,c)
s’2,c = ({0d}●s0,c)({09}●s1,c) ({0e}●s2,c) ({0b}●s3,c)
s’3,c = ({0b}●s0,c)({0d}●s1,c) ({09}●s2,c) ({0e}●s3,c)
45
Biến đổi nghịch AddRoundKey():
Hàm nghịch của hàm AddRoundKey() cũng chính là nó vì hàm này chỉ có
phép toán XOR bit.
2.2.2. Bảo đảm tính xác thực
Bài toán:
Xác thực là một thủ tục nhằm kiểm tra các thông báo nhận được, xem chúng
có đến từ một nguồn hợp lệ và có bị sửa đổi hay không? Xác thực thông báo cũng
có thể kiểm tra tính trình tự và tính đúng lúc. Chữ ký số là một kỹ thuật xác thực.
Nó cũng bao gồm nhiều biện pháp để chống lại việc chối bỏ đã gửi hay đã nhận
thông báo của hai bên gửi và bên nhận.
Khi nhận được đơn đặt hàng, hay giao dịch nào đó, chủ doanh nghiệp phải biết
rõ thông tin đó có phải đã đến từ một nguồn tin cậy hay không? Khách hàng cũng
như doanh nghiệp cần phải biết chính xác rằng họ đang giao dịch với ai, và đối tác
giao dịch của họ có đáng tin cậy không, có an toàn không?
Đôi khi khách hàng, hay các nhà giao dịch không biết được mình đang giao
dịch với ai. Rất nhiều công ty ma, hay các địa chỉ ảo, các website giả mạo website
của doanh nghiệp để lừa gạt khách hàng, gây thiệt hại không nhỏ cho khách hàng
giao dịch, hay các doanh nghiệp tham gia TMĐT
Xác thực thông báo sẽ bảo vệ hai thành viên (trao đổi thông báo qua thành viên
thứ ba). Tuy nhiên hai thành viên không bảo vệ lẫn nhau. Giả thiết, John gửi một thông
báo đã xác thực cho Mary. Có thể xảy ra tranh chấp giữa hai thành viên như sau:
Mary có thể làm giả một thông báo khác và tuyên bố rằng thông báo này có nguồn
gốc từ John. Mary có thể tạo một thông báo và gắn mã xác thực bằng khóa chung của họ.
John có thể chối bỏ đã gửi thông báo. Vì Mary có thể làm giả thông báo và vì
vậy không có cách nào để chứng minh John đã gửi thông báo.
Giải pháp:
Các tranh chấp xảy ra giữa người gửi và người nhận không có sự tin cậy tuyệt
đối. Có nhiều giải pháp cho vấn đề xác thực như hàm băm, chứng chỉ điện tử, chữ
ký số, thủy vân số. Giải pháp thường dùng là chữ ký số. Chữ ký số, tương tự như
chữ ký bằng tay, nó phải có một số tính chất sau:
- Có khả năng xác thực tác giả và thời gian ký.
- Có khả năng xác thực nội dung tại thời điểm ký.
- Các thành viên thứ ba có thể kiểm tra để giải quyết tranh chấp.
46
Vì chức năng ký số bao hàm cả chức năng xác thực, dựa vào các tính chất cơ
bản này ta đưa ra một số yêu cầu sau cho chữ ký số:
- Chữ ký số phải là một mẫu bít phụ thuộc vào thông báo được ký.
- Chữ ký phải dùng thông tin duy nhất nào đó từ người gửi, nhằm ngăn chặn
tình trạng giả mạo và chối bỏ.
- Tạo ra chữ ký số dễ dàng.
- Dễ nhận ra và dễ kiểm tra chữ ký.
- Khó làm giả chữ ký số bằng cách tạo ra một thông báo mới cho một chữ ký
số hiện có, hoặc tạo ra một chữ ký giả cho một thông báo có trước.
- Trong thực tế, cần phải lưu giữ bản sao của chữ ký số.
Để bảo đảm tính xác thực thông tin hợp đồng trực tuyến, tác giả sử dụng Thủy
vân số như sau:
1. Quy trình nhúng Thủy vân
Hình 2.12: Quy trình nhúng Thủy vân
Phương tiện
chứa
(Image, Audio,
Video, Text)
Phương tiện
chứa đã được
thủy vân
Khóa
Thông tin
xác nhận
Bộ nhúng
Thông tin
Phân phối
47
2. Xác thực Thủy vân
Hình 2.13: Xác thực Thủy vân
2.2.3. Chống chối bỏ hợp đồng giao dịch
Bài toán:
Với hợp đồng thông thường, đối tác hai bên biết mặt nhau, cùng nhau trực tiếp
ký kết hợp đồng với sự chứng kiến của nhiều người với luật giao dịch rõ ràng minh
bạch. Giao kết hợp đồng TMĐT được thực hiện trong môi trường Internet , các
bên tham gia ký kết hợp đồng xa nhau về địa lý, thậm chí họ có thể không biết mặt
nhau, thì vấn đề chối bỏ hợp đồng có thể xảy ra rất cao, mặt khác, luật pháp cho
TMĐT chưa đủ, gây ra thiệt hại lớn cho các bên tham gia ký kết hợp đồng.
Ví dụ ông A muốn đặt mua một mặt hàng của công ty X ở nước ngoài. Sau khi
thỏa thuận ký kết hợp đồng, Công ty X chuyển hàng đến ông A (kèm theo đó là chi
phí vận chuyển, thuế hải quan), khi sản phẩm đến, ông A thay đổi ý kiến, không
muốn mua sản phẩm này nữa, và ông A đã chối bỏ những gì mình đã thỏa thuận
(không có bên thứ 3 thực nào xác nhận cuộc thỏa thuận hợp đồng mua hàng giữa
ông A và công ty X) Việc này gây thiệt hại cho công ty X.
Trường hợp công ty X mang hàng đến cho ông A, nhưng mặt hàng không
đúng như trong thỏa thuận, mà công ty X cứ một mực khẳng định rằng ông A đã đặt
mua sản phẩm này. Điều này gây thiệt hại cho ông A.
Phương tiện chứa
(Image, Audio,
Video, Text)
Phương tiện
cần xác thực
Khóa
Thủy vân
Bộ giải tin
Kiểm định
48
Như vậy, chối bỏ thỏa thuận hợp đồng gây thiệt hại cho các đối tượng tham
gia TMĐT. Chống chối bỏ giao dịch là bài toán quan trọng trong quá trình thỏa
thuận hợp đồng trong TMĐT.
Giải pháp:
Để chống chối bỏ hợp đồng giao dịch TMĐT trước hết cần có một hành lang
pháp lý cho giao dịch TMĐT. Về mặt kỹ thuật, giải pháp thông dụng để đảm bảo
chống chối bỏ thỏa thuận hợp đồng TMĐT, đó là chữ ký số và chứng thực điện tử.
Ví dụ chữ ký không thể phủ nhận được, đó là chữ ký có thể chứng minh xác thực
rằng anh A có tham gia vào một giao dịch điện tử nào hay không, chữ ký trên văn
bản giao dịch có đúng đích thực của anh A hay không, nếu đó là chữ ký của A mà A
chối bỏ, sẽ có giao thức chứng minh, buộc A không được chối bỏ giao dịch hợp
đồng đã thỏa thuận.
Để chống chối bỏ hợp đồng giao dịch thì tác giả sử dụng chữ ký không thể
phủ định. Cụ thể, sơ đồ chữ ký không phủ định được gồm 3 phần: một thuật toán
ký, một giao thức kiểm thử và một giao thức chối bỏ.
Hình 2.14: Kiểm tra tính đúng đắn của chữ ký
Ký tài liệu và gửi
G
N
Kiểm tra tra tính
đúng đắn của chữ
ký
A
B
Chữ ký số không thể phủ nhận
49
Hình 2.15: Giao thức kiểm thử chữ ký số
Hình 2.16: Giao thức chối bỏ chữ ký số.
Ký tài liệu và gửi
N yêu cầu G tham gia kiểm thử chữ ký
Kiểm thử chữ ký số
N đã copy chữ ký
của G gửi cho A
G
N
A
Ký tài liệu và gửi
N yêu cầu G tham gia kiểm thử chữ ký
Kiểm thử chữ ký số
G từ chối tham gia
kiểm thử chữ ký
G chối bỏ chữ ký
mà anh ta đã ký
G có thể tuyên bố
chữ ký đó là giả
mạo
Chữ ký đó là
giả mạo
Cần có thêm giao thứ
chối bỏ
G N
50
CHƢƠNG 3. THỰC NGHIỆM CHƢƠNG TRÌNH
3.1. Giới thiệu chƣơng trình
Trong chương này tác giả sẽ thực hiện một số bước trong quá trình thỏa thuận
và ký kết hợp đồng của TMĐT bao gồm mã hóa và ký số hợp đồng để đảm bảo toàn
vẹn thông tin và chống chối bỏ hợp đồng giao dịch.
3.1.1. Chƣơng trình mã hóa AES
Đây là chương trình Mã hóa theo Hệ mã hóa tiêu chuẩn tiên tiến-Advanced
Encyption standard (AES) được viết bằng ngôn ngữ C#.
Chức năng:
- Chương trình có thể mã hóa, giải mã text gồm chữ và số, chữ có dấu
- Chương trình có thể mã hóa, giải mã file gồm chữ, số, chữ có dấu.
3.1.2. Chƣơng trình ký không thể phủ định
Đây là chương trình Chữ ký số không thể phủ định theo sơ đồ chữ ký Chaum-
Van Antwerpen được viết bằng ngôn ngữ C#.
Chức năng:
- Thực hiện được thuật toán ký.
- Thực hiện được giao thức kiểm thử
- Thực hiện được giao thức chối bỏ.
3.2. Cấu hình hệ thống
- Hệ điều hành: Windows XP/2007/2010.
- Ngôn ngữ: C# (có sử dụng bộ công cụ Visual Studio 2010)
- Yêu cầu môi trường: Cài đặt môi trường . Net FrameWork 4.0
3.3. Hƣớng dẫn sử dụng
3.3.1. Chƣơng trình mã hóa AES
Chương trình được chia thành 2 phần:
- Phần 1: Mã hóa văn bản gồm ký tự và số, trong đó ký tự có thể có dấu
- Phần 2: Mã hóa tệp tin gồm file .doc hoặc file .txt
Nội dung chi tiết:
Tab thứ nhất: Mã hóa văn bản:
Quá trình mã hóa
- Nhập chuỗi cần mã hóa vào ô text nội dung: Ví dụ: Cộng hòa xã hội chủ
nghĩa Việt Nam
- Nhập khóa vào ô text khóa: ví dụ: abc
51
- Bấm vào nút mã hóa: kết quả sẽ được hiển thị ở ô text phần nội dung kết quả là:
p/RR6lSmFq+3XOUqc6TngOmGfK7o3a01jRt5nrrqPijAcSi5XZGXPJsdZnpuo3b2
Rj6v8eASqbfZ1pnlR7bPNFfx8jHSRahZuT874WaDS5k=
Hình 3.1: Quá trình mã hóa văn bản
Quá trình giải mã
- Nhập chuỗi cần giải mã vào ô text nội dung: Ví dụ:
p/RR6lSmFq+3XOUqc6TngOmGfK7o3a01jRt5nrrqPihZryPwPf+68P8rGebHeOU
XZaRyCHaE6wZdcAx1sKQaiG2DLxfaJRBG2rHGjyClRFY=
- Nhập khóa vào ô text khóa: giống khóa đã đặt trong quá trình mã hóa
- Bấm vào nút giải mã: kết quả giải mã sẽ được hiển thị ở ô text phần nội dung
kết quả là: Cộng hòa xã hội chủ nghĩa Việt Nam
52
Hình 3.2: Quá trình giải mã văn bản
Tab thứ hai: Mã hóa tệp tin:
Quá trình mã hóa:
- Bấm vào nút tìm để chọn tệp tin cần mã hóa:
- Chương trình sẽ tự lưu file được mã hóa cùng thư mục của file được mã
hóa nhưng đã đổi tên thành file số 2
- Bấm vào nút mã hóa ta được kết quả như sau:
53
Hình 3.3: Quá trình mã hóa tệp tin
Quá trình giải mã tệp tin
- Bấm vào nút tìm tệp tin cần giả mã: chọn tệp tin vừa mã hóa
- Chương trình tự động lưu tệp tin giải mã vào cùng thư mục tệp tin đã mã
hóa nhưng tên file sẽ được đổi thành tên tệp tin số 2
- Bấm vào nút giải mã ta được kết quả như sau:
54
Hình 3.4: Quá trình giải mã tệp tin
Độ an toàn của thuật toán:
- Việc sử dụng các hằng số khác nhau ứng với mỗi chu kỳ giúp hạn chế khả
năng tính đối xứng trong thuật toán. Sự khác nhau trong cấu trúc của việc mã hóa
và giải mã đã hạn chế được các khóa “yếu” như trong phương pháp DES.
Đánh giá độ phức tạp của thuật toán:
- Thuật toán AES thích hợp cho việc triển khai trên nhiều hệ thống khác nhau,
không chỉ trên các máy tính cá nhân, mà cả trên các hệ thống thẻ thông minh.
- Tất cả các bước xử lý của việc mã hóa và giải mã đều được thiết kế thích hợp
với cơ chế xử lý song song nên AES càng chứng tỏ thế mạnh của mình trên các hệ
thống thiết bị mới.
55
- Do đặc tính của việc xử lý thao tác trên từng byte dữ liệu nên không có sự
khác biệt nào được đặt ra khi triển khai trên hệ thống big-endian hay little-endian.
- Độ lớn của khóa mã có thể thay đổi linh hoạt từ 128 đến 256 bit. Số lượng
chu kỳ có thể được thay đổi tùy thuộc vào yêu cầu riêng được đặt ra cho từng ứng
dụng và hệ thống cụ thể.
3.3.2. Chƣơng trình ký không thể phủ định
Trong ví dụ này, Tom là người ký, Mary là người cần xin chữ ký.
Chuẩn bị các tham số
Tom chuẩn bị các tham số cho việc ký
- Chọn số nguyên tố p = 467 = 2 * q + 1, q = 233 cũng là số nguyên tố
- G là nhóm nhân con của
cấp q. Chọn phần tử sinh của nhóm G là g = 4.
- Đặt P = A = G, K = {(p, g, a, h ): a ∈
, h ≡ ga mod p }
Chọn a = 121, h = 4121 mod 467 = 422
Thuật toán ký
Dùng khóa bí mật sk = a để ký lên x = 229
Chữ ký thu được là y = sigsk (x) = x
a
mod p = 229
121
mod 467 = 382.
Giao thức kiểm thử chữ ký
Dùng khóa công khai pk = ( p, g, h ) = ( 467, 4, 233 )
- Mary chọn ngẫu nhiên e1 = 13, e2 = 18 ∈
- Mary tính c =
mod p = 207
- Tom tính d =
−1 mod p = 1.045057654999
- Mary kiểm tra điều kiện d ≡
mod p
→ Mary kết luận chữ ký là đúng.
Giao thức chối bỏ chữ ký
Giả sử Tom gửi tài liệu x = 229, với chữ ký y = 382
- Mary chọn ngẫu nhiên e1 = 12, e2 = 16 ∈
- Mary tính c =
mod p = 148
- Tom tính d =
−1 mod p = 1.04216395248539
- Mary kiểm tra điều kiện d ≡
mod p
=> Mary thực hiện tiếp
Mary chọn ngẫu nhiên f1 = 15, f2 = 11 ∈
56
- Mary tính C =
mod p = 153 và gửi cho Alice
- Tom tính D =
−1 mod p = 1.04245016179765 và gửi cho Bob
- Mary kiểm tra D ≢ mod p
- Mary kiểm tra:
(dg
-e2
)
f1≡ (Dg-f2)e1 (mod p)
(dg-e2)f1≡ (Dg-f2)e1 (mod p)
Mary kết luận chữ ký là giả mạo
Nhập các tham số ở trên, ta lần lượt đạt được kết quả như sau:
Hình 3.5: Quá trình ký
Hình 3.6: Giao thức kiểm thử
57
Hình 3.7: Giao thức chối bỏ.
Độ an toàn của chữ ký
Điều này phụ thuộc vào bài toán logarit rời rạc do khóa bí mật sk = a được
tính từ công thức h = ga mod p => a = loggh mod p, trong đó g, h, p là công khai.
Đây chính là vấn đề của bài toán logarit rời rạc khó giải.
Vấn đề chữ ký không thể phủ nhận là một trong những vấn đề khó trong lĩnh
vực mật mã học. Nó là một vấn đề không mới, đang được phát triển ở nước ta hiện
nay và có nhiều công việc cần giải quyết nếu muốn xây dựng một hệ thống ký số
điện tử đạt tiêu chuẩn quốc gia. Hướng tiếp cận theo mật mã học khóa công khai là
hướng tiếp cận dựa vào yêu cầu thực tế công nghệ là công khai và khóa mới là cái
bí mật, độ an toàn của hệ thống không dựa vào độ an toàn của công nghệ mà chính
là khóa.
58
KẾT LUẬN
Luận văn này đã trình bày chi tiết nhất có thể một số bài toán về an toàn thông
tin trong thỏa thuận và ký kết hợp đồng của thương mại điện tử. Tác giả đã làm được:
Nghiên cứu lý thuyết và thực tế để tổng hợp lại các vấn đề sau:
- Tổng quan về ATTT trong TMĐT.
- Các phương pháp bảo vệ thông tin trong thỏa thuận và ký kết hợp đồng
điện tử.
- Một số bài toán về ATTT trong thỏa thuận và ký kết hợp đồng điện tử.
Theo sự tìm hiểu của mình, đây là một trong những nghiên cứu về mã hóa
AES và chữ ký không thể phủ nhận.
Đã mã hóa và giải mã thành công cho một số hợp đồng giao dịch cụ thể,
dùng chữ ký không thể phủ nhận để chống chối bỏ hợp đồng giao dịch.
Tuy nhiên do thời gian có hạn nên tác giả chưa đưa ra được chương trình thủy
vân số để giấu thủy vân vào trong hợp đồng. Trong tương lai, nếu có cơ hội và thời
gian, tác giả sẽ cải thiện những vấn đề còn tồn tại như đã đề cập ở trên để đưa đề tài
được hoàn thiện hơn nữa.
59
TÀI LIỆU THAM KHẢO
Tài liệu tiếng Việt:
[1] Trịnh Nhật Tiến. Giáo trình An toàn dữ liệu - Đại học Công Nghệ - ĐH Quốc
Gia Hà Nội, 2008.
[2] Trịnh Nhật Tiến. Bài giảng Tổng quan về An toàn thông tin trong TMĐT - Đại
học Công Nghệ - Đại học Quốc Gia Hà Nội.
[3] Phan Đình Diệu. Lý thuyết mật mã và An toàn thông tin, 2002.
[4] Nguyễn Đăng Hậu. Kiến thức thương mại điện tử, 11- 2004.
[5] Trần Phương Nam. Tiểu luận Mật mã và An toàn dữ liệu-ĐHCN-ĐHQGHN, 2014.
[6] Hoàng Thị Vân. Tiểu luận Mật mã và An toàn dữ liệu-ĐHCN-ĐHQGHN, 2013.
[7] Phạm Thành Luân. Đồ án tốt nghiệp: Tìm hiểu, nghiên cứu một số tình huống
trong thỏa thuận hợp đồng điện tử - ĐHDL Hải Phòng, 2012.
[8] Lê Thị Thu. Luận văn thạc sĩ: Nghiên cứu một số giao thức bảo vệ thông tin
trong thỏa thuận hợp đồng điện tử - ĐHCN - ĐHQGHN, 2011.
Website:
[9]
[10]
[11]
[12]
[13]
[14]
[15]
60
Tài liệu tiếng Anh:
[16] Chaum, David, van Heijst, Eugene and Pfitzmann, Birgit, Cryptographically
strong undeniable signatures, unconditionally secure for the signer (extended
abstract)
[17] Ecient Convertible Undeniable Signature Schemes – D. Chaum, E. van Heys
[18] William Stallings (2007), Cryptography and Network Security, Third Edition.
[19] D. Stinson. Cryptography: Theory and Practice, CRT Press 1995.
[20] N. F. Johnson (2002), Steganography, George Mason University, pp 5-6.
[21] Bruce Schneier (1999), Applied Cryptography, Second Edition.
[22] Alfred J. Menezes Paul C. van Ooschot Scott A. Vanstone (1998): Handbook
of Applied Cryptography, CRC press.
[23] Bart Van Rompay. Analysis and Desigbn of Cryptographic Hash Functions,
MAC Algorithms and Block Ciphers, Juni 2004.
[24] Benoıt Libert Jean-Jacques Quisquater, Identity Based Undeniable Signatures,
UCL Crypto Group, Belgium.
[25] David Chaum, Hans van Antwerpen. Undeniable Signature. CRYPTO.
[26] Moti Young : Weaknesses of Undeniable Signature Schemes.
Các file đính kèm theo tài liệu này:
- luan_van_nghien_cuu_mot_so_bai_toan_ve_an_toan_thong_tin_tro.pdf