1
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ Lê Thụy
Nghiên cứu phƣơng pháp bảo vệ bản quyền tài liệu số hóa Luận văn ThS Khoa học máy tính (60 48 01)
Hà Nội - 2008
2
MỤC LỤC
Chương 1: CÁC KHÁI NIỆM CƠ BẢN. 7
1.1 MÃ HÓA. 7
1.1.1 Khái niệm. 7
1.1.2 Phân loại các hệ mã hóa. 7
Chương 3: MỘT SỐ PHƢƠNG PHÁP BẢO VỆ BẢN QUYỀN TÀI LIỆU SỐ. 49
3.1 PHƢƠNG PHÁP BẢO MẬT. 49
3.2 PHƢƠNG PHÁP XÁC THỰC. 50
3.2.1 Xác thực đồng nhất (toàn vẹn dữ liệu). 50
3
3.2.2 Xác thực thực thể. 52
3.3 PHƢƠNG PHÁP CHỐNG CHỐI BỎ. 59
3.3.1 Sơ đồ chữ ký chống chối cãi có “trọng tài”. 59
3.3.2 Sơ đồ chữ ký chống chối cãi Chaum-van Antverpen. 61
3.4 PHƢƠNG PHÁP KẾT HỢP CHỮ KÝ SỐ VÀ CHỨNG CHỈ SỐ. 64
3.4.1 Mô hình xác thực bản quyền sử dụng chứng chỉ số. 64
3.4.2 Sự chứng nhận và kiểm tra chữ ký. 65
3.5 PHƢƠNG PHÁP THỦY VÂN SỐ. 67
3.5.1 Kỹ thuật thủy vân LSB ứng dụng chống xuyên tạc ảnh. 67
3.5.1.1 Kỹ thuật LSB (Least Signification Bits). 67
3.5.1.2 Thuật toán nhúng thủy vân bằng kỹ thuật LSB. 70
3.5.2 Kỹ thuật thủy vân bền vững trên miền tần số. 72
3.5.2.1 Biến đổi Cosin rời rạc – DCT. 72
3.5.2.2 Thuật toán nhúng thủy vân. 73
Chương 4: THỬ NGHIỆM CHƢƠNG TRÌNH 77
4.1 CƠ SỞ LÝ THUYẾT 77
4.2 MỘT SỐ GIAO DIỆN CỦA CHƢƠNG TRÌNH. 78
4.3 MỘT SỐ ĐOẠN MÃ NGUỒN QUAN TRỌNG. 81 4
DANH MỤC HÌNH VẼ
Hình 1.1: Trao đổi mật mã sử dụng Hệ mã hóa khóa công khai 8
Hình 1.2: Hàm băm mật mã 13
Hình 4.3 Thủy vẫn hữu hình 80
Hình 4.4 Kết quả nhúng thủy vẫn hữu hình 80
5
MỞ ĐẦU
Sự ra đời và phát triển mạnh mẽ của các hệ thống mạng và ngày nay là mạng
toàn cầu Internet đã mạng lại sự đột phá trong xã hội. Đƣa thế giới chuyển từ
kỷ nguyên Công nghiệp sang kỷ nguyên Thông tin và kinh tế tri thức. Cuộc cách mạng
thông tin và kỹ thuật số đã đem lại những thay đổi sâu sắc trong tƣ duy và cách làm
việc của con ngƣời. Trong môi trƣờng mạng, con ngƣời có thể sử dụng những
sản phẩm tri thức dƣới dạng đã đƣợc số hóa. Mạng Internet toàn cầu, nơi diễn ra
quá trình trao đổi thông tin trong mọi lĩnh vực mọi thời điểm, là môi trƣờng hoàn hảo
cho việc trao đổi thông tin và hội nhập.
Việc triển khai các hệ thống số đã chuyển đổi các cách thức mà trong đó
các sản phẩm đã đƣợc taọ ra, sử dụng và phân phối trên thị trƣờng. Số hoá các nội
dung đã đặt ra những thách thức chƣa từng có cho tất cả các bên liên quan. Trong khi
nó cho phép cá các nhân sử dụng các tài nguyên theo các phƣơng thức mới, thì
công nghệ số cũng đã tạo ra khả năng sao chép hoàn hảo, không có bất kỳ
khiếm khuyết và phân phối lại những sản phẩm này trên toàn thế giới, có hoặc không
có sự cho phép trƣớc của ngƣời sở hữu. Thực tế sau một giai đoạn do dự ban đầu,
ngƣời sáng tạo nội dung, các nhà cung cấp dịch vụ Internet và rất nhiều các thành viên
khác nhau đang phát triển những phƣơng thức kinh doanh mới cho việc phân phối
nội dung số. Internet đã thay đổi mọi thứ trong việc đƣa các nội dung trí tuệ đến với
cộng đồng. Những vụ kiện về bản quyền số diễn ra hàng ngày hàng giờ đang khiến
nguời ta tự hỏi về tƣơng lai của các sản phẩm trí tuệ trong thế giới mạng.
Vấn đề đặt ra cho tất cả các phƣơng thức kinh doanh, phân phối tài nguyên số
là làm sao vẫn phải tuân thủ các nguyên tắc về quyền sở hữu trí tuệ, nhƣng không
cản trở hay làm phức tạp hóa quá trình phân phối tài nguyên số đó. Hiện nay có rất
nhiều kỹ thuật bảo vệ bản quyền tài nguyên số. Các kỹ thuật khác nhau cho phép
1.1.1 Khái niệm.
Một hệ mật mã là một bộ năm (P, C, K, E, D) trong đó:
+ P: là một tập hữu hạn các bản rõ.
+ C: là một tập hƣu hạn các bản mã.
+ K: là một tập hƣu hạn các khoá.
+ Với mỗi k K, có một hàm lập mã e
k
E, e
k
: P C, và một hàm giải mã
d
k
D, d
k
: C P sao cho d
k
(e
k
(x)) = x với mọi x P.
1.1.2 Phân loại các hệ mã hóa.
Các hệ mã hóa đƣợc chia thành 2 nhóm chính. “Mã hóa khóa đối xứng” và
“Mã hóa khóa công khai”.
Mã hóa khóa đối xứng:
Là hệ mã mà việc lập mã và giải mã thƣờng dùng chung một khóa, hoặc nếu
có dùng hai khóa thì khi khóa lập mã bị lộ ngƣời ta có thể tìm ra khóa giải mã trong
thời gian tƣơng đối ngắn. Tuy nhiên do đặc tính mã hóa tƣơng đối nhanh, các hệ mã
loại này thƣờng đƣợc dùng để mã hóa các loại tài liệu có kích thƣớc lớn.
8
Các hệ mã loại này nói chung có một điểm yếu rất dễ bị tấn công đó là
nhất của mã hóa khóa đối xứng là quá trình phải chuyển giao khóa giữa các bên
liên quan. Trong các sơ đồ mã hóa khóa công khai ngƣời nhận A tính toán ra cặp khóa
sau đó giữ cho mình khóa giải mã (private key) và công khai khóa lập mã (public key).
Mọi ngƣời trên mạng muốn gửi thông tin mật cho A sẽ sử dụng khóa công khai lập mã
rồi gửi bản mã cho A. Do chỉ duy nhất A có khóa giải mã tƣơng ứng nên chỉ A mới
giải mã đƣợc tài liệu đó. 10
1.1.3 Một số hệ mã hóa cụ thể.
1/.Mã hóa RSA
Bài toán RSA (RSA Problem): Cho một số nguyên dƣơng n là tích của hai
thừa số nguyên tố lẻ p và q. Một số nguyên dƣơng b sao cho
gcd(b, (p-1)(q-1)) = 1 và một số nguyên c. Bài toán đặt ra: tìm số nguyên x sao cho
x
b
≡ c (mod n)
Thuật toán Sinh khóa cho mã khóa Công khai RSA
1. Sinh hai số nguyên tố lớn p và q có giá trị xấp xỉ nhau
2. Tính n = p.q, và
(n) = (p-1).(q-1)
3. Chọn một số ngẫu nhiên b, 1 < b <
(n), sao cho gcd(b,
(n)) = 1
4. Sử dụng thuật toán Euclide để tính số a, 1 < a <
(n), sao cho a.b ≡ 1 (mod
≡1 (mod p)
Thực hiện việc nâng lũy thừa hai vế của đồng dƣ thức trên với số mũ là k(q-1)
sau đó nhân cả hai vế với x ta đƣợc:
x
1+k(p-1)(q-1)
≡x (mod p)
Trong trƣờng hợp khác, nếu gcd(x,p)=p thì đồng dƣ thức trên vẫn đúng vì mỗi
vế của nó đều có dạng 0 modulo p. Do đó:
x
a.b
≡ x (mod p)
Lập luận tƣơng tự ta có:
x
a.b
≡ x (mod q)
Cuối cùng, vì p, q là hai số nguyên tố khác nhau nên:
x
a.b
≡ x (mod n)
do đó: y
a
≡ (x
b
)
a≡ x (mod n)
12
a
) theo thuật toán trên
b. Chọn một bản mã x, trong khoảng [0, p−1]
c. Chọn ngẫu nhiên một số nguyên k, 1 ≤ k ≤ p−2
d. Tính γ = α
k
mod p và δ = x.(α
a
)
k
mod p
e. Nhận đƣợc bản mã là (γ, δ)
(ii). Giải mã :
a. Sử dụng khóa bí mật (a) và tính γ
p-1-a
mod p
b. Lấy bản rõ: x = (γ
-a
).δ mod p
Chứng minh hàm giải mã:
(γ
-a
).δ ≡ (α
-ak
).x.(α
ak
) ≡ x (mod p).
, hay nói cách khác chuỗi bits x vẫn chƣa bị thay đổi.
Hàm băm thông điệp
(Hash Function)
Thông điệp
(message)
(âm thanh, hình ảnh,
văn bản…)
Văn bản đại diện
(message digest)
Chiều dài tùy ý
Chiều dài cố định
(n bit, n > 0)
Hình 1.2: Hàm băm mật mã
14
Các hàm băm đƣợc phân thành 2 lớp chính: lớp các hàm băm không có khóa
(unkeyed hash functions) và lớp các hàm băm có khóa (keyed hash functions).
Các hàm băm không khóa chỉ có duy nhất một đầu vào là thông điệp cần tính giá trị
băm. Còn các hàm băm có khóa nhận 2 giá trị đầu vào: thông điệp cần tính giá trị băm
và khóa bí mật để tiến hành công việc. Cách phân lớp này dựa vào thành phần
tham biến đầu vào của các hàm băm. Ngoài ra, trong thực tế còn có nhiều cách phân
loại khác nhau. Tuy nhiên trong phạm vi luận văn chỉ xét loại hàm băm không khóa.
1.2.1 Một số tính chất cơ bản của hàm băm
a. Tính kháng tiền ảnh (preimage resistance): Với mọi đầu ra y cho trƣớc
không thể tính toán để tìm đƣợc bất kì dữ liệu đầu vào x’ nào sao cho giá trị băm h(x’)
của nó bằng giá trị đầu ra y đã cho.
b. Tính kháng tiền ảnh thứ hai (2
nd
preimage resistance): Với mọi dữ liệu đầu
Nhận xét 2: Hàm băm h(x) thỏa mãn tính chất (c) nhƣng có thể không
thỏa mãn tính chất (a). Để thấy điều này ta xét ví dụ sau đây. Giả sử g(x) là hàm băm
ánh xạ đầu vào có chiều dài tùy ý và đầu đầu ra có chiều dài n cố định, thỏa mãn tính
chất (c). Xét hàm h(x) đƣợc định nghĩa nhƣ sau:
1 || | |
()
0 || ( ) | |
x x n
hx
g x x n
15
Trong đó || ký hiệu cho phép toán nối các chuỗi bit, |x| ký hiệu độ dài của
chuỗi bit x. Khi đó, ta đƣợc h(x) làm hàm băm có dữ liệu đầu ra dài (n+1) bit. Rõ ràng,
hàm h(x) thỏa mãn tính chất (c) nhƣng không thỏa mãn tính chất (a). Thật vậy, lấy hai
xâu bit x
1
và x
2
phân biệt. Nếu chiều dài của 2 xâu bit này cũng bằng n thì chúng có
cùng giá trị băm khi và chỉ khi chúng trùng nhau. Nếu chỉ có một trong 2 xâu bit có
chiều dài bằng n thì giá trị băm của chúng có thể không trùng nhau (vì có bit đầu vào
khác nhau). Nếu chiều dài của 2 xâu bit này cũng khác n thì nói chung, do tính chất (c)
và kết quả trung gian của bƣớc trƣớc đó (bước (i-1)) để tạo đầu ra là kết quả
trung gian bƣớc thứ i, đƣợc ký hiệu là H
i
. Kết quả trung gian tại mỗi bƣớc H
i
là một
chuỗi bit có độ dài cố định bằng n > 0. Nếu giá trị IV là gí trị khởi tạo ban đầu (cho H
0
)
thì quá trình lặp xử lý dãy các khối con x
1
, x
2
, …, x
n
đƣợc mô tả nhƣ sau:
H
0
= IV
H
i
= f(H
i-1
, x
i
), (i=1,…,m)
H(x) = g(H
m
)
k’
: P → A và trong V có
thuật toán kiểm thử ver
k”
: P × A → {true, false} thỏa mãn điều kiện sau đây với mọi
thông báo x P và mọi chữ ký y A:
ver
k”
(x, y) = true y = sig
k’
(x)
17
1.3.2 Phân loại chữ ký điện tử.
Chữ ký “điện tử” đƣợc chia làm 2 lớp, lớp chữ ký kèm thông điệp
(message appendix) và lớp chữ ký khôi phục thông điệp
(message recovery).
Chữ ký kèm thông điệp: Đòi hỏi thông điệp ban đầu là đầu vào
của giải thuật kiểm tra. Ví dụ: chữ ký Elgamal.
P
P
h
S
h sig
k’
x x’=h(x) y=sig
k’
(x’)
Hình 1.3: Qua trình ký của chữ ký số kèm thông điệp
19
1.3.3 Một số sơ đồ chữ ký cụ thể.
1/. Sơ đồ chữ ký RSA.
Thuật toán Sinh khóa cho chữ ký RSA (do người A thực hiện)
1. Sinh hai số nguyên tố lớn p và q có giá trị xấp xỉ nhau
2. Tính n = p.q, và
(n) = (p-1).(q-1)
3. Chọn một số ngẫu nhiên b, 1 < b <
(n), sao cho gcd(b,
(n)) = 1
4. Sử dụng thuật toán Euclide để tính số a, 1 < a <
(n), sao cho a.b ≡ 1 (mod
(n))
5. Khóa kiểm thử là (n, b), Khóa ký là (a)
Thuật toán Ký và Kiểm thử chữ ký RSA
(i). Ký : (do người A thực hiện)
a. Sử dụng khóa ký (a) theo thuật toán trên
b. Chọn một bản mã x, trong khoảng [1, n-1]
t
8), và chọn một số nguyên tố p
(2
511+64t
<p<2
512+64t
) sao cho p chia hết cho (q–1)
3. Chọn 1 phần tử sinh
trong nhóm Cyclic có cấp là q
4. Chọn một số ngẫu nhiên a (1
a
q–1)
5. Tính
=
a
mod p
6. Khóa kiểm thử là (p, q,
,
), Khóa ký là (a)
Thuật toán Ký và Kiểm thử chữ ký DSS
(i). Ký : (do người A thực hiện với văn bản x)
mod p) mod q
f. Nếu v = r TRUE, ngƣợc lại FALSE
Chứng minh quá trình kiểm thử :
Nếu (r, s) đúng là chữ ký của A trên văn bản x, ta có :
x –ar + ks (mod q)
Nhân 2 vế với w ta đƣợc :
wx w(–ar + ks) mod q
wx + arw k (mod q)
Mặt khác :
u1 + a.u2 k (mod q)
Nên ta có :
(
u1
u2
mod p) mod q = (
k
mod p) mod q
v = r
22
Algorithm
Key K
Watermarked
Data
Message
(Watermark) W
Hình 1.7: Quá trình phát hiện thủy vân. 1.4.2 Khái niệm Thủy vân số.
Thủy vân (Watermark) số là kỹ thuật giấu một chuỗi bit vào một đối tƣợng
chứa nhằm bảo vệ đối tƣợng chứa đó nhƣ xác nhận bản quyền hay xác nhận sự
xuyên tạc. Thao tác nhúng watermark đó đƣợc gọi là thủy vân số (watermarking số).
Có thể xem Watermarking là thao tác nhúng tin mà trong đó ngƣời dùng đầu cuối
không cần quan tâm tới thông tin đƣợc giấu bên trong đối tƣợng chứa tin.
Các phƣơng pháp thủy vân số cần giải quyết đƣợc vấn đề là không làm
ảnh hƣởng tới môi trƣờng giấu tin, hay nói cách khác ngƣời dùng không thể phân biệt
đƣợc 2 đối tƣợng chƣa giấu và đối tƣợng sau khi giấu. Tuy nhiên watermarking trong
môi trƣờng ảnh thì có một sự khác biệt nhỏ, đó là có thể có dạng thủy vân hữu hình.
Nhƣ việc in logo lên một bức ảnh.
24
1.4.3 Phân loại thủy vân số.
Phân loại theo tính bền vững: Cách phân loại này dựa vào khả năng chống lại
sự tấn công vào đối tƣợng mang tin nhằm phá hủy thông tin đã đƣợc nhúng trong đó.
Theo cách phân loại này thì có thể chia hệ thống Watermarking thành 3 loại.
Watermarking
Robust Watermarking Fragile Watermarking
Semi-fragile
nào về thông tin đƣợc nhúng. Nghĩa là với các giác quan thông thƣờng con ngƣời khó
có thể phân biện đối tƣợng nào chứa tin và đối tƣợng nào không chƣa tin.
Các kỹ thuật dạng này thƣờng đƣợc sử dụng trong các ứng dụng bảo vệ bản quyền.
Thủy vân hữu hình (visible watermarking): là nhóm kỹ thuật đƣa watermark
vào đối tƣợng mang tin và ngƣời dùng có thể cảm nhận đƣợc thông tin nhúng, nhƣ
nhìn thấy, nghe thấy hay sờ thấy. Ứng dụng phổ biến của các thủy vân dạng này
thƣờng để chống giả mạo.