a b c Đ e f g h k l m n o ơ p q r s T u ƣ v x y z (a) A B C Đ E F G H K L M N O Ơ P Q R S T U Ƣ V X Y Z (b)
Các ký tự trong hình đƣợc trình bày ở phơng chữ Times New Roman, kích thƣớc 13. Bảng 4.2 – (a) biểu diễn các ký tự ở dạng kiểu chữ bình thƣờng. Bảng 4.2 – (b) biểu diễn các ký tự ở dạng kiểu in hoa.
Bảng 4.3 – Biểu diễn các ký tự thường có thể nhúng thơng tin bản quyền
(a) (b) (c) (d) Các ký tự trong hình đƣợc trình bày ở phơng chữ Times New Roman, kích thƣớc 13. Bảng 4.3 – (a) biểu diễn các ký tự thƣờng ở dạng kiểu chữ bình thƣờng. Bảng 4.3 – (b) biểu diễn các ký tự thƣờng ở dạng kiểu chữ đậm. Bảng 4.3 – (c) biểu diễn các ký tự thƣờng ở kiểu chữ nghiêng và Bảng 4.3 – (d) biểu diễn các ký tự thƣờng ở dạng kiểu chữ đậm và nghiêng. i j ă â ô ê à á ả ã ằ ắ ẳ ẵ ầ ấ ẩ ẫ è é ẻ ẽ ề ế ể ễ ì í ỉ ĩ ị ó ỏ õ ồ ố ổ ỗ ờ ớ ở ỡ ù ú ủ ũ ừ ứ ử ữ ỳ ý ỷ ỹ i j ă â ô ê à á ả ã ằ ắ ẳ ẵ ầ ấ ẩ ẫ è é ẻ ẽ ề ế ể ễ ì í ỉ ĩ ị ó ỏ õ ồ ố ổ ỗ ờ ớ ở ỡ ù ú ủ ũ ừ ứ ử ữ ỳ ý ỷ ỹ i j ă â ô ê à á ả ã ằ ắ ẳ ẵ ầ ấ ẩ ẫ è é ẻ ẽ ề ế ể ễ ì í ỉ ĩ ị ó ỏ õ ồ ố ổ ỗ ờ ớ ở ỡ ù ú ủ ũ ừ ứ ử ữ ỳ ý ỷ ỹ i j ă â ô ê à á ả ã ằ ắ ẳ ẵ ầ ấ ẩ ẫ è é ẻ ẽ ề ế ể ễ ì í ỉ ĩ ị ó ỏ õ ồ ố ổ ỗ ờ ớ ở ỡ ù ú ủ ũ ừ ứ ử ữ ỳ ý ỷ ỹ
Bảng 4.4 – Biểu diễn các ký tự hoa có thể nhúng thơng tin bản quyền
(a)
(b) (c) (d)
Các ký tự trong hình đƣợc trình bày ở phơng chữ Times New Roman, kích thƣớc 13. Bảng 4.4 – (a) biểu diễn các ký tự hoa ở dạng kiểu chữ bình thƣờng. Bảng 4.4 – (b) biểu diễn các ký tự hoa ở dạng kiểu chữ đậm. Bảng 4.4 – (c) biểu diễn các ký tự hoa ở kiểu chữ nghiêng và Bảng 4.4 – (d) biểu diễn các ký tự hoa ở dạng kiểu chữ đậm và nghiêng.
Mỗi ký tự đƣợc chọn nhúng thông tin đƣợc nhúng 1 bit dữ liệu. Các ký tự có một dấu phía trên nhƣ: i, j, ă, â, ơ, ê, Ă, Â, Ô, Ê, à, á, ả, ã, À, Á, Ả, Ã, … nhúng thông tin dựa vào việc dịch chuyển các dấu ngay phía trên nguyên âm.
Các ký tự có hai dấu phía trên nhƣ: ằ, ắ, ẳ, ẵ, Ằ, Ắ, Ẳ, Ẵ, ầ, ấ, ẩ, ẫ, Ầ, Ấ, Ẩ, Ẫ,... chỉ thay đổi vị trí các dấu sắc, huyền, hỏi, ngã phía trên cùng để nhúng thông tin. Dịch chuyển các dấu lên trên có nghĩa là nhúng bit 1, dịch chuyển các dấu xuống dƣới nhúng bit 0.
4.4 Quy tắc nhúng thông tin
Đặc điểm của chữ viết tiếng Việt là các ký tự khác nhau thì khoảng cách giữa phần dấu tiếng Việt và phần ký tự latin là khác nhau. Sau khi tìm hiểu tơi chia các ký tự đƣợc chọn nhúng thơng tin thành hai nhóm:
Ă Â Ô Ê À Á Ả Ã Ằ Ắ Ẳ Ẵ Ầ Ấ Ẩ Ẫ È É Ẻ Ẽ Ề Ế Ể Ễ Ì Í Ỉ Ĩ Ị Ĩ Ỏ Õ Ồ Ố Ổ Ỗ Ờ Ớ Ở Ỡ Ù Ú Ủ Ũ Ừ Ứ Ử Ữ Ỳ Ý Ỷ Ỹ Ă Â Ô Ê À Á Ả Ã Ằ Ắ Ẳ Ẵ Ầ Ấ Ẩ Ẫ È É Ẻ Ẽ Ề Ế Ể Ễ Ì Í Ỉ Ĩ Ị Ĩ Ỏ Õ Ồ Ố Ổ Ỗ Ờ Ớ Ở Ỡ Ù Ú Ủ Ũ Ừ Ứ Ử Ữ Ỳ Ý Ỷ Ỹ Ă Â Ô Ê À Á Ả Ã Ằ Ắ Ẳ Ẵ Ầ Ấ Ẩ Ẫ È É Ẻ Ẽ Ề Ế Ể Ễ Ì Í Ỉ Ĩ Ị Ĩ Ỏ Õ Ồ Ố Ổ Ỗ Ờ Ớ Ở Ỡ Ù Ú Ủ Ũ Ừ Ứ Ử Ữ Ỳ Ý Ỷ Ỹ Ă Â Ô Ê À Á Ả Ã Ằ Ắ Ẳ Ẵ Ầ Ấ Ẩ Ẫ È É Ẻ Ẽ Ề Ế Ể Ễ Ì Í Ỉ Ĩ Ị Ĩ Ỏ Õ Ồ Ố Ổ Ỗ Ờ Ớ Ở Ỡ Ù Ú Ủ Ũ Ừ Ứ Ử Ữ Ỳ Ý Ỷ Ỹ
+ Nhóm 1: chứa các ký tự có khoảng cách giữa dấu tiếng Việt và ký tự bên dƣới lớn
+ Nhóm 2 chứa các ký tự có khoảng cách giữa dấu và ký tự bên dƣới là nhỏ. Trên bảng 4.5 – biểu diễn toàn bộ các ký tự thuộc nhóm 1. Trên bảng 4.6 – biểu diễn toàn bộ các ký tự thuộc nhóm 2.
Bảng 4.5 – Biểu diễn các ký tự thuộc nhóm 1
i j ă â ô ê à ằ ầ è ề ì ị ồ ờ ù ừ ỳ á ắ ấ é ế í ó ố ớ ú ứ ý ả ẳ ẩ ẻ ể ỉ ỏ ổ ở ủ ử ỷ ã ẵ ẫ ẽ ễ ĩ õ ỗ ỡ ũ ữ ỹ Ă Â Ô Ê À È Ì Ị Ờ Ù Ừ Ỳ Á É Í Ĩ Ớ Ú Ứ Ý Ả Ẻ Ỉ Ỏ Ở Ủ Ử Ỷ Ã Ẽ Ĩ Õ Ỡ Ũ Ữ Ỹ (a) (b)
Bảng 4.6 – Biểu diễn các ký tự thuộc nhóm 2
Ằ Ầ Ề Ồ
Ắ Ấ Ế Ố
Ẳ Ẩ Ể Ổ
Ẵ Ẫ Ễ Ỗ
Bảng điểm tốt nghiệp của học sinh (sinh viên) đƣợc trình bày bằng tiếng Việt. Đặc điểm của tiếng Việt là sử dụng các ký tự latin và có sử dụng thêm các dấu thanh. Khi dịch chuyển các dấu trên ký tự nguyên âm lên hoặc xuống một khoảng cách rất nhỏ thì ngƣời đọc sẽ khơng nghi ngờ bảng điểm bị thay đổi vị trí dấu. Vì vậy bảng điểm tốt nghiệp sẽ đƣợc nhúng thông tin mật thông qua sự dịch chuyển các dấu nằm trên các ký tự nguyên âm.
Khoảng cách dịch chuyển để nhúng tin mật phải làm trung hòa giữa hai yếu tố: đủ nhỏ để dữ liệu đã nhúng tin mật có sự thay đổi khơng đáng kể, đủ lớn để thuận tiện trong việc lấy lại thơng tin đã nhúng.
(a) (b)
Hình 4.2 – Ví dụ nhận dạng bit 1
Nếu h > h’: nhúng bit 0
(a) (b)
Hình 4.3 – Ví dụ nhận dạng bit 0
Đặc điểm của dấu tiếng Việt là khoảng cách giữa các dấu và ký tự nguyên âm là không cố định. Tuỳ thuộc vào các ký tự nguyên âm khác nhau thì khoảng cách này sẽ khác nhau. Đo đó khi nhận dạng phải chú ý tùy trƣờng hợp khác nhau thì khoảng cách xét bit nhúng là 0 hoặc 1 cũng khác nhau.
Ví dụ: khoảng cách h3>h2>h1>h4
(a)
(b)
4.4.1 Lựa chọn định dạng văn bản
Từ các nhận xét về đặc điểm và nhóm phƣơng pháp ta thấy nếu chọn phƣơng pháp watermarking trên văn bản đã định dạng thì sẽ giảm độ phức tạp khi xây dựng phần nhúng thơng tin bí mật. Có rất nhiều định dạng văn bản khác nhau nhƣ: PDF, PostScript, RTF, … Trong các định dạng dữ liệu văn bản, PostScript là một định dạng có nhiều tính năng nổi trội và đƣợc sử dụng rộng rãi. Ngồi ra, PostScript cịn là ngơn ngữ lập trình. PostScript cho phép thao tác biểu diễn độ ký tự giống nhƣ hình ảnh nên rất thuận tiện. Vì vậy, chọn PostScript là định dạng dữ liệu để nhúng thông tin.
4.4.2 Nhúng thơng tin
Trƣờng hợp tổng qt các bảng điểm có thể sử dụng các phơng chữ khác nhau. Trong luận văn này chỉ thực hiện cho các bảng điểm có cách thức trình bày giống nhƣ cách thức trình bày văn bản ban hành và lƣu chuyển trong hệ thống cơ quan Nhà nƣớc, nghĩa là các bảng điểm phải sử dụng phông chữ Times New Roman, kích thƣớc 13, kiểu gõ Unicode, khoảng cách giữa các dòng văn bản (line spacing) 1.5 lines. Lề trái 3.0 cm; lề phải 2.0 cm; lề trên 3.0 cm; dƣới 2.5 cm. Tại Việt Nam, phần mềm sử dụng để soạn thảo văn bản thông dụng nhất là Microsoft Word (gần đây có OpenOffice). Do đó yêu cầu các bảng điểm sẽ để ở định dạng Microsoft Word trƣớc khi nhúng thông tin.
Bảng điểm phải đƣợc chuyển từ định dạng Microsoft Word sang định dạng PostScript trƣớc khi nhúng thông tin. Sau khi nhúng thông tin bảng điểm sẽ trích xuất ra dạng PDF, để cấp phát cho học sinh, các tập tin PDF đƣợc truy xuất bởi phần mềm Acrobat Reader, Foxit reader hay Nitro Pdf, . . là những phần mềm đọc dữ liệu dạng PDF thông dụng nhất trong môi trƣờng internet hiện nay.
Các công việc khi nhúng thông tin vào bảng điểm bao gồm:
- Chuyển bảng điểm từ định dạng Microsoft Word sang định dạng PostScript.
- Tạo thông tin nhúng.
- Chuyển tập tin bảng điểm dạng PostScript sang định dạng PDF. Sau đây là chi tiết cụ thể từng công việc.
4.4.3 Chuyển bảng điểm định dạng từ Microsoft Word sang định dạng PostScript dạng PostScript
Để chuyển bảng điểm từ định dạng Microsoft Word sang định dạng PostScript có rất nhiều phƣơng pháp nhƣ: sử dụng chức năng in ra tập tin (print to file) trong Microsoft Word, sử dụng chƣơng trình Adobe Writer, sử dụng phần mềm DOC to Image Converter, … PostScript là một ngôn ngữ lập trình nên có nhiều cách khác nhau để biểu diễn cùng một dữ liệu. Do đó cùng một dữ liệu dạng Microsoft Word nếu chuyển sang PostScript theo các cách khác nhau thì sẽ thu đƣợc tập tin PostScipt khác nhau.
Trong các phƣơng pháp chuyển đổi định dạng từ Microsoft Word sang PostScript, phƣơng pháp sử dụng phần mềm DOC to Image Converter có mã PostScript sinh ra có đặc điểm dễ dàng nhận dạng các dấu tiếng Việt. Đây chính là đặc điểm thuận lợi để nhúng thơng tin bản quyền. Vì vậy phần mềm DOC to Image Converter đƣợc lựa chọn để chuyển đổi định dạng.
Phần mềm DOC to Image Converter là phần mềm thƣơng mại, bán tại http://www.pdf-convert.com/doc2img/. Sau khi cài đặt phần mềm DOC to Image Converter sử dụng nhƣ là một thanh công cụ (toolbar) trong Microsoft Word. Sử dụng thanh công cụ này để chuyển tập tin Microsoft Word hiện hành sang định dạng PostScript. Hình 4.5 – biểu diễn của thanh công cụ này trong Microsoft Word.
Hình 4.5 – Thanh cơng cụ Doc to Image Converter
4.4.4 Tạo thông tin nhúng
Để tạo thơng tin bí mật, tơi áp dụng các tiêu chuẩn đƣợc quy định trong Quy định hƣớng dẫn áp dụng chuẩn tƣơng hợp về ứng dụng CNTT trong các cơ quan Nhà nƣớc ban hành kèm theo Quyết định số 19/2008/QĐ-BTTTT, ngày
09/04/2008 của Bộ trƣởng Bộ Thơng tin và Truyền thơng. Theo đó, sử dụng giải thuật RSA để tạo chữ ký số cho bảng điểm và chữ ký số này chính là thơng tin bí mật dùng để nhúng vào bảng điểm. Với đầu vào là bảng điểm, sau bƣớc này ta sẽ đƣợc chữ ký điện tử của bảng điểm ban đầu là chuỗi nhị phân. Chuỗi nhị phân này chính là thơng tin bí mật sẽ đƣợc nhúng vào bảng điểm. Quy trình tạo thơng tin bí mật đƣợc thể hiện chi tiết trên hình 4.6.
Các bƣớc để tạo thơng tin bí mật nhƣ sau:
- Áp dụng giải thuật băm đối với nội dung bảng điểm. - Tạo một cặp khóa gồm private key và public key.
- Sử dụng khóa private key của giải thuật RSA để mã hóa message digest thu đƣợc ở bƣớc 1. Kết quả thu đƣợc gọi là digital signature của bảng điểm ban đầu. Đây chính là thơng tin bí mật mà ta dùng để nhúng vào bảng điểm.
Hình 4.6 – Quy trình tạo thơng tin nhúng
Bảng điểm
Hàm băm
Giá trị băm bảng điểm (Message Digest)
Dùng RSA để mã hóa Message Digest
Chữ ký điện tử (Digital Signature)
Khóa bí mật/cơng khai (Private/Public Key)
4.4.5 Nhúng thông tin vào tập tin PostScript
Nhúng thông tin mật vào bảng điểm dựa trên việc dịch chuyển dấu của tiếng việt, trong bảng điểm có những từ khơng nhúng đƣợc bit dữ liệu nào nhƣ: NAI, TIN, do, học, …; có những từ nhúng đƣợc 1 bit (có 1 dấu) nhƣ: TỈNH, ĐỒNG, tên, số, . . . có những từ nhúng đƣợc 2 bit nhƣ: giáo, tiền, điểm, . . . có những từ nhúng đƣợc 3 bit nhƣ: giỏi, ...
PostScript là ngôn ngữ mô tả trang in, nên việc biểu diễn dữ liệu chỉ quan tâm tới vị trí các đối tƣợng đồ họa trong bảng điểm. Trong bảng điểm, các ký tự chính là các đối tƣợng đồ họa. Trong q trình nhúng thơng tin vào nội dung bảng điểm, các bit dữ liệu sẽ đƣợc nhúng liên tục thứ tự từ trái qua phải và từ trên xuống dƣới. Dịch chuyển đƣợc một dấu có nghĩa là nhúng đƣợc 1 bit.
Khoảng cách dịch chuyển các dấu tiếng Việt để nhúng thơng tin phải dung hịa giữa hai yếu tố: đủ nhỏ để nội dung bản điểm đã nhúng thơng tin có sự thay đổi khơng đáng kể nhằm đảm bảo tính thẩm mỹ của bảng điểm, đủ lớn để thuận tiện trong việc lấy lại thông tin đã nhúng. Tập tin PostScript đƣợc sinh ra bởi phần mềm Doc to Image Converter cho phép thay đổi vị trí biểu diễn một đối tƣợng với độ chính xác 1/1200 inch. Qua thử nghiệm tơi thấy sử dụng khoảng cách dịch chuyển các dấu tiếng Việt là 8/1200 inch là hợp lý.
4.4.6 Chuyển bảng điểm định dạng PostScript sang định dạng PDF
Bảng điểm sau khi nhúng bản quyền ở dạng PostScript sẽ đƣợc chuyển sang định dạng PDF để cấp cho ngƣời sử dụng và để lƣu hành, hiện nay file ở định dạng PDF đƣợc sử dụng rộng rãi trong mơi trƣờng internet và có rất nhiều phần mềm hỗ trợ chuyển định dạng PostScript sang định dạng PDF.
4.4.7 Tóm lƣợc quy trình nhúng thơng tin vào bảng điểm
Quy trình nhúng thơng tin vào bảng điểm đƣợc thực hiện theo sơ đồ hình 4.7. Bảng điểm đáp ứng đủ các yêu cầu về phông chữ, cỡ chữ, khoảng cách dòng, khoảng cách lề, sẽ đƣợc chuyển sang định dạng. Sau đó thơng tin bí mật sẽ đƣợc nhúng vào bảng điểm định dạng PostScript. Sau khi nhúng thơng tin bí mật bảng điểm sẽ đƣợc chuyển sang định dạng PDF.
Hình 4.7 – Quy trình nhúng thơng tin vào bảng điểm
4.5 Lấy lại thông tin đã nhúng
4.5.1 Lấy lại thông tin nhúng từ bảng điểm PDF
Khi cần xác thực lại bảng điểm, bảng điểm dạng hình ảnh ban đầu (dạng PDF) sẽ đƣợc xử lý để lấy lại thơng tin bí mật. Thơng tin bí mật đƣợc lấy lại dựa trên vị trí tuyệt đối của các dấu tiếng Việt nên khơng cần có văn bản gốc ban đầu. Bảng điểm (.PS) đã nhúng thông tin mật Chuyển sang PDF Bảng điểm (.PDF) đã nhúng thông tin mật Bảng điểm (.DOC) Bảng điểm (.PS) ENCODER Hàm băm Digital Signature Message Digest RSA Private/Public Key
4.5.2 Tóm lƣợc quy trình lấy lại thơng tin đã nhúng
Hình 4.8 – Quy trình lấy lại thơng tin nhúng
Bảng điểm (.PDF) đã nhúng thông tin mật DECODER Digital Signature Message Digest RSA
Kiểm tra YES NO
Public key / Private key
Chƣơng 5: KẾT QUẢ THỬ NGHIỆM
5.1 Giới thiệu
Để chứng minh cho nhúng tin và lấy lại thông tin nhúng. Tôi đã xây dựng một hệ thống thử nghiệm cho giải pháp này. Hệ thống thử nghiệm của tôi sử dụng cho bảng điểm với những yêu cầu sau:
Phông chữ: Time News Roman. Kích thƣớc: 13.
Kiểu gõ: Unicode.
Lề trái: 3.0cm, lề phải: 2.0cm, trên: 3.0cm, dƣới: 2.5cm. Khoảng cách giữa các dòng trong bảng điểm là: 1.5 lines
Để tạo thơng tin bí mật tơi sử dụng giải thuật băm và thuật giải RSA. Bảng điểm gốc sẽ để ở định dạng Microsoft Word, sau đó đƣợc chuyển dạng định dạng PostScript. Sau khi nhúng thơng tin bí mật, bảng điểm sẽ đƣợc chuyển sang định dạng PDF.
5.2 Xây dựng chƣơng trình 5.2.1 Hashing bảng điểm 5.2.1 Hashing bảng điểm
Bảng điểm ban đầu sẽ đƣợc băm bằng giải thuật MD5. Sau khi thực hiện bƣớc này ta sẽ thu đƣợc giá trị băm của bảng điểm (đây chính là thơng điệp tóm tắt – message digest).
Hình 5.1 – Thể hiện giao diện của phần Hashing
5.2.2 Tạo khóa RSA và mã hóa bảng điểm
Dùng thuật tốn RSA để tạo khóa bí mật và khóa cơng khai. Sử dụng khóa bí mật để mã hóa tóm tắt thơng điệp của bƣớc trên. Kết quả thu đƣợc là một chuỗi thơng điệp đã đƣợc mã hóa, đây chính là chữ ký điện tử (digital signature) của file bảng điểm ban đầu, sau đó chuyển thơng điệp đã đƣợc mã hóa sang chuỗi bít nhị phân.
Hình 5.2 – Thể hiện giao diện phần Encryption
5.2.3 Nhúng thông tin mật vào bảng điểm
Bảng điểm sau khi chuyển từ định dạng Microsoft Word sang định dạng PostScript trƣớc khi nhúng thông tin bằng Encoder. Encoder đọc từng hàng dữ liệu trong tập tin PostScript. Encoder nhận dạng ra các dấu tiếng Việt và dịch chuyển lên/xuống một khoảng cách thích hợp (8/1200) sau đó lƣu kết quả vào tập tin PostScript mới.
Hình 5.3 – Thể hiện giao diện của phần Encoder
5.2.4 Xuất bảng điểm sang PDF
Sau khi đã nhúng thông tin mật, bảng điểm sẽ đƣợc chuyển sang định dạng PDF. Trƣớc khi chuyển định dạng phải cài đặt chƣơng trình GhostScript. Hình 5.4 biểu diễn giao diện phần chuyển đổi định dạng. Thông số GS path là thông số chỉ tới tên tập tin thực thi của GhostScript.
Hình 5.4 – Thể hiện giao diện phần chuyển file ps sang pdf
5.2.5 Lấy lại thông tin bản quyền đã nhúng
Phần lấy lại thông tin bản quyền (decoder) đƣợc xây dựng dựa trên thƣ viện System.Drawing trong C#. System.Drawing cung cấp lớp Bitmap cho phép thao tác trên tập tin hình ảnh có định dạng Bitmap (.bmp), file bảng điểm dạng ps đã nhúng thông tin mật cần phải đƣợc chuyển sang dạng hình ảnh Bitmap