Phạm Văn Ất Một thuật toán giấu tin trong ảnh có bảng màu 14Lưu Hồng Dũng Phát triển thuật toán mật mã khóa công khai dựa trên hệ mật Mai Thị Như Nguyễn Duy Phương Một phương pháp lọ
Trang 1Phạm Văn Ất Một thuật toán giấu tin trong ảnh có bảng màu 14
Lưu Hồng Dũng Phát triển thuật toán mật mã khóa công khai dựa trên hệ mật
Mai Thị Như
Nguyễn Duy Phương
Một phương pháp lọc cộng tác dựa trên mô hình đồ thị hai
Nguyễn Đức Quang,
Phạm Hồng Liên và Lưu
Thanh Trà
Giải pháp sử dụng bộ lọc thích nghi Kalman cho hệ thống
Nguyễn Thị Thu Hương
Lê Ngọc Minh Ứng dụng văn phạm liên kết trong dịch máy Việt – Anh 44 Cao Hữu Tình
Vũ Hỏa Tiễn
Nguyễn Công Định
Khảo sát hệ thống tự động ổn định trên khoang tên lửa điều
Trang 2Contents
Tran Minh Tan
Do Van Tuan
Luu Hong Dung Development of Public Key Cryptographic Algorithm
Mai Thi Nhu
Nguyen Duy Phuong
A collaborative Filtering Method Based on Bipartite Graph
Nguyen Duc Quang
Pham Hong Lien
Luu Thanh Tra
Solution of Applying Adaptive Kalman Filter for Channel
Nguyen Thi Thu Huong
Nguyen Cong Dinh
The Investigation on Automatic Stability System of Missile
Trang 3Abstract: Domain Name Server (DNS) system, a
root source providing answers with IP addresses for
any request for domain names, is regarded as the most
important part of Internet DNS system also plays a
very important part of cryptography analytic
infrastructure of Internet Any change made to DNS
system can make the system fall into malfunction,
boosting complexity levels in dealing with triggered
issues [2,11] Therefore, security for DNS is a vital
must For the time being, RSA algorithm [6,12] has
become the de factor standard for DNS security
However, RSA requires a longer key length of more
than 1000 bits [10,15], affecting performance
efficiency of DNS system Hence, elliptic curve
cryptography or ECC is regarded as an alternative
mechanism for implementing public-key cryptography
The ECC is expected to be used not only in new
generation mobile devices [13] but also in DNS
system in the near future as ECC requires shorter key
length than RSA but providing the same security level
This paper focuses on introducing ECC and new
findings related to this mechanism such as key pair
generation algorithms, key transfer, encryption and
decryption in ECC, as well as findings of the trial on
the Vietnam national domain name system dot VN;
these findings aims to apply for certification domain
name data transfer for the DNS system of a country
and compare with the same method in RSA algorithm
I GIỚI THIỆU
Bảo mật cho các hệ thống mạng Internet nói chung
và hệ thống tên miền nói riêng là một nhiệm vụ hết
sức quan trọng và cấp bách trong hoàn cảnh hiện nay
Tiến triển theo thời gian, các cuộc tấn công vào mạng
Internet ở Việt Nam và trên thế giới đang diễn ra ngày
càng nhiều với hình thức ngày một tinh vi, phạm vi ngày càng lớn hơn Thực tế đã có những trường hợp, những thời điểm tin tặc thông qua việc tấn công vào
hệ thống máy chủ tên miền (DNS) đã làm tê liệt mạng Internet trên diện rộng trong nhiều giờ gây thiệt hại lớn về an ninh cũng như kinh tế Để giải quyết vấn đề
an toàn cho hệ thống DNS, công nghệ bảo mật DNSSEC (DNS Security Extensions) đã được nghiên cứu và đang được đưa vào áp dụng trong thời gian qua [6]
Năm 1976, Whifield Diffie và Martin Hellman đã
đưa ra khái niệm mã bảo mật khóa công khai (PKC -
Public Key Cryptography) Từ đó, nhiều ứng dụng của
nó đã ra đời và nhiều thuật toán đã được phát triển để giải quyết các bài toán bảo mật Mức độ bảo mật yêu cầu càng cao thì cỡ khóa phải càng lớn Với hệ mật mã RSA đang được áp dụng trong hầu hết các ứng dụng, trong đó bao gồm cả bài toán bảo mật cho DNS qua công nghệ DNSSEC [2,6,9] đã nói ở trên, để đảm bảo yêu cầu bảo mật, hiện phải cần cỡ khóa lớn hơn 1000 bit [10,15] Thực tế, tháng 3 năm 2010, tại hội nghị DATE 2010 - Dresden Đức, các nhà khoa học Andrea Pellegrini, Valeria Bertacco và Todd Austin thuộc trường Đại học Michigan đã công bố kết quả phát hiện một kẽ hở trong hệ mật mã RSA, cách phá vỡ hệ thống, lấy khoá bí mật của RSA 1024 bit chỉ trong vòng 104 giờ thay vì vài năm nếu tấn công theo cách
dò tìm lần lượt thông thường [15] Công bố này cũng
đồng nghĩa với tuyên bố rằng, với RSA để đảm bản an
toàn sẽ phải tiếp tục tăng độ dài khóa (công nghệ DNSSEC cho hệ thống DNS hiện tại thường sử dụng RSA với độ dài khóa 2048 bit) Điều này kéo theo việc phải tăng năng lực tính toán của thiết bị; làm tăng
đáng kể kích thước các file dữ liệu được ký xác thực;
tăng thời gian xử lý và lưu lượng dữ liệu phải truyền
Nâng cao hiệu quả bảo mật cho hệ thống tên miền
Security Enhancement for Domain Name System
Tần Minh Tân và Nguyễn Văn Tam
Trang 4tải trên mạng; đòi hỏi dung lượng lưu trữ của bộ nhớ
lớn hơn, nguồn tiêu thụ nhiều hơn, Và như vậy cũng
có nghĩa là sẽ không đảm bảo hiệu quả về mặt kinh tế
Năm 1985, Neal Koblitz và Victor Miller đã nghiên
cứu và đưa ra những công bố về hệ mật mã bảo mật
dựa trên đường cong Elliptic (Elliptic Curve
Cryptography - ECC) có những đặc tính đặc biệt
[3,4,8]: Yêu cầu năng lực tính toán thấp; tiết kiệm bộ
nhớ; tiết kiệm băng thông; tiết kiệm năng lượng; tính
bảo mật cao Từ những đặc điểm nổi trội ấy, nhiều nhà
khoa học đã đi sâu vào nghiên cứu hệ mật mã bảo mật
đường cong Elliptic [1,7,10,11] và bước đầu đã có các
ứng dụng vào một số lĩnh vực bảo mật, đặc biệt cho
các thiết bị thông tin di động [13], thiết bị USB[9]
Phát triển các kết quả này, Công ty Certicom -
Công ty đi đầu trong lĩnh vực nghiên cứu hệ mật mã
bảo mật ECC [16], đã nghiên cứu, triển khai một số
ứng dụng và công bố các số liệu so sánh về mức độ
bảo mật giữa các hệ mật mã RSA và ECC Theo đó
với độ dài khóa 160 bit, hệ mật mã ECC đã có độ bảo
mật tương đương với hệ mật mã RSA-1024 bit; và với
độ dài khóa 224 bit, hệ mật mã ECC có độ bảo mật
tương đương với hệ mật mã RSA-2048 bit [3]
Bảng 1 So sánh độ dài khóa của các hệ mật mã với
lý, khả năng lưu trữ (đặc biệt là với các thiết bị di
động) [13] Tuy nhiên với các lợi thế về mức độ bảo
mật và kích thước khóa nhỏ như đã nói ở trên, ECC hoàn toàn có thể được áp dụng cho các hệ thống lớn như DNS để thay thế, khắc phục các nhược điểm về
độ dài khóa của RSA Bài báo này chúng tôi sẽ đề
xuất phương pháp cài đặt hệ mật mã ECC lên các giao dịch trao đổi dữ liệu giữa các máy chủ trong hệ thống DNS để nâng cao tính bảo mật và hiệu năng cho hệ thống này
Trong [1], tác giả đã chỉ ra những bước cơ bản để xây dựng thuật toán bảo mật bằng đường cong Elliptic, tuy vậy mới dừng lại ở công thức tổng quan hoặc ở ví dụ cụ thể bằng số Ở đây, chúng tôi sẽ xây dựng chi tiết các thuật toán tạo khóa, chuyển khóa, mã hóa và giải mã trên ECC một cách đơn giản và rõ ràng hơn nhằm giảm số bước thực hiện Đây là nền tảng để xây dựng hệ mật mã ECC
Trang 5Trong các nội dung tiếp theo, Phần 2 chúng tôi sẽ
trình bày phát biểu bài toán hệ mật mã đường cong
Elliptic (ECC) và kết quả xây dựng một số thuật toán
trong ECC để áp dụng cho việc xác thực trong quá
trình trao đổi dữ liệu trên mạng Internet; Phần 3 trình
bày kết quả thực nghiệm ECC, ứng dụng các thuật
toán nói trên trong việc xác thực dữ liệu tên miền
trong hệ thống DNS cấp quốc gia, so sánh với cách sử
dụng phương pháp tương tự bằng RSA; cuối cùng là
phần kết luận
II PHÁT BIỂU BÀI TOÁN
Đường cong Elliptic trên GF(p) hoặc Zp với số
nguyên tố p được xác định bằng phương trình Cubic:
y2 = ( x3 + ax + b) mod p, với các hệ số a và b và các
biến x và y là các phần tử của Zp thỏa mãn ràng buộc
(4a3 + 27b2) mod p ≠ 0 [14]
Như vậy ta dễ dàng nhận thấy đường cong Elliptic
(E) có phương trình là hàm chẵn đối với biến y, do đó
đồ thị của (E) nhận trục hoành Ox là trục đối xứng
• Điểm ΘΘΘ là điểm thuộc (E) nằm ở vô cùng,
được gọi là phần tử trung hòa
• Với mỗi điểm P=(x,y), phần tử đối của P là
điểm -P=(x,-y), ta định nghĩa tổng hai điểm
P+(-P) = P-P = ΘΘΘ Hay -P là điểm đối xứng
của P qua trục Ox
• Với 2 điểm P=(xP, yP) và Q=(xQ, yQ) với xP≠
xQ, một đường thẳng đi qua hai điểm P, Q sẽ
giao với (E) tại một điểm duy nhất Ta định
nghĩa điểm R = -(P+Q) Nếu đường thẳng này
là tiếp tuyến của (E) tại điểm P hoặc Q thì
tương ứng R≡P hoặc R≡Q Điểm đối xứng của
R là -R được gọi là điểm tổng của P và Q
• Đường thẳng đi qua P và -P (tức P và Q có
cùng hoành độ), sẽ giao với (E) tại điểm vô
cùng, do vậy R = P+(-P) = ΘΘΘ
• Để nhân đôi điểm P, ta vẽ tiếp tuyến của (E)
tại P, tiếp tuyến này sẽ giao với (E) tại điểm
Q, ta có Q= -(P+P)=-2P Hay -Q=2P Với những đặc điểm trên, tập các điểm thuộc
đường cong (E) tạo thành một nhóm Abel
Hệ mật mã đường cong Elliptic (ECC) được xây dựng trên cơ sở bài toán logarith trên đường cong Elliptic Độ bảo mật ECC phụ thuộc vào độ khó của bài toán logarith rời rạc đường cong Elliptic Giả sử P
và Q là hai điểm trên đường cong Elliptic sao cho
k*P=Q trong đó k là một đại lượng vô hướng với P và
Q đã cho, bằng cách tính toán suy luận để thu được k
trên cơ sở thuật toán rời rạc của Q đối với P
Với một điểm P cho trước và hệ số k, ta có thể dễ
dàng tính ra được điểm Q tương ứng trên đường cong Elliptic Tuy nhiên theo chiều ngược lại, để tìm ra hệ
số k (khóa k) từ điểm Q và điểm P lại là một bài toán
"rất khó" nếu như hệ số k là một số đủ lớn (có độ dài
224 bit chẳng hạn) Dựa trên cơ sở bài toán logarit rời rạc xét trên tập các điểm thuộc đường cong Elliptic này, hệ mật mã ECC cung cấp đầy đủ cả 4 dịch vụ an ninh: mã hóa, xác thực, ký số và trao đổi khóa; đảm
Trang 6Thống nhất
bảo cho việc xây dựng một hạ tầng xác thực khóa
công khai trên Internet Do đó một trong những thuật
toán chủ yếu trong ECC là tạo khóa, chuyển khóa, mã
đã nói ở trên với các tham số p, a và b đã chọn Lấy
điểm cơ sở G từ nhóm Ep(a,b) trên đường cong
Elliptic, bậc của nó phải là một giá trị n lớn [14] Bậc
n của điểm G trên đường cong Elliptic được xác định
bằng số nguyên dương bé nhất n sao cho n*G = 0 [14]
Tham số hệ mật mã ECC trên trường nguyên tố
hữu hạn Fp.[4]:
T = (p, a, b, G, n, h) (2)
Trong đó: p là số nguyên dương xác định trường
nguyên tố hữu hạn Fp và chọn [log2P] ∈ {192, 224,
256, 384, 512}; a,b là các hệ số ∈Fb xác định đường
cong trên Elliptic E(Fb) trên trường Fb(1); h là phần
số thập phân, h= #E(Fb)/n với #E(Fb) là số các điểm
thuộc đường cong E(Fb)
Theo các bước tạo khóa được xác định tại [14],
chúng tôi xây dựng thuật toán như Hình 3
Thuyết minh thuật toán:
• Đầu vào: Bên gửi A và Bên nhận B thống nhất
đường cong Elliptic và tham số hệ mật mã
đường cong Elliptic T
• Đầu ra: Khóa công khai của A: PA và khóa
công khai của B: PB cần được thiết lập
Các bước thuật toán:
1 A chọn ngẫu nhiên một số nguyên dương nA < n
2 A xác lập tích PA = nA*G = (xA, yA)
Cặp khóa công khai và khóa riêng của A là (PA, nA)
3 B chọn ngẫu nhiên số nguyên nB< n và tính
PB = nB * G = (xB, yB)
Cặp khóa công khai, khóa riêng của B là (PB, nB)
Thuật toán tạo khóa: Hai bên gửi A và nhận B
Hình 3 Thuật toán tạo khóa
2 Thuật toán trao đổi khóa
Hình 4 Thuật toán trao đổi khóa
n A
P A = n A *G (X A, Y A )
P B = n B *G (X B, Y B )
Trang 7Thuyết minh thuật toán:
Thuật toán trao đổi khóa được hình thành sau khi
bên A và bên B đã được tạo khóa PA và PB thể hiện ở
điểm a, b tương ứng trên hình 3 như đã nói ở trên
Thuật toán được diễn đạt như sau:
• Đầu vào: Cặp khóa PA và PB
• Đầu ra: PA B ; PB A
Xác nhận đúng đối tượng cần kết nối thông tin
bằng kết quả hai bên tìm được khóa chia sẻ chung K
Các bước thực hiện :
1 A truyền khóa PA cho B; B truyền khóa PB cho
A
2 Cả A và B tính khóa chia sẻ:
• Phía A: Lấy nA của mình nhân với khóa PB
nhận được từ B tạo ra:
K= nA*PB = nA *(nB*G) = nA* nB* G
• Phía B: Lấy nB của mình nhân với khóa PA
nhận được từ A tạo ra:
K= nB*PA = nB* (nA*G) = nA*nB* G
Như vậy cả A và B đều nhận được K giống nhau
3 Thuật toán mã hóa và giải mã
Thuật toán mã hóa và giải mã Elliptic được Bellaer
và Rogaway đề xuất [3], thực chất là một biến thể của
hệ mật mã công khai Elgamal Ở đây chúng tôi cụ thể
hơn dưới dạng lưu đồ thuật toán và đơn giản hơn bằng
cách bỏ qua thủ tục tính cặp khóa, tính bản mã sử
dụng
Thuật toán mã hóa:
Hình 5 Lưu đồ thuật toán mã hóa
• Đầu vào: A muốn gửi bản tin M cho B
• Đầu ra : Văn bản mã cM
• Các bước thực hiện:
1 A chọn ngẫu nhiên một số nguyên dương thỏa mãn 0 < k < n và tính: c1 = k*G và c2 = M + k*PB trong đó PB là khóa công khai của B
2 A gửi văn bản đã mã hóa cM = { c1, c2} cho B Thuật toán giải mã
Hình 6 Lưu đồ thuật toán giải mã
B tách c1 và nhân c1 với khóa riêng nB của nó
và lấy c2 trừ đi kết quả đó:
c2 - nB*c1 = M + k*PB - nB * (k*G) = M + k*(nB*G) - nB*(k*G) = M
Vậy đã thực hiện xong giải mã
Trang 8Bảng 2 Tổng hợp số liệu về thời gian ký xác thực và kích thước các zone file tên miền VN trước và sau khi ký
bằng DNSSEC với RSA-2048 bit và ký bằng ECC-224 bit
Zone zone file ban Kích thước
đầu (Bytes)
Kích thước zone file sau khi ký xác thực (bytes) Thời gian ký (giây)
Số tên miền
được
ký
Với DNSSEC sử dụng RSA-2048 bit
Với
ECC-224 bit
Với DNSSEC sử dụng RSA-2048 bit
III KẾT QUẢ THỰC NGHIỆM
Trên cơ sở các thuật toán đề xuất ở trên, chúng tôi
đã sử dụng ngôn ngữ lập trình Java để cài đặt các thuật
toán, áp dụng vào quá trình xác thực trong các giao
dịch trao đổi dữ liệu tên miền giữa máy chủ DNS
chính (Primary DNS Server) và các máy chủ phụ
(Secondary DNS Server) Thí nghiệm được thực hiện
trên các zone file dữ liệu tên miền được lấy trực tiếp
về từ hệ thống DSN quốc gia
Để đảm bảo an toàn và dự phòng bổ sung, san tải
cho nhau, hệ thống DNS được thiết kế theo quy định
sẽ gồm một máy chủ DNS chính và nhiều máy chủ
DNS phụ Theo các mốc thời gian định kỳ tùy thuộc
vào cơ chế khai báo trên máy chủ DNS chính, các máy
chủ DNS phụ sẽ tự động kết nối với máy chủ DNS
chính để tải các file dữ liệu tên miền đã có sự thay đổi
trên máy chủ chính về máy chủ phụ để đáp ứng việc
cập nhật kịp thời các thay đổi nhằm trả lời chính xác
các truy vấn về tên miền từ các máy tính trên mạng
Internet được hỏi đến nó Quá trình này được gọi là cơ
chế zone transfer trong quy trình quản lý hệ thống
DNS Để bảo mật cho quá trình đồng bộ dữ liệu này,
ngoài giải pháp phần cứng (khai báo cấu hình mạng
chỉ cho phép các máy chủ phụ có địa chỉ IP từ trong
một danh sách đã được định nghĩa trước mới có quyền
kết nối vào máy chủ chính), hiện chỉ mới có công
nghệ bảo mật DNSSEC sử dụng RSA đang được áp
dụng là có triển khai việc ký xác thực, mã hóa dữ liệu tên miền trong quá trình trao đổi giữa các máy chủ DNS với nhau Ở đây, chúng tôi đã xây dựng chương trình ký xác thực, mã hóa, giải mã bằng ECC tương tự như các bước làm của DNSSEC sau đó lần lượt sử dụng ECC để thực hiện việc ký xác thực, mã hóa dữ liệu trên các zone tên miền quốc gia bao gồm vn, com.vn, net.vn, org.vn, edu.vn và ac.vn và so sánh với các kết quả đã thu được bằng phương pháp sử dụng DNSSEC
Các kết quả thu bằng hai phương pháp được đem ra
so sánh theo các tiêu chí sau: 1/ Thời gian ký xác thực; 2/Kích thước zone file sau khi ký xác thực Chi tiết
được thể hiện trong Bảng 2
Kết quả so sánh này cho thấy, sau khi ký xác thực bằng RSA-2048 bit với DNSSEC, kích thước các zone file tăng bình quân xấp xỉ 7,31 lần, trong khi đó sau ký xác thực bằng ECC-224 bit kích thước chỉ tăng bình quân 1,74 lần so với file dữ liệu gốc Về thời gian ký xác thực, khi sử dụng RSA-2048 bit sẽ lâu hơn bình quân 7,8 lần so với việc ký bằng ECC-224 bit theo thuật toán đã đề xuất
Tổng hợp so sánh kết quả thực nghiệm trên các zone file được lấy liên tiếp mỗi khi có sự thay đổi các bản ghi tên miền trên zone của máy chủ DNS chính trong vòng 24 giờ liên tục (theo cơ chế yêu cầu máy chủ DNS phụ cập nhật toàn bộ nội dung file mỗi khi
có thay đổi) được thể hiện trên các sơ đồ sau:
Trang 9Hình 7 So sánh kích thước zone file tên miền sau khi
ký xác thực với RSA-2048 bit và ECC-224 bit
Hình 8 So sánh thời gian ký xác thực bằng
RSA-2048 bit và ECC-224 bit trên các zone file gốc
Như vậy, rõ ràng ECC có các ưu điểm vượt trội
về thời gian xử lý và đặc biệt là làm giảm đáng kể kích
thước các zone file dữ liệu tên miền sau khi được ký
xác thực so với phương pháp dùng RSA trong
DNSSEC với cùng một mức độ bảo mật Việc sử dụng ECC đã làm giảm tương đối thời gian, dữ liệu phải truyền tải trên mạng trong quá trình đồng bộ tên miền giữa máy chủ DNS chính và các máy chủ DNS phụ,
đồng thời tiết kiệm đáng kể băng thông (hiện tại hệ
thống DNS quốc gia đang phải đồng bộ dữ liệu thường xuyên trong ngày giữa máy chủ chính và 26 máy chủ phụ đặt tại các địa điểm khác nhau trên toàn cầu) Việc
ứng dụng ECC sẽ nâng cao rõ rệt hiệu năng cho hệ
thống máy chủ tên miền
IV KẾT LUẬN
Bài báo này nghiên cứu áp dụng mã bảo mật đường cong Elliptic, trong đó đã :
- Xây dựng lưu đồ thuật toán tạo khóa dựa trên
đường cong Elliptic và tham số T(p, a, b, G, n, h),
giúp cho việc tính toán rõ ràng và đơn giản
Xây dựng thuật toán trao đổi khóa thống nhất với thuật toán tạo khóa và bỏ qua được các bước A tạo PA gửi B
và B tạo PB gửi A như trong [3] Đồng thời thuật toán
ở đây đơn giản
- Đưa ra thuật toán mã hóa, giải mã đơn giản hơn
so với trước đây
- Cuối cùng trong bài báo này, chúng tôi đã trình bày kết quả thực nghiệm cài đặt thuật toán, áp dụng thử nghiệm trên các file dữ liệu tên miền được lấy trực tiếp về từ hệ thống DSN quốc gia (các file trên thực tế
sẽ tham gia trong quá trình trao đổi dữ liệu tên miền giữa máy chủ DNS quốc gia) So sánh thời gian ký xác thực, kích thước các file dữ liệu sau khi triển khai thử nghiệm bằng ECC-224 bit qua các thuật toán được xây dựng trong bài báo với các kết quả đã thu được khi sử dụng công nghệ DNSSEC sử dụng RSA-2048 bit Kết quả thực nghiệm đã khẳng định được tính ưu việt của việc ứng dụng các thuật toán trên ECC đã được đề xuất trong bài báo so với phương pháp thông dụng hiện nay là RSA
Từ những phân tích trên, ta thấy việc nghiên cứu,
ứng dụng mã bảo mật đường cong Elliptic - ECC như
những kết quả đã đưa ra đã đạt yêu cầu làm tăng tính bảo mật hơn so với RSA, đồng thời với ba thuật toán
Trang 10đã nêu làm đơn giản số bước tính toán Đây sẽ là nền
tảng cơ sở để giải quyết việc tránh phải tiếp tục nâng
độ dài khóa như RSA mà vẫn đáp ứng được yêu cầu
về bảo mật (khó phá khóa) với kích thước khóa nhỏ
hơn Việc áp dụng mã bảo mật đường cong Elliptic -
ECC trong các hệ thống lớn như DNS là một hướng đi
đúng và trọng tâm trong thời gian tới Trong hướng
nghiên cứu sắp tới, chúng tôi sẽ mở rộng xét chọn
miền tham số cho đường cong Elliptic để sử dụng làm
mã bảo mật
TÀI LIỆU THAM KHẢO
[1] ANOOP MS, Elliptic Curve Cryptography An
Implementation Guide anoopms@tataelxsi.co.in
[2] B WELLINGTON, Domain Name System Security
(DNSSEC) signing Authority, RFC 3008, Internet
Engineering Task Force, November 2000
http://www.ietf.org/rfc/rfc3008.txt
[3] CERTICOM RESEARCH, SEC1: Elliptic Curve
http://www.secg.org/collateral/sec1_final.pdf
[4] CERTICOM RESEARCH, SEC2: Recommended
Elliptic Curve Domain Parameters, Version 2.0
January 27, 2010,
www.secg.org/download/aid-784/sec2-v2.pdf
[5] DARREL HANKERSON, JULIO LÓSPEZ
HERNANDERZ, ALFRED MENEZES, Software
Implementation of Elliptic Curve Cryptography over
Binary Fields, CHES 2000
[6] DANIEL MASSEY, ED LEWIS and OLAFUR
GUDMUNDSSON, Public Key Validation for the DNS
Security Extensions, DARPA Information Survivability
Conference & Exposition II, 2001 DISCEX '01
Proceedings, Print ISBN: 0-7695-1212-7, 2001
[7] F HESS, Generalising the GHS attack on the Elliptic
Curve Discrete logarithm problem, LMS J Comput,
Math 7, 2004
[8] JACOB SCOTT, Elliptic Curve Cryptography,
December 14, 2010
[9] JAGDISH BHATTA and LOK PRAKASH PANDEY,
Perfomance Evaluation of RSA Variants and Elliptic
Curve Cryptography on Handheld Devices IJCSNS
International Journal of Computer Science and Network Security, VOL 11 No 11, November 2011 [10] N GURA A PATEL, A WANDER, H EBERLE and S.C SHANTZ, Comparing Elliptic Curve Cryptography and RSA on 8 bit CPUS, Proccedings of
Workshop on Cryptographic Hardware and Embedded Systems (CHES 2004) 6th Internetional Workshop -
2004 [11] M ABDALLA, M BELLARE and P.ROGAWAY,
DHAES An encryption Scheme based on the Difflie - Hellman problem, Submission to P1363a: Standerd
specifications for Public-Key Cryptography, Additional
Techniques, 2000
[12] REZA CURTMOLA, ANIELLO DEL SORBO,
GIUSEPPE ATENIESE, On the Performance and
Analysis of DNS Security Extensions, Cryptology and
Network Security, 4th International Conference, CANS
2005
[13]WENDY CHOU, Elliptic Curve Crytography and its
Applications to Mobile Devices, University of
http://www.cs.umd.edu/Honors/reports /ECCpaper.pdf
[14]W STALLINGS, Crypotography and Network
Security, Fourth Edition 2009
[15] ANDREA PELLEGRINI, VALERIA BERTACCO and
TODD AUSTIN, Fault Based Attack of RSA
Authentication, Design, Automation and Test in Europe
(DATE) conference in Dresden on March 10 http://web.eecs.umich.edu/~valeria/research/publication s/DDTE10RSA.pdf
[16] Certicom Website: http://certicom.com
Nhận bài ngày: 25/05/2012
Trang 11SƠ LƯỢC VỀ TÁC GIẢ
TRẦN MINH TÂN
Sinh ngày 02/9/1968 tại Hưng Yên
Tốt nghiệp Đại học Sư phạm
Hà Nội I - Khoa Vật Lý năm
1991, Đại học Bách khoa Hà Nội - Khoa CNTT năm 1996
Nhận bằng Thạc sỹ chuyên ngành CNTT năm 2006 tại Trường Đại học Công
nghệ - ĐHQG Hà Nội Đang là nghiên cứu sinh tại
Viện Công nghệ Thông tin - Viện Khoa học và Công
nghệ Việt Nam
Hiện công tác tại Trung tâm Internet Việt Nam - Bộ
Thông tin và Truyền thông
Lĩnh vực nghiên cứu: An toàn, bảo mật trên mạng
Internet, công nghệ IPv6, DNS
Điện thoại: 0913275577, 04.35564944 máy lẻ 512
Được phong Phó Giáo sư năm 1996
Hiện đang công tác tại Phòng Tin học viễn thông - Viện Công nghệ Thông tin
Lĩnh vực nghiên cứu: Công nghệ mạng và Quản trị, an toàn mạng
Điện thoại: 0913390606, 04.38362136 Email: nvtam@ioit.ac.vn
Trang 12Abstract: This paper proposes a new algorithm to
embed data in palette image In each image block of
original image, this algorithm can hide a bit by
modifying at most one pixel of block New color of
modified pixel resembles the color of its some
neighborhood pixels, so the image after hiding very
close to the original image The experimental results
showed that the invisible of proposed algorithm is
better than algorithms Fridrich and Ez Stego
Keywords: data hiding, steganography, security
watermarking, Palette images
I GIỚI THIỆU
Ngày nay, mạng Internet đóng vai trò quan trọng
trong việc trao đổi dữ liệu giữa những người dùng
Bên cạnh những thuận lợi, vấn đề bảo mật thông tin
trên Internet luôn là những thách thức đối với các cấp
quản lý và các nhà nghiên cứu Trước đây, các phương
pháp mã hóa luôn là sự lựa chọn để bảo mật thông tin
và đã mang lại những thành công nhất định Tuy
nhiên, việc truyền tải công khai các bản mã sẽ tạo ra
sự chú ý, thách thức đối với các đối thủ, những người
muốn khám phá nội dung của bản mã một cách trái
phép Gần đây, bên cạnh các phương pháp mật mã
truyền thống, kỹ thuật giấu tin giữ vai trò quan trọng
trong các bài toán bảo mật thông tin, bảo vệ bản
quyền, xác thực dữ liệu
Giấu tin là kỹ thuật nhúng thêm thông tin vào các
dữ liệu đa phương tiện Thông tin được nhúng có thể
là các thông điệp bí mật cần trao đổi, hoặc là các thông
tin về sản phẩm Dữ liệu dùng để mang thông tin
nhúng thường là những dạng dữ liệu phổ biến trên
Internet như: ảnh, âm thanh, video Theo [1], kỹ thuật
giấu tin cần có một số tính chất cơ bản như: tính che
giấu, tính khả nhúng và tính bảo mật Theo định dạng
ảnh, các kỹ thuật giấu được chia thành hai loại chính
Loại thứ nhất, gồm các kỹ thuật giấu tin trên ảnh không có bảng màu [2,9,10] Ảnh không có bảng màu thường là những ảnh có số lượng màu lớn, dữ liệu ảnh chính là các giá trị màu của điểm ảnh Lợi dụng sự hạn chế của hệ thống thị giác không phát hiện ra sự thay
đổi nhỏ về màu sắc, các thuật toán giấu tin trên dạng ảnh này dễ dàng có được tính che giấu cao bằng cách
thay đổi một lượng nhỏ giá trị màu trong vùng dữ liệu
ảnh Loại thứ 2, gồm các kỹ thuật giấu tin trên ảnh có
bảng màu [3]-[8] Đối với ảnh có bảng màu, dữ liệu
ảnh là chỉ số màu của điểm ảnh Hai chỉ số gần nhau
có thể tham chiếu tới hai màu rất khác nhau Do vậy, các thuật toán giấu tin trên dạng ảnh này gặp phải những khó khăn nhất định, bởi vì chỉ cần có thay đổi nhỏ về chỉ số màu có thể sẽ dẫn đến sự khác biệt lớn
về màu sắc của điểm ảnh trước và sau khi thay đổi Với ảnh có bảng màu, để nâng cao tính che giấu, các kỹ thuật giấu tin thường tìm cách thay thế một màu có chỉ số chẵn bằng màu gần nhất có chỉ số lẻ hoặc ngược lại [3,4,7,8] Dựa trên ý tưởng này, phương pháp Ez Stego [7] sắp xếp lại các màu trong bảng màu theo cường độ sáng Cường độ sáng của màu c với các thành phần Rc, Gc, Bc được tính theo công thức:
= 0.299 + 0.587 + 0.144
Sau khi sắp xếp lại bảng màu, các màu giống nhau
sẽ có chỉ số màu gần nhau Tuy nhiên, theo Fridrich[3,4], hai màu khác nhau vẫn có thể có cường
độ sáng bằng nhau, vì vậy tác giả đã sử dụng khoảng
cách Euclid để đánh giá sự khác biệt về màu ứng với các chỉ số màu i và j theo công thức:
= ( − ) + ( − ) + ( − )
Một thuật toán giấu tin trong ảnh có bảng màu
A New Data Hiding Algorithm in Palette Images
Đỗ Văn Tuấn và Phạm Văn Ất
Trang 13trong đó Ri, Gi, Bi và Rj, Gj, Bj là giá trị màu ứng với
các chỉ số i và j trong bảng màu Khi cần thay đổi một
màu có chỉ số chẵn (hay lẻ), Fridrich sẽ duyệt các màu
có chỉ số lẻ (hay chẵn) để tìm màu gần nhất (theo
khoảng cách Euclid) với màu cần thay đổi Tuy nhiên,
chiến thuật thay thế màu gần nhất của các thuật toán
vẫn có thể tạo ra các màu mới cô lập, vì vậy trong một
số trường hợp, ảnh chứa tin giấu dễ bị phát hiện
Để nâng cao chất lượng của ảnh sau khi giấu tin,
trong [6] các tác giả G Pan, Z Wu, Y Pan đã đề xuất
thuật toán giấu tin cho ảnh ít màu bằng cách sử dụng
một tập các khối mẫu có kích thước 3×3, các khối mẫu
sẽ có sự ưu tiên khác nhau trong quá trình sử dụng để
nhúng tin Mỗi khối mẫu được xác định bởi 8 điểm
xung quanh điểm tâm của khối, trong đó chia làm hai
phần liên thông, một phần gồm các điểm có màu
giống nhau được gọi là màu mẫu, phần còn lại gồm
các điểu có màu khác màu mẫu được gọi là màu tham
dự (nominated color) Thuật toán sẽ tìm các khối ảnh
kích thước 3×3 trùng với một mẫu trong tập mẫu và
nhúng một bít bằng cách biến đổi màu của điểm tâm
khối thành màu mẫu hoặc màu tham dự Với cách thay
đổi như vậy, thuật toán có hai tính chất quan trọng:
điểm ảnh được chọn để thay đổi luôn nằm trên biên
của hai miền có màu khác nhau và không xuất hiện
màu mới Nhờ vậy, thuật toán có tính che giấu cao
Tuy nhiên, khối lượng tin có thể nhúng được còn chưa
nhiều như chính nhận xét của các tác giả Cũng cần
nhận xét thêm, ý tưởng chọn điểm trên biên để thay
đổi cũng đã được các tác giả M Wu [11] và Y C
Tseng[12] sử dụng để giấu tin trên ảnh nhị phân,
nhưng mỗi phương pháp đều có cách chọn khác nhau
Dựa trên phương pháp giấu tin theo khối bít và tính
chẵn lẻ, bài báo này đề xuất một lược đồ giấu tin trên
ảnh có bảng màu Theo đó, vùng dữ liệu của ảnh gốc
sẽ được chia thành các khối cùng kích thước Với mỗi
khối sẽ giấu được một bít và biến đổi nhiều nhất một
phần tử Khi cần biến đổi tính chẵn lẻ của khối, thuật
toán sẽ thay thế giá trị của một phần tử bằng giá trị của
phần tử liền kề nhưng khác tính chẵn lẻ Với chiến
thuật thay thế như vậy, thuật toán đề xuất cũng có hai
tính chất giống như thuật toán [6], do đó nó cũng có tính che giấu khá cao
Nội dung tiếp theo của bài báo được tổ chức như sau: Phần 2 giới thiệu một số ký hiệu và định nghĩa
được sử dụng trong bài báo Phần 3 trình bày nội dung
thuật toán đề xuất Tính đúng đắn của thuật toán được chứng minh trong Phần 4 Phần 5 trình bày kết quả thực nghiệm của thuật toán đề xuất và so sánh với hai thuật toán Fridrich, Ez Stego Cuối cùng, Phần 6 là
một số kết luận
II MỘT SỐ KÝ HIỆU VÀ ĐỊNH NGHĨA
Để tiện cho việc trình bày, trong bài báo sử dụng
một số ký hiệu và định nghĩa như sau:
- Ký hiệu × là tập các ma trận nguyên không âm
cấp m×n (m hàng và n cột)
- Với ∈ × , nói phần tử (i,j) có nghĩa là phần tử
trên hàng i và cột j (chỉ quan tâm đến vị trí), nói phần
tử Fi,j là phần tử trên hàng i, cột j và có giá trị bằng Fi,j
(quan tâm đến cả vị trí và giá trị) Hai giá trị Fi,j, Fu,v
khác tính chẵn lẻ được ký hiệu là Fi,j# Fu,v
Định nghĩa 2.1 Phép nhân đồng vị ⊗ hai ma trận
∈ × , ∈ × ký hiệu là C = A ⊗ B và được xác định theo công thức: Ci,j = Ai,j × Bi,j với i=1,2,…,m
và j = 1,2,…,n
Định nghĩa 2.2 Phép toán SUM trên ma trận ∈
× là một số nguyên, ký hiệu SUM(A) và tính theo công thức:
Định nghĩa 2.4 Trên ma trận ∈ × , phần tử (u,v)
được gọi là liền kề với phần tử (i,j) ký hiệu là:
(i,j) (u,v) nếu Max{|u-i|, |v-j|}= 1
Định nghĩa 2.5 Ma trận nhị phân ' ∈ × được gọi
là ma trận liên thông nếu với mỗi cặp hai phần tử bất
Trang 14kỳ không kề nhau (i,j) và (u,v) có giá trị Ki,j=Ku,v=1
luôn tồn tại dãy các phần tử (pt,qt), t=1,…,k sao cho:
III THUẬT TOÁN ĐỀ XUẤT
Với ảnh có bảng màu, dữ liệu ảnh là một ma trận
gồm các chỉ số màu có giá trị nguyên từ 0 đến 255
Ma trận dữ liệu ảnh được chia thành các ma trận con
cùng cấp và thuật toán sẽ giấu một bít dữ liệu trên mỗi
ma trận con Để tiện cho việc theo dõi, dưới đây sẽ
trình bày thuật toán giấu một bít vào một ma trận con
III.1 Ý tưởng của thuật toán đề xuất
Giả sử cần nhúng một bít tin mật b vào ma trận con
∈ × Thuật toán đề xuất dựa trên ý tưởng giấu
tin của Wu-Lee[11], sử dụng ma trân nhị phân
' ∈ × làm khóa bí mật và biến đổi nhiều nhất một
phần tử trên F để !"#( ⨂') cùng tính chẵn lẻ với b
Trong thuật toán Wu-Lee, Fi,j là các giá trị 0 hoặc 1,
nên việc biến đổi một phần tử trên F chỉ đơn giản là
chuyển từ 0 sang 1 hoặc từ 1 sang 0 Ở đây, Fi,j có giá
trị từ 0 đến 255 Vấn đề chọn phần tử nào để biến đổi
và chọn giá mới cho phần tử cần biến đổi để nâng cao
chất lượng của ảnh sau khi giấu tin là các nội dung
chính của thuật toán đề xuất
Trong thuật toán đề xuất sử dụng ma trận khóa nhị
phân liên thông ' với điê0u kiện SUM(K) ≥ 3 Khi
thực hiện thành công (có giấu tin), thuật toán sẽ cho
ma trận G thỏa mãn các điều kiện:
- 1≤ SUM(MOD(G)⊗K) ≤ SUM(K) – 1 (3.1)
- SUM(G⊗K) mod 2 = b (3.2)
- F và G khác nhau tối đa một phần tử
Các điều kiện (3.1) và (3.2) được sử dụng để khôi
2) Nếu 1≤ s ≤SUM(K)-1, chuyển sang Bước 3
Bước 3: Xét hai khả năng:
1) Nếu s mod 2 = b, đặt G = F và kết thúc thuật toán
2) Nếu s mod 2 ≠ b, chuyển sang Bước 4
Bước 4: Xây dựng tập ∏ theo công thức
; = <
=(>, ?)| ' , = 1, , AℎăDE, ∃(u, v): (H, I) ⇔ (>, ?)và M,N # , P, EêQH R = 1
=(>, ?)|' , = 1, , lẻ, ∃(u, v): (u, v) ⇔ (i, j)và M,N # , P, EêQH R = !"#(') − 1
=(>, ?)|' , = 1, ∃(u, v): (u, v) ⇔ (i, j)và M,N # , P, EêQH 2 ≤ R ≤ !"#(') − 2
Bước 5: Biến đổi F để nhận được G, thực hiện tuần tự
như sau:
1) Chọn một phần tử (i,j) ∈ ∏
2) Chọn một phần tử (u,v) sao cho: (u,v) (i,j) và
Fu,v # Fi,j (Theo định nghĩa của ∏, luôn tồn tại (u,v) như vậy)
3) Thay Fi,j bằng Fu,v Đặt G = F, kết thúc thuật toán
Nhận xét 1: Dễ dàng thấy rằng, khi thuật toán thực
hiện thành công (kết thúc tại Bước 3 hoặc Bước 5), G
luôn thỏa mãn các điều kiện (3.1) và (3.2) Như vậy,
để chứng minh tính đúng đắn của thuật toán chỉ cần
chỉ ra ∏ ≠ Ø Điều này sẽ được chứng minh trong mục
4
Nhận xét 2: Trong Bước 5 có thể có nhiều cách chọn
(i,j) và (u,v) Dưới đây sẽ trình bày phương pháp xác
định (i,j) và (u,v) để thuật toán giấu tin có thể đạt được
tính che giấu cao
Đầu tiên chọn (i,j) sao cho:
(i,j) ∈ ∏ và g(i,j) = max {g(p,q)| (p,q) ∈∏}
Ở đây g(p,q) là số phần tử trên ma trận F liền kề với
(p,q) và có giá trị bằng Fp,q Sau khi đã có (i,j), (u,v) được chọn trong tập Y, gồm các phần tử liền kề với (i,j) và khác tính chẵn lẻ với
Fi,j:
{ q j}
, = ( , )|( , )<=>(, ) ɳ #Ω
Với mỗi (p,q) ∈Ωi, j, gọi f(p,q) là số phần tử trong
j i,
Ω có giá trị bằng Fp,q
Trang 15Chọn (u,v) sao cho:
(H, I) ⇔ (>, ?) và Z(H, I) = max {f(p, q)|(p, q) ∈ Ω , }
Cách chọn này đảm bảo hai yêu cầu:
- Phần tử được chọn để biến đổi nằm trên khóa K và
xung quanh nó có nhiều phần tử cùng giá trị với nó
nhất
- Giá trị thay thế khác tính chẵn lẻ với phần tử được
chọn và xung quanh phần tử được chọn có nhiều phần
tử cùng giá trị với giá trị thay thế
Do phần tử được chọn (i,j) nằm trên khóa K
(K i,j =1), nên sau khi thay đổi giá trị Fi,j từ chẵn sang lẻ
hoặc ngược lại thì SUM(F⊗K) sẽ thay đổi tính chẵn
lẻ, do đó ma trận G luôn thỏa mãn điều kiện (3.2) Mặt
khác cách thay đổi màu tại điểm (i,j) như vậy, sẽ rất
khó phát hiện vì xung quanh nó luôn có các điểm cùng
màu với màu mới và nhiều khả năng tồn tại các điểm
cùng màu mới màu cũ của điểm (i,j) Điều này làm
tăng tính che giấu của thuật toán
III.3 Minh họa thuật toán
Hình 3.2 Ảnh trước khi giấu tin
Trong ví dụ này: SUM(K) = 5, dưới đây sẽ minh
họa thuật toán giấu bít bi vào khối Fi (i = 1,2,3,4)
Khi đó: Ω3,2={(2,2),(2,3),(3,1)} và f(2,2)=1, f(2,3)=1, f(3,1)=0
Khi đó Ω2,1={(1,1), (2,2), (3,1)} và f(1,1)=0, f(2,2)=1, f(3,1)=1
Trang 16III.4 Thuật toán khôi phục thông tin
Giả sử G là ma trận giấu một bít tin mật và K là
ma trận khóa được sử dụng trong thuật toán giấu tin
Dựa trên các điều kiện (3.1) và (3.2), có thể xây dựng
thuật toán khôi phục bít tin mật như sau:
Bước 1: Tính s’= SUM(MOD(G)⊗K)
Bước 2: Kiểm tra G có giấu tin hay không
Nếu s’= 0 hoặc s’= SUM(K), kết luận G không
chứa tin giấu
Trái lại, tính b = s’ mod 2, b là bít tin mật cần
khôi phục
III.5 Tính bảo mật của sơ đồ
Mục đích của giấu tin là để bảo vệ dữ liệu được
nhúng trên các môi trường trao đổi thông tin Vì vậy,
mỗi một sơ đồ giấu tin đều phải có tính an toàn bảo
mật bằng cách đưa vào các khóa bí mật Khóa bí mật
được sử dụng trong cả thuật toán giấu tin và khôi phục
thông tin
Trong lược đồ đề xuất, sử dụng một ma trận nhị
phân liên thông K cấp m×n làm khóa bí mật Do đó số
phương án khóa xấp xỉ bằng 2mxn Đây là một số khá
lớn, vì vậy, việc dò tìm khóa K để trích rút thông tin
mật đã nhúng trong ảnh là một việc làm tương đối khó
khăn Như vậy, vai trò của khóa K là để ngăn ngừa
việc sử dụng trái phép thông tin mật đã nhúng trong
ảnh, làm cho quá trình trao đổi thông tin trở lên an
toàn hơn
IV TÍNH ĐÚNG ĐẮN CỦA THUẬT TOÁN
Trước hết ta xét một số khái niệm và bổ đề sau:
Đặt:
Q1 ={(i,j)| Ki,j =1 và Fi,j lẻ} (4.1)
Q2 ={(u,v)| Ku,v =1 và Fu,v chẵn} (4.2)
(i0,j0) và (u,v) = (u0,v0) Trong trường hợp hai phần tử (i0,j0) và (u0,v0) không kề nhau, thì do K liên thông nên phải tồn tại dãy các phần tử (pt,qt), t = 1,…,k sao cho:
t
t q p
K , = 1, t= 1, k (i0,j0) (p1,q1) (p2,q2) (pk,qk) (u0,v0) Nếu cả k phần tử của dãy thuộc Q2, thì bổ đề đúng với (i,j) = (i0,j0) và (u,v) = (p1,q1) Trong trường hợp
trái lại (dãy có ít nhất một phần tử ∈Q 1 ), gọi (ph,qh) là phần tử cuối cùng của dãy thuộc Q1 Nếu h= k thì bổ
đề đúng với (i,j) = (pk,qk) và (u,v) = (u0,v0) Nếu h<k thì do (ph,qh) là phần tử cuối cùng thuộc Q1 nên (ph+1,qh+1) phải thuộc Q2, do đó bổ đề đúng với (i,j)=(ph,qh) và (u,v) = (ph+1,qh+1)
Vậy bổ đề được chứng minh
Chứng minh tính đúng đắn của thuật toán:
Trước hết từ (4.1) dễ dàng suy ra:
s = SUM(MOD(F)⊗K) = |Q1| (4.4) Theo nhận xét 1 trong mục 3, để chứng minh tính
đúng đắn của thuật toán chỉ cần chỉ ra ∏ ≠ Ø Ta xét
lần lượt xét ba trường hợp: s =1, s = SUM(K)-1 và 1<s<SUM(K)-1
1) Nếu s =1 thì theo Bước 4 (mục 3):
∏ = {(i,j) | Ki,j = 1, Fi,j chẵn, ∃(u,v): (u,v) (i,j) và
Fu,v # Fi,j} Ngoài ra từ (4.3) và (4.4) ta có:
|Q1| = s = 1
|Q2| = SUM(K) - |Q1| = SUM(K) -1 Vậy Q1 ≠ Φ và Q2 ≠ Φ nên theo bổ đề suy ra tồn tại
(u,v)∈Q1, (i,j)∈Q2 và (u,v) (i,j) Theo định nghĩa
Q1, Q2 thì: Fu,v lẻ, Ki,j= 1 và Fi,j chẵn Từ đó suy ra (i,j)
∈∏, vậy ∏ ≠ Φ
2) Nếu s = SUM(K) - 1 thì theo Bước 4:
∏={(i,j) | Ki,j = 1, Fi,j lẻ, ∃(u,v): (u,v) (i,j) và
Fu,v#Fi,j}
Trang 17Ngoài ra từ (4.3) và (4.4) ta có:
|Q1| = s = SUM(K) - 1
|Q2| = SUM(K) - |Q1| =1
Vậy Q1≠ Φ và Q2 ≠ Φ nên theo bổ đề suy ra tồn tại
(i,j)∈Q1, (u,v)∈Q2 và (i,j) (u,v) Theo định nghĩa
Q1, Q2 thì: Ki,j = 1, Fi,j lẻ, Fu,v chẵn Từ đó suy ra (i,j)
∈∏, vậy ∏ ≠ Φ
3) Nếu 1< s < SUM(K) -1 thì theo Bước 4:
∏ = {(i,j) |Ki,j = 1,∃(u,v): (u,v) (i,j) và Fu,v # Fi,j}
Ngoài ra từ (4.3) và (4.4) ta có:
1< |Q1| < SUM(K) - 1
|Q2| = SUM(K) - |Q1| >1
Vậy Q1≠ Φ và Q2 ≠ Φ nên theo bổ đề suy ra tồn tại
(i,j)∈Q1, (u,v)∈Q2 và (i,j) (u,v) Theo định nghĩa
Q1, Q2 thì: Ki,j = Ku,v =1, Fi,j lẻ, Fu,v chẵn Từ đó suy ra
cả (i,j) và (u,v) đều thuộc ∏, vậy ∏ ≠ Φ
V THỰC NGHIỆM
Để so sánh tính che giấu của thuật toán đề xuất với
hai thuật toán Ez Stego và Fridrich, chúng tôi đã cài
đặt và thực hiện giấu tin theo cả ba thuật toán trên
cùng các tham số đầu vào được cho như sau:
- Dữ liệu nhúng là 461 bít được tạo ngẫu nhiên
- Ảnh gốc có 8 màu và kích thước 256× 256
a) Ảnh gốc
Ảnh sau khi nhúng 461 bít của các thuật toán:
b) Ảnh của lược đồ đề xuất
c) Ảnh của thuật toán Fridrich
d) Ảnh của thuật toán Ez Stego
Trang 18Kết quả thực nghiệm cho thấy rằng, trên các ảnh
của hai thuật toán Fridrich, Ez Stego có xuất hiện màu
cô lập, nhưng màu cô lập không xuất hiện trên ảnh của
thuật toán đề xuất Thay vào đó, các màu bị biến đổi
của ảnh trong thuật toán đề xuất chỉ xuất hiện ở những
vị trí giáp ranh và luôn tồn tại các điểm ảnh lân cận có
màu giống với màu bị biến đổi
6 KẾT LUẬN
Bài báo đề xuất một thuật toán giấu tin mới áp
dụng cho ảnh có bảng màu Theo đó, dữ liệu ảnh được
chia thành các khối cùng cấp m×n, mỗi khối có thể
giấu được một bít và biến đổi nhiều nhất một phần tử
của khối Khi cần biến đổi một phần tử, thuật toán sẽ
lựa chọn vị trí thay đổi và giá trị thay thế hợp lý để
không làm xuất hiện màu cô lập, do đó nâng cao chất
lượng của ảnh sau khi giấu tin Kết quả thực nghiệm
chỉ ra rằng, tính che giấu của thuật toán đề xuất tốt
hơn so với hai thuật toán Ez Stego và Fridrich
Trong [6], các tác giả G Pan, Z Wu, Y Pan đã
thực nghiệm giấu tin trên cùng ảnh được sử dụng
trong bài báo này Qua quan sát cho thấy, tính che giấu
của thuật toán [6] có phần cao hơn so với thuật toán đề
xuất, nhưng lượng thông tin giấu ít hơn Thử nghiệm
trong [6] nhúng 289 bít, còn thực nghiệm trong bài
báo này nhúng 461 bít
TÀI LIỆU THAM KHẢO
[1] PHẠM VĂN ẤT, NGUYỄN HIẾU CƯỜNG, ĐỖ
VĂN TUẦN, BÙI HỒNG QUẾ, TRẦN ĐĂNG
HIÊN, Một số nhận xét về phương pháp giấu tin của
Chen – Pan – Tseng, Kỷ yếu Hội thảo: Một số vấn đề
chọn lọc của Công nghệ thông tin và truyền thông,
2007
[2] PHẠM VĂN ẤT, ĐỖ VĂN TUẦN, NGUYỄN HIẾU
CƯỜNG, Thuật toán giấu tin dung lượng cao, Tạp chí
Khoa học Giao thông vận tải, số 19 năm 2007
[3] J FRIDRICH, Secure steganographic methods for
palette images, Proceedings of 3rd Int Workshop on
Information Hiding,1999
[4] J FRIDRICH, J.DU, Secure Steganographic Methods
Workshop, Lecture Notes in Computer Science 1768, 47-60 (2000)
[5] M.Y WU, Y H HO, JIA-HONG LEE, An iterative
method of palette-based image steganography, Pattern
Recognition Letters 25, 301–309, (2004) [6] GANG PAN, ZHAOHUI WU, YUNHE PAN, A Data
IEEE Proceedings of the 2002 In ternational Conference on Acoustic, Speech, and Signal Processing, ICASSP 02, Vol 4, 13-17 May 2002 [7] R MACHADO EZ STEGO,
http://www.scribd.com/doc/62118082/105/EZ-Stego [8] S.M KIM, ZIQIANG CHENG, KEE YOUNG YOO,
A New Steganography Scheme based on an color Image, Sixth International Conference on
Index-Information Technology, (2009) [9] S KR GHOSAL, A New Pair Wise Bit Based Data Hiding Approach on 24 Bit Color Image using Steganographic Technique IEM, (2011)
[10] V K SHARMA, V SHRIVASTAVA, A Steganography Algorithm For Hiding Image In Image
By Improved Lsb Substitution By Minimizedetection,
Journal of Theoretical and Applied Information Technology (2012)
[11] M WU, J LEE A novel data embedding method for
two-color fascimile images In Proceedings of
international symposium on multimedia information processing Chung-Li, Taiwan, R.O.C, 1998
[12]YU-CHEE TSENG, HSIANG-KUANG PAN Secure
and Invisible Data Hiding in 2-Color Images
INFOCOM 2001 Twentieth Annual Joint Conference
of the IEEE Computer and Communications Societies Proceedings IEEE, 887 - 896 vol.2
Nhận bài ngày: 02/02/2012
Trang 19SƠ LƯỢC VỀ TÁC GIẢ
PHẠM VĂN ẤT
Sinh ngày 12/6/1945 tại Hà Nội
Tốt nghiệp Đại học năm 1967 và tiến sĩ năm 1980 tại Trường Đại học Tổng hợp Hà Nội Năm 1984 nhận học hàm PGS
Hiện giảng dạy tại Khoa CNTT – Trường Đại học Giao thông Vận tải Hà Nội
Lĩnh vực quan tâm: Lý thuyết ma trận, xử lý ảnh, an
toàn thông tin, phân tích dữ liệu
Trang 20Abstract: This paper proposed a new public key
cryptographic algorithm based on the ElGamal
cryptosystem This algorithm has the capacity of
information security and anthentication information
The paper also offers analysis on the safety of the
proposed schemes, has shown the ability to apply it in
practice
I ĐẶT VẤN ĐỀ
Trong thực tế, nhiều ứng dụng đòi hỏi việc bảo
mật thông tin cần phải được thực hiện đồng thời với
việc xác thực về nguồn gốc và tính toàn vẹn của thông
tin Nội dung bài báo đề xuất một thuật toán mật mã
khóa công khai được phát triển dựa trên hệ mật
ElGamal [1] cho phép giải quyết tốt các yêu cầu nêu
trên
II PHÁT TRIỂN THUẬT TOÁN MẬT MÃ
KHÓA CÔNG KHAI DỰA TRÊN HỆ MẬT
ELGAMAL
1 Hệ mật Elgamal
Hệ mật Elgama được đề xuất vào năm 1984 trên cơ
sở bài toán logarith rời rạc Sau đó, các chuẩn chữ ký
số DSS [2] của Mỹ và GOST R34.10-94 [3] của Liên
bang Nga đã được hình thành trên cơ sở hệ mật này
1.1 Thuật toán hình thành tham số và khóa
Các thành viên trong hệ thống muốn trao đổi thông
tin mật với nhau bằng thuật toán mật mã Elgamma thì
trước tiên thực hiện quá trình hình thành khóa như
sau:
1- Chọn số nguyên tố đủ lớn p sao cho bài toán
logarit trong Z p là khó giải
mod
=
1.2 Thuật toán mã hóa
Giả sử người gửi là A, người nhận là B Người gửi
A có khóa bí mật là xa và khóa công khai là ya Người nhận B có khóa bí mật là xb và khóa công khai là yb Khi đó, để gửi bản tin M cho B, với: 0≤M < p,
người gửi A sẽ thực hiện các bước như sau:
1- Chọn số ngẫu nhiên k thỏa mãn:
C=M×(y b)k modp 3- Gửi bản mã gồm ( C, R ) đến người nhận B
1.3 Thuật toán giải mã
Để khôi phục bản tin ban đầu (M) từ bản mã
( C, R ) nhận được, người nhận B thực hiện các bước như sau:
1- Tính giá trị Z theo công thức:
modmod = .
=
2- Tính gía trị nghịch đảo của Z:
Phát triển thuật toán mật mã khóa công khai
dựa trên hệ mật Elgamal
Development of Public Key Cryptographic Algorithm Based on Elgamal
Cryptosystem
Lưu Hồng Dũng
Trang 21Z ( )g x b p g x b p
mod
1
3- Khôi phục bản tin ban đầu (M):
M =C×Z−1modp
1.4 Tính đúng đắn của thuật toán mật mã Elgamal
Giả sử bản tin nhận được sau quá trình giải mã
( C, R ) là M , thế thì:
M
p g
g
M
p p
g p y
M
p Z
C
M
b b
b
x x
x k
mod(
)mod)(
[(
mod
.
1
Như vậy, bản tin nhận được sau giải mã (M )
chính là bản tin ban đầu (M)
1.5 Mức độ an toàn của hệ mật ElGamal
Hệ mật ElGamal sẽ bị phá vỡ nếu khóa mật x hoặc
k có thể tính được Để tính được x hoặc k, cần phải
giải một trong hai bài toán logarit rời rạc, chẳng hạn:
p
g
y= xmod hay: R=g kmodp
Tuy nhiên, trong thực tế việc giải bài toán logarit
rời rạc này là việc khó [4]
Một điểm yếu có thể bị tấn công trong hệ mã
ElGamal là khi giá trị k bị sử dụng lại Thực vậy, giả
sử cùng một giá trị k được sử dụng để mã hóa hai bản
tin M và M* được các bản mã tương ứng là ( C, R )
M g
M
C
C
k x k
Nghĩa là, chỉ cần biết nội dung của một trong hai
bản tin M hoặc M* thì sẽ dễ dàng biết được nội dung
của bản tin kia
Một vấn đề được đặt ra không chỉ với hệ ElGamal
nói riêng mà với các hệ mật khóa công khai nói chung
là: Giả sử một người gửi A mã hóa bản tin M được
bản mã C và gửi C cho người nhận B Sẽ có các tình huống xảy ra như sau:
- Người nhận B không thể biết chắc chắn rằng bản tin
nhận được (M) có nguồn gốc từ người gửi A
- Giả sử bản mã C đã bị thay đổi thành C* và người nhận giải mã được bản tin M* Trường hợp này, người nhận không thể khẳng định được nội dung bản tin do A gửi đi đã bị thay đổi
Thuật toán mật mã được đề xuất, phát triển trên cơ
sở hệ mật ElGamal sau đây sẽ là giải pháp cho các vấn
mãn: 1<α<(p−1)
3- Khóa bí mật x là một giá trị được chọn ngẫu
nhiên trong khoảng: 1<x<q Khóa công khai
y được tính theo công thức:
y= g xmodp 4- Lựa chọn hàm băm (hash) H:{ }0,1*֏Z q (Ví dụ: SHA-1, MD5)
2.2 Thuật toán mã hóa
Giả sử người gửi A có khóa bí mật là x a, khóa công
khai tương ứng là y a; người nhận B có khóa bí mật là
x b và khóa công khai là y b Để gửi bản tin M cho B, A
thực hiện các bước như sau:
1- Chọn số ngẫu nhiên k thỏa mãn: 1<k<q
2- Tính giá trị R theo công thức:
R=g kmodp (1)
Trang 22Tương tự thuật toán Elgamal, thuật toán mật mã
mới đề xuất có thể bị tấn công khi sử dụng lại giá trị
của k Có thể khắc phục yếu điểm trên nếu sử dụng giá
trị H(x||M) thay cho k, với H(.) là hàm băm kháng va
chạm (chẳng hạn SHA-1, MD5, ) và “||” là toán tử
nối/xáo trộn xâu Khi đó thuật toán mã hóa sẽ được
mô tả lại như sau:
1- Tính giá trị R theo công thức:
kiểm tra nguồn gốc cũng như tính toàn vẹn của bản tin
ban đầu (M) như sau:
1- Tính giá trị R theo công thức:
R = g S ×(y a)Emodp (5)
2- Khôi phục bản tin ban đầu theo công thức:
mod)
Trường hợp sử dụng giá trị H(x||M) thay cho k,
thuật toán giải mã vẫn được giữ nguyên
2.4 Tính đúng đắn của thuật toán mới đề xuất
Tính đúng đắn của hệ mật mới đề xuất là sự phù hợp giữa thuật toán giải mã với thuật toán mã hóa
Điều cần chứng minh ở đây là:
E= ( || )mod ,S= [H(x a||M) −x a×E] modq,
p y
M
C= ×( b)H(x a||M)mod
Nếu: R=(g)S×(y a)Emodp, M C R x b p
mod)( −
×
q M R H
E = ( || )mod thì: M =M và E =E Chứng minh:
Thật vậy, thay (3) vào (5) ta có:
R
p y
y R
p y
g g
p y
g
p y
g R
E a E a
E a E x k
E a E x k
E a S
a a
(8)
Từ (8) suy ra:
p g
R = kmod (9) Thay (4) và (9) vào (6) ta có:
M p y
y M
p p g
p y
M
p R
C M
k b k b
x k
k b x
b b
mod{
mod)(
q M R H E
=
=
=
mod)
||
(
mod)
||
(
Đây là điều cần chứng minh
Trang 232.5 Mức độ an toàn của thuật toán mới đề xuất
Mức độ an toàn của thuật toán mới đề xuất được
đánh giá bằng:
1) Khả năng chống thám mã
2) Khả năng chống giả mạo về nguồn gốc và nội
dung của bản tin
Về khả năng chống thám mã, có thể thấy rằng mức
độ an toàn của thuật toán mật mã mới đề xuất là hoàn
toàn tương đương với thuật toán Elgamal Hệ mật sẽ
bị phá vỡ nếu khóa mật x có thể tính được từ việc giải
bài toán logarit rời rac như: y= g xmodp
hay:S=[H(x||M)−x×E]modq
Khả năng chống giả mạo về nguồn gốc và nội dung
bản tin phụ thuộc vào mức độ khó của việc tạo ra các
cặp ( C , E , S ) giả mạo thỏa mãn điều kiện kiểm tra
của thuật toán giải mã: E = E Giả sử cặp ( * *)
, S
là giả mạo, thế thì nó cần phải thỏa mãn:
q M
p y
g
H
E* ≡ (( S* × E*mod ) || ) mod
Với H(.) là hàm băm kháng va chạm, hơn nữa nội
dung bản tin M cũng chưa biết thì việc chọn được cặp
, S
E giả mạo là hầu không thể thực hiện được
III KẾT LUẬN
Bài báo đề xuất một thuật toán mật mã khóa công
khai được phát triển dựa trên hệ mật ElGamal có khả
năng đồng thời:
1) Bảo mật thông tin
2) Xác thực về nguồn gốc thông tin
3) Xác thực về tính toàn vẹn của thông tin
Hơn nữa, mặc dù bản mã được tạo ra bởi thuật toán
mới đề xuất bao gồm 3 thành phần (C,E,S) nhưng độ
dài của nó không lớn hơn độ dài bản mã 2 thành phần
(C,R) mà thuật toán ElGamal tạo ra
Giả sử |p| = 512 bit, |q| = 160 bit khi đó độ dài bản
mã do thuật toán ElGamal tạo ra là: |C| + |R| = 512 bit
+ 512 bit = 1024 bit, còn độ dài bản mã do thuật toán
mới đề xuất tạo ra là: |C| + |E| + |S| = 512 bit + 160 bit
+ 160 bit = 832 bit
Những phân tích về mức độ an toàn cho thấy khả năng ứng dụng thuật toán mới đề xuất trong thực tế là hoàn toàn có thể
TÀI LIỆU THAM KHẢO
[1] T ELGAMAL A public key cryptosystem and a
signature scheme based on discrete logarithms IEEE
Transactions on Information Theory 1985, Vol IT-31,
No 4 pp.469–472
[2] National Institute of Standards and Technology, NIST FIPS PUB 186-3 Digital Signature Standard,
U.S Department of Commerce,1994
[3] GOST R 34.10-94 Russian Federation Standard
Information Technology Cryptographic data Security Produce and check procedures of Electronic Digital Signature based on Asymmetric Cryptographic Algorithm Government Committee
of the Russia for Standards, 1994 (in Russian)
[4] D.R STINSON, CRYPTOGRAPHY, Theory and
Lĩnh vực nghiên cứu: An toàn và bảo mật thông tin,
An ninh mạng máy tính
Email: luuhongdung@gmail.com
Trang 24Abstract: Collaborative filtering is a technique to
predict the utility of items for a particular user by
exploiting the behavior patterns of a group of users
with similar preferences This method has been widely
successful in many e-commerce systems In this paper,
we present an effective collaborative filtering method
based on general bipartite graph representation The
weighted bipartite graph representation is suitable for
all of the real current data sets of collaborative
filtering The prediction method is solved by the basic
search problem on the graph that can be easy to
implement for the real applications Specially, the
model tackled the effect of the sparsity problem of
collaborative filtering by expanding search length
from the user node to the item node By this way, some
users or items can not be detemined by the
correlations but can be computed by the graph model
Experimental results on the real data sets show that
the proposed method improve significantly prediction
quality for collaborative filtering
I PHÁT BIỂU BÀI TOÁN LỌC CỘNG TÁC
Cho tập hợp hữu hạn U = {u1, u2,…, uN} là tập
gồm N người dùng, P = {p1, p2,…, pM} là tập gồm M
sản phẩm Mỗi sản phẩm px∈P có thể là hàng hóa,
phim, ảnh, tạp chí, tài liệu, sách, báo, dịch vụ hoặc bất
kỳ dạng thông tin nào mà người dùng cần đến Để
thuận tiện trong trình bày, ta viết px∈P ngắn gọn thành
x∈P; và ui∈U là i∈U
Mối quan hệ giữa tập người dùng U và tập sản
phẩm P được biểu diễn thông qua ma trận đánh giá
R = (rix), i = 1 N, x = 1 M Mỗi giá trị rix biểu diễn
đánh giá của người dùng i∈U cho sản phẩm x∈P Giá trị r ix có thể được thu thập trực tiếp bằng cách hỏi ý kiến người dùng hoặc thu thập gián tiếp thông qua cơ
chế phản hồi của người dùng Giá trị rix = ∅ được hiểu
người dùng i chưa đánh giá hoặc chưa bao giờ biết đến sản phẩm x
Tiếp đến ta ký hiệu, Pi ⊆P là tập các sản phẩm
được đánh giá bởi người dùng i∈U và Ux⊆U là tập các người dùng đã đánh giá sản phẩm x∈ P Với một người dùng cần được tư vấn a∈U (được gọi là người dùng
hiện thời, hay người dùng tích cực), bài toán lọc cộng
tác là dự đoán đánh giá của người dùng a đối với những mặt hàng x∈(P\Pa), trên cơ sở đó tư vấn cho
người dùng a những sản phẩm được đánh giá cao Bảng 1 thể hiện một ví dụ với ma trận đánh giá R
= (rij) trong hệ gồm 5 người dùng U = {u1, u2, u3, u4,
u5} và 7 sản phẩm P = {p1, p2, p3, p4, p5, p6, p7,} Mỗi người dùng đều đưa ra các đánh giá của mình về các sản phẩm theo thang bậc {1,2,3,4,5} Đối với tập dữ
liệu MovieLens [11], rix = 5 được hiểu là người dùng i
đánh giá phim x ở mức độ “rất tốt”; rix = 4 được hiểu
là người dùng i đánh giá “tốt”; rix = 3 được hiểu là người dùng i đánh giá phim x ở mức độ “bình thường”; rix = 2 được hiểu là người dùng i đánh giá phim x ở mức độ “kém”; rix = 1 được hiểu là người dùng i đánh giá phim x ở mức độ “rất kém” Giá trị
rij=∅ được hiểu là người dùng ui chưa đánh giá hoặc
chưa bao giờ biết đến sản phẩm pj Các ô được đánh dấu ‘?’ thể hiện giá trị hệ thống cần dự đoán cho người
dùng u5
Một phương pháp lọc cộng tác dựa trên mô hình
đồ thị hai phía
A Collaborative Filtering Method Based on Bipartite Graph Model
Mai Thị Như và Nguyễn Duy Phương
Trang 25trên mô hình đồ thị tổng quát và Lọc cộng tác dựa trên
mô hình đồ thị hai phía [3,4,6,7] Để thuận tiện cho
việc trình bày mô hình đề xuất, chúng tôi tóm tắt lại
những nghiên cứu về mô hình đồ thị hai phía cho lọc
cộng tác của Huang và các cộng sự [3,4]
Trong mô hình này, Huang xem xét bài toán lọc
cộng tác như bài toán tìm kiếm trên đồ thị hai phía,
một phía là tập người dùng U, phía còn lại là tập sản
phẩm P Cạnh nối giữa người dùng i∈ U đến sản phẩm
x∈P được thiết lập nếu người dùng i đánh giá “tốt”
hoặc “rất tốt” sản phẩm x Ví dụ với ma trận đánh giá
được cho trong Bảng 1, các giá trị đánh giá rix =4, rix =
5 sẽ được biến đổi thành 1, những giá trị còn lại được
biến đổi thành 0 Khi đó, ma trận kề biểu diễn đồ thị
hai phía được thể hiện trong Bảng 2, đồ thị hai phía
tương ứng theo biểu diễn được thể hiện trong Hình 1
Bảng 2 Ma trận kề biểu diễn đồ thị hai phía
Hình 1 Đồ thị hai phía cho lọc cộng tác
Phương pháp dự đoán trên đồ thị được thực hiện bằng thuật toán lan truyền mạng để tìm ra số lượng
đường đi độ dài L từ đỉnh người dùng i∈U đến đỉnh sản phẩm x∈P Những sản phẩm x∈P có số lượng đường đi nhiều nhất đến người dùng i∈U sẽ được
dùng để tư vấn cho người dùng này [3]
Với phương pháp biểu diễn và dự đoán nêu trên, chúng tôi đã tiến hành kiểm nghiệm trên các bộ dữ liệu thực và nhận thấy một số những hạn chế dưới đây Thứ nhất, biểu diễn của Huang chỉ quan tâm đến
các giá trị đánh giá “tốt” hoặc “rất tốt” và bỏ qua các giá trị đánh giá “kém” hoặc “rất kém” Đối với các hệ
thống lọc cộng tác thực tế, mức đánh giá của người dùng được chia thành nhiều thang bậc khác nhau (tập
dữ liệu MovieLens có 5 mức đánh giá, tập BookCrossing có 10 mức đánh giá) [11,12] Chính vì vậy, biểu diễn này chưa thực sự phù hợp với các hệ thống lọc cộng tác hiện nay Mặt khác, các phương pháp dự đoán của lọc cộng tác được thực hiện dựa trên thói quen sử dụng sản phẩm của cộng đồng người dùng có cùng sở thích, do vậy các giá trị đánh giá
“tốt” hay “không tốt” đều phản ánh thói quen sử dụng
sản phẩm của người dùng Việc bỏ qua các giá trị
“không tốt” sẽ ảnh hưởng rất nhiều đến chất lượng dự
đoán thói quen sử dụng sản phẩm của người dùng
Thứ hai, đối với các hệ thống lọc cộng tác số
lượng giá trị đánh giá rix=∅ nhiều hơn rất nhiều lần số
lượng giá trị đánh giá rix≠∅ Vì vậy, việc bỏ qua các
giá trị “không tốt” khiến cho vấn đề dữ liệu thưa của
lọc cộng tác trở nên trầm trọng hơn Điều này có thể
p1
u2 u3 u4 u5
u1
Trang 26thấy rõ trong Bảng 2, các giá trị đánh giá rix ≤3 được
biến đổi thành 0 đã bỏ đi một lượng đáng kể các nhãn
phân loại biết trước trong quá trình huấn luyện
Cuối cùng, phương pháp dự đoán được thực hiện
dựa vào số lượng đường đi có độ dài L từ đỉnh người
dùng đến đỉnh sản phẩm Các đường đi được xem có
trọng số giống nhau là 1 chưa phản ánh đúng hiện
trạng của các bộ dữ liệu thực (tập dữ liệu MovieLens
có 5 mức đánh giá [11], tập dữ liệu BookCrossing có
10 mức đánh giá [12]) Chính vì vậy, mô hình chỉ cho
lại kết quả thử nghiệm tốt trên các tập dữ liệu có hai
mức đánh giá (0, 1) Đối với các tập dữ liệu có nhiều
mức đánh giá, kết quả dự đoán của mô hình sẽ cho độ
chính xác không cao Tóm lại, mô hình do Huang đề
xuất chỉ phù hợp với các tập dữ liệu về sách có hai
mức đánh giá “tốt” hoặc “không tốt”
Để khắc phục được những hạn chế nêu trên, trong
mục tiếp theo chúng tôi đề xuất một mô hình đồ thị hai
phía tổng quát cho lọc cộng tác Trong đó, phương
pháp biểu diễn được thực hiện trên đồ thị trọng số phù
hợp với tất cả bộ dữ liệu thử nghiệm cho lọc cộng tác
Phương pháp dự đoán được thực hiện dựa trên việc
tính toán trọng số của tất cả các đường đi từ đỉnh
người dùng đến đỉnh sản phẩm cho phép ta cải thiện
được chất lượng dự đoán
III MÔ HÌNH ĐỒ THỊ HAI PHÍA ĐỀ XUẤT
Mô hình đồ thị hai phía có trọng số đề xuất mở
rộng phương pháp tiếp cận trong [1,3,4] ở hai điểm
chính: Phương pháp biểu diễn đồ thị và phương pháp
dự đoán trên đồ thị Phương pháp được tiến hành như
sau
III.1 Phương pháp biểu diễn đồ thị
Không hạn chế tính tổng quát của bài toán, ta có
thể giả sử rix = +v nếu người dùng i đánh giá sản
Đối với các tập dữ liệu thực của lọc cộng tác, ta dễ
dàng chuyển đổi biểu diễn thành ma trận đánh giá theo công thức (1) bằng cách chọn một giá trị ngưỡng θ
Những giá trị rix>θ được dịch chuyển thành các giá trị dương, ngược lại chuyển đổi thành giá trị âm Ví dụ với ma trận đánh giá được cho trong Bảng 1, chọn θ=3, khi đó các giá trị rix= 4, 5 biến đổi thành 0.1, 0.2,
các giá trị rix = 2, 1 biến đổi thành -0.1, -0.2, rix=3 biến
đổi thành ∅ như trong Bảng 3
Với cách chuyển đổi biểu diễn theo công thức (1), vấn đề lọc cộng tác được biểu diễn như một đồ thị hai
phía (Ký hiệu là đồ thị G) Một phía là tập người dùng
U, phía còn lại là tập các sản phẩm P Trong đó, cạnh nối giữa đỉnh phía người dùng i∈U với đỉnh phía sản phẩm x∈P được thiết lập nếu rix≠∅ Những giá trị
đánh giá có rix >0 biểu diễn người dùng x∈U đánh giá sản phẩm i∈P “tốt” ở mức độ rix Những giá trị đánh
giá có rix<0 biểu diễn người dùng x∈U đánh giá sản phẩm i∈P “không tốt” ở mức độ rix Trọng số của mỗi cạnh trên đồ thị được xác định theo công thức:
r
Ví dụ, với hệ lọc cộng tác được cho trong Bảng 3 thì ta sẽ có ma trận trọng số của đồ thị hai phía như trong Bảng 4, đồ thị hai phía tương ứng được thể hiện
trong Hình 2
Bảng 3 Ma trận đánh giá của lọc cộng tác
Người dùng
Trang 27Bảng 4 Ma trận trọng số của đồ thị hai phía
Hình 2 Đồ thị hai phía tổng quát cho lọc cộng tác
So với phương pháp biểu diễn trong [1,3,4], mô
hình đề xuất giữ lại tất cả các giá trị đánh giá của
người dùng đối với sản phẩm Ví dụ, với tập dữ liệu
MovieLens biểu diễn quan điểm của người dùng đối
với các phim theo 5 mức đánh giá từ 1 đến 5 Ta có
thể dịch chuyển các giá trị rix = 5 thành 0.2, rix = 4
thành 0.1, rix =3 thành 0.0, rix=2 thành -0.1, rix = 1
thành -0.2 Với tập dữ liệu BookCrossing biểu diễn
quan điểm của người dùng đối với các sản phẩm theo
10 mức đánh giá từ 0.1, 0.2, 0.3, 0.4, 0.5,…, 1.0 Việc
chuyển đổi cũng được tiến hành tương tự như trên
bằng cách biến đổi các giá trị rix>0.5 (0.6, 0.7, 0.8, 0.9,
1.0) thành các giá trị dương (0.1, 0.2, 0.3, 0.4, 0.5)
Các giá trị rix≤0.5 (0.5, 0.4, 0.3, 0.2, 0.1) được biến
đổi thành các giá trị âm (-0.1, -0.2, -0.3, -0.4, -0.5)
Các bộ dữ liệu khác cũng được biến đổi tương tự tùy
thuộc vào các mức đánh giá khác nhau của người
dùng Trong mục tiếp theo chúng tôi trình bày về
phương pháp dự đoán trên đồ thị hai phía có trọng số
III 2 Phương pháp dự đoán
Khác với các cách tiếp cận trong [3,4], mô hình đề xuất xem xét vấn đề lọc cộng tác như bài toán tìm kiếm trên đồ thị hai phía có trọng số Do vậy, phương pháp dự đoán của mô hình phụ thuộc vào tổng trọng
số của các đường đi có độ dài L từ đỉnh người dùng
đến đỉnh sản phẩm Những sản phẩm nào có tổng
trọng số các đường đi từ đỉnh người dùng đến đỉnh sản phẩm lớn nhất sẽ được dùng để tư vấn cho người dùng hiện thời
Trong [3,4], Huang xem xét trọng số tất cả các
đường đi có độ dài L từ đỉnh người dùng đến đỉnh sản
phẩm đều giống nhau và có giá trị 1 Trong mô hình này, chúng tôi xem xét mỗi đường đi độ dài L từ đỉnh
người dùng đến đỉnh sản phẩm có trọng số khác nhau
Điều này hoàn toàn phù hợp với các bộ dữ liệu thực có
nhiều mức đánh giá khác nhau
Một điểm khác biệt quan trọng với các mô hình đề
xuất trong [3,4] là trọng số các đường đi độ dài L từ
đỉnh người dùng đến đỉnh sản phẩm có thể nhận giá trị
dương hoặc giá trị âm Các đường đi có trọng số
dương phản ánh mức độ đánh giá sản phẩm “tốt” của
người dùng Các đường đi có trọng số âm phản ánh
mức độ đánh giá sản phẩm “không tốt” của người
dùng
Để thực hiện ý tưởng nêu trên, chúng tôi tiến hành
tách đồ thị hai phía tổng quát ban đầu thành hai đồ thị con: Đồ thị hai phía với các cạnh có trọng số dương
(ký hiệu là G+) và đồ thị hai phía với các cạnh có trọng
số âm (ký hiệu là G-) Ứng với sản phẩm x∈P chưa được người dùng i∈U đánh giá, quá trình ước lượng mức độ “tốt” của sản phẩm x đối với người dùng i
được thực hiện trên đồ thị G+
bằng cách tính tổng
trọng số tất cả các đường đi độ dài L từ x đến i Tương
tự như vậy, quá trình ước lượng mức độ “không tốt” của sản phẩm x đối với người dùng i được thực hiện trên đồ thị G- bằng cách tính tổng trọng số tất cả các
đường đi độ dài L từ x đến i Hai giá trị này được kết
hợp lại sẽ cho ta quan điểm chính xác của người dùng
x đối với sản phẩm i
+0.2 +0.1 -0.2 +0.1 +0.2 -0.1 -0.1 -0.2 +0.1 -0.2 +0.2 +0.1 -0.1 -0.1 -0.2 -0.1
Trang 28Gọi W+ =( )w ix+ là ma trận trọng số biểu diễn đồ thị
w
w (4)
Vì G + , G - là đồ thị hai phía nên mỗi đường đi độ
dài L từ đỉnh người dùng i∈U đến đỉnh sản phẩm x∈P
đều có độ dài lẻ (L=1,3, 5, 7, ) Trọng số đường đi độ
dài L trên đồ thị G + , G - được tính bằng tích các trọng
số w , ix+ w ix− Do 0≤ + ≤1;−1≤ − ≤0
ix
có độ dài L lớn sẽ có trọng số thấp, đường đi độ dài L
nhỏ sẽ có trọng số cao Trọng số đường đi từ đỉnh
người dùng đến đỉnh sản phẩm trên đồ thị G+ luôn là
một số dương, trên đồ thị G- luôn là một số âm Ví dụ
trên Hình 2, đường đi u5-p2-u2-p4 có trọng số là w +54 =
0.1×0.2×0.2 = 0.004; u5-p2-u3-p7 có trọng số là w57 =
0.1×0.1×0.1= 0.001 Ngược lại, đường đi u1-p3-u2-p5
có trọng số là w -15 = (-0.2)×(-0.1)×(-0.2) = -0.004; u1
-p3-u2-p7 có trọng số là w17 = (-0.2)× (-0.1)×(0.1) =
-0.002.Bằng cách này, ta có thể phân biệt được mức độ
quan trọng của mỗi đường đi khác nhau trong quá
+
+
2
T ix ix
ix
L
ix
w w w
ix
ix L
ix
w w w
dùng i suy diễn trên đồ thị G- Sau khi tính toán ( )L
ix
w+ ,
( )L ix
w− các giá trị này sẽ được tổ hợp lại theo công thức (7) để đưa ra kết quả dự đoán quan điểm của người dùng i đối với sản phẩm x
ix L
ix L
w =α − + 1−α + (7) Trong công thức (7), α∈[0,1] là hằng số dùng để
điều chỉnh mức độ ưu tiên cho mỗi loại đường đi Nếu
ưu tiên cho các đường đi có trọng số dương ta chọn α
gần với 0 Nếu ưu tiên cho các đường đi có trọng số
âm ta chọn α gần với 1 Nếu lấy α =0 mô hình trở lại
đúng mô hình của Huang [4] Thuật toán dự đoán trên
mô hình đồ thị hai phía có trọng số được mô tả chi tiết trong Hình 3
Bước 1 (Khởi tạo):
• Tạo lập ma trận trọng số W = (wix)
• Tạo lập ma trận (w ix+) biểu diễn G+
• Tạo lập ma trận (w ix+) biểu diễn G-
Bước 2 (Tính toán trên đồ thị G +):
2
ix T ix L
ix
ix L ix
w w w
w w
Bước 3 (Tính toán trên đồ thị G -):
ix L ix
w w w
w w
Bước 4 (Kết hợp trọng số trên cả hai đồ thị):
ix L
ix L
w =α − + 1−α +
Bước 5 (Sắp xếp theo thứ tự giảm dần của w L ix)
Bước 6 (Sinh ra tư vấn cho người dùng i)
<Chọn K sản phẩm có w ix >0 có giá trị lớn nhất tư vấn cho người dùng i>
Hình 3 Thuật toán dự đoán trên đồ thị hai phía
nếu L=1 nếu L=3,5,7,
nếu L=1 nếu L=3,5,7,
nếu L=1 nếu L=3,5,7,
Trang 29Độ phức tạp của thuật toán phụ thuộc vào L phép
toán nhân ma trận cấp N×M Sử dụng thuật toán nhân
hai ma trận hiệu quả nhất hiện nay của Coppersmith–
Winograd sẽ cho ta độ phức tạp là O(N 2.376)[4] Để
tránh các phép nhân ma trận có kích cỡ lớn, chúng tôi
sử dụng thuật toán lan truyền mạng có độ phức tạp là
O(N.S), trong đó N là số lượng người dùng, S là số
lượng trung bình các giá trị đánh giá khác ∅ của
người dùng [1]
IV THỬ NGHIỆM VÀ ĐÁNH GIÁ
Để thấy rõ hiệu quả của mô hình đề xuất, chúng
tôi thực hiện tiến hành thử nghiệm trên hai bộ dữ liệu
MovieLens [11] và BookCrossing [12] Trong đó, tập
dữ liệu MovieLens được biểu diễn bằng 5 mức đánh
giá, tập dữ liệu BookCrossing được biểu diễn bằng 10
mức đánh giá Sai số dự đoán được ước lượng thông
qua độ chính xác (precision), độ nhạy (recall) và tỉ lệ
F-Measure theo thủ tục được mô tả dưới đây
IV.1 Dữ liệu thử nghiệm
Tập dữ liệu MovieLens gồm 1682 người dùng,
942 phim với trên 100,000 đánh giá, các mức đánh giá
được thiết lập từ 1 đến 5, mức độ thưa thớt dữ liệu
đánh giá là 98.7% Các mức đánh giá 4, 5 được
chuyển đổi thành 0.1, 0.2 Các mức đánh giá 3, 2, 1
được dịch chuyển thành 0.0, -0.1, -0.2
Tập dữ liệu BookCrossing là cơ sở dữ liệu bao
gồm 278,858 người dùng với 1,031,175 đánh giá cho
271,065 đầu sách Các mức đánh giá được thiết lập từ
0 đến 1.0, trung bình số lượng sách người dùng chưa
đánh giá là 99.1% Các mức đánh giá từ 0.6 đến 1.0
được dịch chuyển thành 0.1 đến 0.5 theo thứ tự Các
mức đánh giá từ 0.5 đến 0.0 được dịch chuyển thành
0.0, -0.1,…,-0.5 theo thứ tự
Việc chuyển đổi dữ liệu theo ngưỡng θ=3 đối với
tập dữ liệu MovieLans và θ=5 đối với bộ dữ liệu
BookCrossing là cách làm phổ biến của các tác giả
trước đây trong khi xem xét bài toán lọc cộng tác như
bài toán phân loại hai lớp (-1,1)[1, 3, 4, 9] Trong mô
hình này, chúng tôi xem xét bài toán lọc cộng tác như
bài toán phân loại nhiều lớp Mỗi lớp thuộc một nhóm
nhãn phân loại khác nhau trong khoảng [-1,1] Chúng tôi cũng không chọn giá trị nhãn phân loại cực đại (1) hoặc cực tiểu (-1) vì phương pháp dự đoán chỉ quan tâm đến giá trị dự đoán lớn hay bé trong quá trình huấn luyện Do vậy, sử dụng các giá trị nhãn phân loại nhỏ hơn 1 tiện lợi và chính xác hơn rất nhiều trong khi
so sánh kết quả dự đoán
VI.2 Phương pháp thử nghiệm
Trước tiên, toàn bộ dữ liệu thử nghiệm được chia
thành hai phần, một phần Utr được sử dụng làm dữ liệu
huấn luyện, phần còn lại Ute được sử dụng để kiểm tra
Tập Utr chứa 75% đánh giá và tập Ute chứa 25% đánh giá Dữ liệu huấn luyện được sử dụng để xây dựng mô hình theo thuật toán mô tả ở trên Với mỗi người dùng
i thuộc tập dữ liệu kiểm tra, các đánh giá (đã có) của người dùng được chia làm hai phần Oi và Pi Oi được
coi là đã biết, trong khi đó Pi là đánh giá cần dự đoán
từ dữ liệu huấn luyện và Oi Phương pháp ước lượng sai số dự đoán cho lọc cộng tác được sử dụng phổ biến là độ đo trung bình sai
số tuyệt đối (MAE) [8] Tuy nhiên, độ đo này chỉ được
áp dụng với các phương pháp dự đoán có cùng miền xác định với giá trị đánh giá Chính vì vậy, trong kiểm nghiệm này chúng tôi sử dụng phương pháp ước lượng
sai số dự đoán thông qua độ chính xác (precision), độ nhạy (recall) và F-Measure xác định theo công thức
(8), (9), (10) Đây cũng là một phương pháp kiểm nghiệm được nhiều tác giả sử dụng cho lọc cộng tác [8]
r
rs N
Ở đây, N là tổng số các đánh giá người dùng trong
tập dữ liệu kiểm tra trong đó có Nr là số các sản phẩm
người dùng đã đánh giá thích hợp, Nrs là số các sản
phẩm phương pháp lọc dự đoán chính xác Giá trị P, R, F_Measure càng lớn độ chính xác của phương pháp
càng cao
Trang 30IV.3 Kết quả thử nghiệm
Để đánh giá hiệu quả của phương pháp đề xuất (ký
hiệu là Bipart-Graph), chúng tôi tiến hành hai thử
nghiệm trên các tập dữ liệu nêu trên Thử nghiệm thứ
nhất nhằm đánh giá ảnh hưởng của các đánh giá có
trọng số âm và độ dài đường đi L đối với thói quen sử
dụng sản phẩm của người dùng Thử nghiệm này được
so sánh với mô hình đồ thị hai phía của Huang (Ký hiệu
là Huang-Graph[4]) Thử nghiệm thứ hai nhằm đánh
giá kết quả dự đoán so với các phương pháp lọc khác,
đặc biệt là kết quả dự đoán trong trường hợp dữ liệu
thưa
Đối với thử nghiệm thứ nhất, chúng tôi giữ lại tất
cả các đánh giá có trọng số âm và trọng số dương trên
cả hai tập dữ liệu Chọn α =0.5, sau đó thực hiện quá
trình huấn luyện nêu trên theo độ dài đường đi L Kết
quả được chỉ ra trên Hình 4, Bảng 5 cho thấy, khi L
tăng (L=3, 5, 7, 9, 11) giá trị F-Measure của các mô
hình đều tăng Điều đó chứng tỏ việc suy diễn theo độ
dài đường đi trên đồ thị cho phép ta tận dụng được các
mối quan hệ gián tiếp giữa các người dùng khác nhau
để tăng cường vào kết quả dự đoán
Hình 5 Biến đổi của F-Measure với α =0.7
Tiếp đến, chúng tôi chọn α=0.7 cho mô hình đồ thị
đề xuất và thực hiện huấn luyện theo đường đi độ dài L
=3, 5, 7, 9, 11 (Hình 5, Bảng 6) Kết quả cho thấy,
F-Measures của các mô hình đều tăng nhưng mô hình đề xuất cho lại kết quả tốt hơn rất nhiều so với mô hình của Huang [4] Lý do khi α=0.7 kết quả dự đoán của phương pháp được cải thiện hơn vì số lượng các đánh giá dương lớn hơn rất nhiều lần số lượng các đánh giá
âm trong các tập dữ liệu huấn luyện Do vậy, với α =0.5 các đường đi có trọng số âm không ảnh hưởng nhiều
đến các đường đi có trọng số dương Điều đó chứng tỏ, đối với các đánh giá âm ta không được phép bỏ qua mà
còn phải được chú ý đến nó nhiều hơn trong quá trình huấn luyện
Bảng 5 Giá trị của F-Measure với α =0.5
Phương pháp
Độ dài đường đi
Độ dài đường đi
Thử nghiệm thứ hai được thực hiện nhằm so sánh
đánh giá kết quả với các phương pháp: Lọc cộng tác
dựa vào người dùng (User Based) [9], lọc cộng tác dựa vào sản phẩm (Item Based) [2] và lọc cộng tác dựa vào
mô hình đồ thị của Huang Trong đó thử nghiệm này chúng tôi thực hiện với α =0.5, L=11 Độ chính xác, độ nhạy và F-Measure được lấy trung bình từ 10 lần kiểm nghiệm ngẫu nhiên dựa trên các tập dữ liệu kiểm tra dưới đây:
Trang 31• Tập Test1.M, Test1.B (M ký hiệu cho tập tập
MovieLans, B ký hiệu cho tập tập BookCrossing):
Loại bỏ ngẫu nhiên các giá trị đánh giá trong mỗi
tập dữ liệu tương ứng sao cho mỗi người dùng chỉ
còn lại 5 đánh giá biết trước Trường hợp này được
xem là trường hợp dữ liệu rất thưa
• Tập Test2.M, Test2.B: Loại bỏ ngẫu nhiên các giá
trị đánh giá trong mỗi tập dữ liệu tương ứng sao
cho mỗi người dùng chỉ còn lại 10 đánh giá biết
trước Trường hợp này cũng được xem là trường
hợp dữ liệu rất thưa
• Tập Test3.M, Test3.B: Loại bỏ ngẫu nhiên các giá
trị đánh giá sao trong mỗi tập dữ liệu tương ứng
cho mỗi người dùng chỉ còn lại 15 đánh giá biết
trước Trường hợp này được xem là trường hợp dữ
liệu thưa
• Tập Test4.M Test4.B: Loại bỏ ngẫu nhiên các giá
trị đánh giá trong mỗi tập dữ liệu tương ứng sao
cho mỗi người dùng chỉ còn lại ít nhất 20 đánh giá
biết trước Trường hợp này được xem là trường hợp
có tương đối đầy đủ dữ liệu
Bảng 7 Kết quả kiểm nghiệm trên tập MovieLens
Kết quả kiểm nghiệm được trên các tập dữ liệu thể
hiện trong Bảng 7, Bảng 8 cho thấy phương pháp đề
xuất cho lại kết quả dự đoán tốt hơn rất nhiều so với các
phương pháp khác Điều đó có thể lý giải mô hình đề
xuất đã tìm ra và tích hợp được ngữ nghĩa ẩn của các mối quan hệ gián tiếp giữa người dùng và sản phẩm để tăng cường thêm vào kết quả dự đoán Một lợi thế khác cũng cần được nhắc đến là phương pháp tiếp cận của
mô hình khá đơn giản và dễ cài đặt cho các hệ thống lọc cộng tác
Bảng 8 Kết quả kiểm nghiệm trên tập BookCrossing
tỷ lệ F-Measure cao hơn hẳn các phương pháp ItemBased, UserBased và Huang-Graph Điều đó có thể khẳng định, phương pháp biểu diễn và dự đoán của
mô hình đồ thị hai phía có trọng số đề xuất cải thiện
đáng kể chất lượng dự đoán cho lọc cộng tác Ưu điểm
nổi bật của mô hình so với những mô hình trước đây
là thỏa mãn biểu diễn hiện có của tất cả các tâp dữ liệu hiện nay của lọc cộng tác
Phương pháp dự đoán được đưa về bài toán tìm kiếm trên đồ thị có trọng số cho phép ta phân biệt
được mức độ quan trọng của từng loại đường đi bằng