TỔNG QUAN GIẤU TIN VÀ CƠ SỞ TOÁN HỌC
Bài toán giấu tin và vai trò
Giấu tin là một kỹ thuật nhúng thông tin vào trong một nguồn đa phương tiện gọi là đối tượng chứa như: tập tin ảnh, tập tin âm thanh, tập tin văn bản… mà không gây ra sự nhận biết về sự tồn tại của thông tin đã được giấu.
Phương pháp giấu tin được tiến hành theo nhiều cách khác nhau tùy theo từng phương pháp và mục đích Bài toán giấu tin thông thường gồm hai quá trình:
Trích rút tin (giải mã)
Ví dụ 1: Thông điệp cần gửi được mã hóa và nhúng các bit thông tin của vào trong ảnh
Hình 1 Ảnh đã được nhúng thông tin mật
Ví dụ 2: Thông điệp cần gửi được chứa trong một đoạn văn bản, ở đây đối tượng chứa là một đoạn văn bản có nội dung sau:
“Apparently neutral’s protect is thoroughly discounted and ignored. Isman hard hit Blockade issue affects for pretext embargo on by-products, ejecting suets and vegetable oils”
Có thể thấy được nội dung truyền tải là bức điện mật được sử dụng trong chiến tranh thế giới lần thứ 2: “Pershing sails for YN June 1”
Bài toán giấu tin gồm 4 đối tượng chính là:
- Thông tin mật: Là thông tin nhúng vào đối tượng chứa và là thông tin cần được bảo vệ.
- Đối tượng chứa: Đối tượng được sử dụng chứa thông điệp mật.
- Đối tượng đã nhúng: Là đối tượng chứa sau khi nhúng thông tin mật Ví dụ nếu đối tượng chứa là ảnh thì đối tượng đã nhúng là
- Khóa mật: Là khóa tham gia vào quá trình nhúng, tùy theo từng phương pháp mà khóa này có tham gia hay không.
Các yêu cầu trong bài toán giấu tin:
- Tính bền vững: Thể hiện khả năng ít bị thay đổi trước những tấn công từ bên ngoài như thay đổi định dạng, nội dung Hiện nay chưa có phương pháp nào đảm bảo biện pháp này một cách tuyệt đối Với từng ứng dụng cụ thể thì yêu cầu này cũng thể hiện khác nhau.
- Khả năng không bị phát hiện: thể hiện ở việc khó xác định được đối tượng có chứa thông tin mật hay không Hầu hết các phương pháp giấu tin dựa trên đặc điểm của hai hệ tri giác người: thị giác và thính giác Khả năng này còn gọi là khả năng giả dạng.
- Khả năng lưu trữ: Khả năng này thể hiện ở lượng thông tin của thông điệp mật có thể nhúng trong đối tượng chứa Do tính bảo mật nên khả năng lưu trữ luôn bị hạn chế Do đó trong trường hợp muốn ẩn một thông tin có kích thước tương đối lớn ta thường chia nhỏ ra nhiều thành phần và thực hiện nhúng từng phần.
Khả năng không bị phát hiện Tính bền vững
1.1.2 Phân loại các kỹ thuật giấu tin
Kỹ thuật giấu tin nhằm mục đích đảm bảo an toàn và bảo mật thông tin ở hai khía cạnh Một là bảo mật cho giữ liệu được đem giấu (embedded data), chẳng hạn như giấu tin mật: thông tin mật được giấu kỹ trong một đối tượng khác sao cho người khác không phát hiện được (steganography), hai là bảo mật cho chính đối tượng được dùng để giấu tin (host data), chẳng hạn như ứng dụng bảo vệ bản quyền, phát hiện xuyên tạc thông tin (watermarking)
Hai khía cạnh khác nhau này dẫn đến hai khuynh hướng kỹ thuật chủ yếu của giấu tin Khuynh hướng thứ nhất là giấu tin mật (Steganography). Khuynh hướng này tập trung vào các kỹ thuật giấu tin sao cho thông tin giấu được càng nhiều càng tốt và quan trọng là người khác khó phát hiện được một đối tượng có bị giấu tin bên trong hay không Khuynh hướng thứ hai là thuỷ vân số (watermarking) Khuynh hướng thuỷ vân số đánh giấu vào đối tượng nhằm khẳng định bản quyền sở hữu hay phát hiện xuyên tạc thông tin Thuỷ
Hình 2 Các yêu cầu trong bài toán giấu tin
(Steganography) cần giấu đối với các biến đổi thông thường của các tệp dữ liệu môi trường nên được quan tâm nghiên cứu nhiều hơn và thực tế đã có nhiều những kỹ thuật dành cho khuynh hướng này.
Hình 3 Phân loại các kỹ thuật giấu tin
Phạm vi ứng dụng của thủy vân đa dạng hơn, tùy theo mục đích của hệ thủy vân mà người ta lại chia thành các hướng nhỏ như thủy vân dễ vỡ và thủy vân bền vững.
Phương tiện đã chứa tin
Phương tiện chứa tin (ảnh, audio, video, )
1.1.3 Mô hình giấu tin cơ bản
Hình 4 Lược đồ quá trình giấu tin mật
Hình 4 biểu diễn mô hình giấu tin cơ bản Trong đó, phương tiện chứa tin có thể bao gồm: văn bản, ảnh, audio, video… Thông tin cần giấu tùy theo mục đích của người sử dụng Thông tin được giấu vào trong phương tiện chứa tin nhờ một bộ nhúng Bộ nhúng là những chương trình thực hiện theo những thuật toán để giấu tin và được thực hiện với một khóa bí mật giống như trong một số hệ mật mã Đầu ra của quá trình nhúng tin là phương tiện chứa đã được giấu tin Các phương tiện chứa này có thể được phân phối trên mạng.
Phương tiện đã chứa tin Bộ giải mã tin
Phương tiện đã chứa tin (ảnh, audio, video, )
Hình 5 Lược đồ quá trình giải mã tin mật
Hình 5 mô tả quá trình giải mã thông tin đã được giấu trước đó Đầu vào là phương tin có chứa tin giấu, qua một bộ giải mã tin (tương ứng với bộ nhúng tin) cùng với khóa sẽ được thực hiện việc giải mã thông tin Đầu ra của quá trình là phương tiện chứa tin và thông tin mật đã giấu trước đó Trong trường hợp cần thiết, thông tin lấy ra có thể được xử lý, kiểm định và so sánh với thông tin đã giấu ban đầu.
1.1.4 Các ứng dụng của kỹ thuật giấu tin
Bảo vệ bản quyền tác giả: Đây là ứng dụng cơ bản nhất của kỹ thuật thủy vân số Một thông tin nào đó mang ý nghĩa quyền sở hữu tác giả gọi là thủy vân sẽ được nhúng vào trong các sản phẩm, thủy vân đó chỉ một mình chủ sở hữu hợp pháp các sản phẩm đó có và được dùng làm minh chứng cho bản quyền sản phẩm Giả sử có một sản phẩm dữ liệu dạng đa phương tiện như ảnh, âm thanh, video và cần được lưu thông trên mạng Để bảo vệ các sản phẩm chống lại các hành vi lấy cắp hoặc làm nhái cần phải có một kỹ thuật để nhúng thủy vân cần phải đảm bảo không để lại một ảnh hưởng đáng kể nào đến việc cảm nhận sản phẩm Yêu cầu kỹ thuật đối với ứng dụng này là thủy vân phải tồn tại bền vững cùng với sản phẩm, muốn bỏ thủy vân này mà không được phép của người chủ sở hữu thì chỉ có cách là phá hủy sản phẩm[5]
Xác thực thông tin hay phát hiện giả mạo: Một tập các thông tin sẽ được giấu trong phương tiện chứa sau đó được sử dụng để nhận biết xem dữ liệu trên phương tiện gốc đó có bị thay đổi không Các thủy vân nên được ẩn để tránh sự tò mò của kẻ thù, hơn nữa việc làm giả các thủy vân hợp lệ hay xuyên tạc thông tin nguồn cũng cần được xem xét Trong các ứng dụng thực tế người ta mong muốn tìm được vị trí bị xuyên tạc cũng như phân biệt được các thay đổi Yêu cầu chung đối với ứng dụng này là khả năng giấu tin cao và thủy vân không cần bền vững[5]
Giấu vân tay hay dán nhãn: Thủy vân trong những ứng dụng này được sử dụng để nhận diện người gửi hay người nhận của một thông tin nào đó Ví dụ các vân khác nhau sẽ được nhúng vào các bản sao khác nhau của thông tin gốc trước khi chuyển cho nhiều người[11] Với ứng dụng này thì yêu cầu là đảm bảo độ an toàn cao cho các thủy vân tránh sự xóa dấu vết trong khi phân phối
Kiểm soát sao chép: Các thủy vân trong trường hợp này được sử dụng để kiểm soát sao chép đối với các thông tin Các thiết bị phát ra thủy vân thường được gắn sẵn vào trong các hệ thống đọc/ghi Ví dụ như hệ thống quản lý sao chép DVD đã được ứng dụng ở Nhật Các ứng dụng loại này cũng yêu cầu thủy vân phải được đảm bảo an toàn và cũng sử dụng phương pháp phát hiện thủy vân đã giấu mà không cần thông tin gốc.
Giấu tin trong ảnh và các đặc trưng
Giấu tin trong ảnh, hiện nay, là một bộ phận chiếm tỷ lệ lớn nhất trong các chương trình ứng dụng, các phần mềm, hệ thống giấu tin trong dữ liệu đa phương tiện bởi lượng thông tin được trao đổi bằng ảnh là rất lớn Hơn nữa, giấu tin trong ảnh cũng đóng vai trò hết sức quan trọng trong hầu hết các ứng dụng bảo vệ an toàn thông tin như: xác thực thông tin, xác định xuyên tạc thông tin, bảo vệ bản quyền tác giả, điều khiển truy nhập, giấu tin mật … Vì thế mà vấn đề này đã nhận được sự quan tâm rất lớn của các cá nhân, tổ chức, trường đại học, và viện nghiên cứu trên thế giới
Thông tin sẽ được giấu cùng với dữ liệu ảnh nhưng chất lượng ảnh ít thay đổi và ít ai biết được bên trong bức ảnh đó mang những thông tin có ý nghĩa khác Và ngày nay, khi ảnh số đã được sử dụng phổ biến, thì giấu tin đã đem lại rất nhiều những ứng dụng quan trọng trong trên nhiều lĩnh vực trong đời sống xã hội Ví dụ như đối với các nước phát triển, chữ ký tay đã được số hóa và lưu trữ sử dụng như là hồ sơ cá nhân của các dịch vụ ngân hàng và tài chính, nó được dùng để xác nhận các thẻ tín dụng của người tiêu dùng Thêm vào đó, lại có rất nhiều loại thông tin quan trọng cần được bảo mật, chúng rất dễ bị lấy cắp và bị thay đổi bởi các phần mềm chuyên dụng Phát hiện thông tin xuyên tạc đã trở nên vô cùng quan trọng và cấp thiết Một đặc điểm của giấu tin trong ảnh đó là thông tin được giấu trong ảnh một cách vô hình, nó được bởi sau khi giấu tin thì chất lượng ảnh gần như không thay đổi, đặc biệt đối với ảnh màu hay ảnh đa mức xám.
1.2.2 Các đặc trưng cơ bản
Giấu tin trong ảnh chiếm vị trí chủ yếu trong các kỹ thuật giấu tin, vì vậy mà các kỹ thuật giấu tin phần lớn cũng tập trung vào các kỹ thuật giấu tin trong ảnh Các phương tiện chứa khác nhau thì cũng sẽ có các kỹ thuật giấu khác nhau Đối tượng ảnh là một đối tượng dữ liệu tĩnh có nghĩa là dữ liệu tri giác không biến đổi theo thời gian Dữ liệu ảnh có nhiều định dạng, mỗi định dạng có những tính chất khác nhau nên các kỹ thuật giấu tin trong ảnh thường chú ý tới các đặc trưng cơ bản sau đây:
- Phương tiện có chứa dữ liệu tri giác tĩnh
Dữ liệu gốc ở đây là dữ liệu tĩnh, dù đã giấu tin vào trong ảnh hay chưa thì khi ta xem ảnh bằng thị giác, dữ liệu ảnh không thay đổi theo thời gian, điều này khác với dữ liệu âm thanh và dữ liệu băng hình vì khi ta nghe hay xem thì dữ liệu gốc sẽ thay đổi liên tục với tri giác của con người theo các đoạn, các bài hay các ảnh…
- Kỹ thuật giấu phụ thuộc ảnh
Kỹ thuật giấu tin phụ thuộc vào các loại ảnh khác nhau Chẳng hạn đối với ảnh đen trắng, ảnh xám hay ảnh màu ta cũng có những kỹ thuật riêng cho từng loại ảnh có những đặc trưng khác nhau
- Kỹ thuật giấu tin lợi dụng tính chất hệ thống thị giác của con người
Giấu tin trong ảnh ít nhiều cũng gây ra những thay đổi trên dữ liệu ảnh gốc Dữ liệu ảnh được quan sát bằng hệ thống thị giác của con người nên các kỹ thuật giấu tin phải đảm bảo một yêu cầu cơ bản là những thay đổi trên ảnh như thế thì mới đảm bảo được độ an toàn cho thông tin giấu Rất nhiều các kỹ thuật đã lợi dụng các tính chất của hệ thống thị giác để giấu tin chẳng hạn như mắt người cảm nhận về sự biến đổi về độ chói kém hơn sự biến đổi về màu hay cảm nhận của mắt về màu xanh da trời kém nhất trong ba màu cơ bản
- Giấu tin trong ảnh tác động lên dữ liệu ảnh nhưng không thay đổi kích thước ảnh
Các thuật toán thực hiện công việc giấu tin sẽ được thực hiện trên dữ liệu của ảnh Dữ liệu ảnh bao gồm phần header, bảng màu (có thể có) và dữ liệu ảnh Do vậy mà kích thước ảnh trước và sau khi giấu tin là như nhau.
- Đảm bảo chất lượng sau khi giấu tin Đây là một yêu cầu quan trọng đối với giấu tin trong ảnh Sau khi giấu tin bên trong, ảnh phải đảm bảo được yêu cầu không bị biến đổi để có thể bị phát hiện dễ dàng so với ảnh gốc Yêu cầu này dường như khá đơn giản đối với ảnh màu hoặc ảnh xám bởi mỗi điểm ảnh được biểu diễn bởi nhiều bit, nhiều giá trị và khi ta thay đổi một giá trị nhỏ nào đó thì chất lượng ảnh thay đổi không đáng kể, thông tin giấu khó bị phát hiện, nhưng đối với ảnh đen trắng mỗi điểm ảnh chỉ là đen hoặc trắng, và nếu ta biến đổi một bit từ trắng thành đen và ngược lại mà không khéo thì sẽ rất dễ bị phát hiện Do đó, yêu cầu đối với các thuật toán giấu tin trong ảnh màu hay ảnh xám và giấu tin trong ảnh đen trắng là khác nhau Trong khi đối với ảnh màu thì các thuật toán chú trọng vào việc làm sao giấu được càng nhiều thông tin càng tốt thì các thuật toán áp dụng cho ảnh đen trắng lại tập trung vào việc làm thế nào để thông tin giấu khó bị phát hiện nhất [7], [8], [9].
- Thông tin trong ảnh sẽ bị biến đổi nếu có bất cứ biến đổi nào trên ảnh
Vì phương pháp giấu tin trong ảnh dựa trên việc điều chỉnh các giá trị của các bit theo một quy tắc nào đó và khi giải mã sẽ theo các giá trị đó để tìm được thông tin giấu Theo đó, nếu một phép biến đổi nào đó trên ảnh làm thay đổi giá trị của các bit thì sẽ làm cho thông tin giấu bị sai lệch Nhờ đặc điểm này mà giấu tin trong ảnh có tác dụng nhận thực và phát hiện xuyên tạc thông tin[5].
- Vai trò của ảnh gốc khi giải tin
Các kỹ thuật giấu tin phải xác định rõ ràng quá trình lọc ảnh để lấy thông tin giấu cần đến ảnh gốc hay không cần Đa số các kỹ thuật giấu tin mật thì thường không cần ảnh gốc để giải mã Thông tin được giấu trong ảnh sẽ được mang cùng với dữ liệu ảnh, khi giải mã chỉ cần ảnh đã mang thông tin giấu mà không cần dùng đến ảnh gốc để so sánh đối chiếu.
Cơ sở toán học
1.3.1 Lý thuyết đồng dư modulo
Xét vành số nguyên Z. Định nghĩa Hai số nguyên a, b được gọi là đồng dư với nhau theo modulo m với m nguyên dương nếu a b chia hết cho m Ký hiệu a b (mod )m
1.3.1.2 Một số tính chất cơ bản
- Tính phản xạ: Với mọi số nguyên a, ta có: a a (mod )m
- Tính đối xứng: Nếu a b (mod )m thì b a (mod )m
- Tính bắc cầu: Nếu a b (mod )m và b c (mod )m thì a c (mod )m
- Các tính chất mở rộng: a)
1.3.1.3 Định lý nhỏ Fermat Định lý nhỏ fermat Cho p là một số nguyên tố và a là một số nguyên, ta có:
Hệ quả: p là số nguyên tố và a là số nguyên tố sao cho ( , ) 1a p , ta có được:
Ví dụ: Tìm số dư trong phép chia 1532 5 1 cho 9
Vậy: 1532 5 1 4(mod9) Ý nghĩa: Để tìm số dư trong phép chia a cho b (bN * ), thông thường a là một lũy thừa với số mũ vô cùng lớn hay a chứa các lũy thừa như thế Ta có thể làm theo các cách như sau:
Xem xét: a hoặc thành phần của a đồng dư với s theo modulo b.
Nếu 0 s b thì s là số dư trong phép chia a cho b Ngược lại, xét tiếp tính đồng dư của s theo modulo b, rồi lặp lại theo bước vừa rồi.
1.3.2.1 Các định nghĩa Định nghĩa 1 Cho R là một vành [1] M là một nhóm cộng Abel Trang bị cho M phép nhân ngoài với các phần tử của
thỏa mãn các điều kiện:
( ) 1 i a b x ax bx ii a x y ax ay iii ab x a bx iv x x
Khi đó M được gọi là R -module hay module trên vành R.
(1) Mỗi ideal của vành R là một R module.
(2) Mỗi vành cũng là một module trên chính nó.
(3) K là một trường, các K module chính là các không gian vectơ trên chính nó.
(4) Mỗi nhóm Abel cộng M được coi là một Z module với phép nhân ngoài được xác định như sau: Với mỗi x M và nZ thì
nx x x x (tổng gồm n phần tử x) với nZ ; 0 x 0 ; M ( )( ) nx n x nếu nZ
Các ví dụ trên chứng tỏ rằng khái niệm module là một khái niệm tổng quá của các khái niệm: Vành, ideal, không gian vectơ và nhóm Abel. Định nghĩa 2 Mỗi tập con không rỗng N của một R module M được gọi là một R module con của M nếu bản thân N cũng là một R module với hai phép cộng và nhân trong M thu hẹp vào N Khi đó M được gọi là module mở rộng của N.
(1) Với M là R module {0} và M là hai R module con tầm thường của M
(2) Mọi nhóm con của một nhóm Abel M là Z module con của M
(3) M là R module Khi đó với x M ; Tập hợp Rx{ |rx r R } là một
R module con của M (module con xyclic sinh bởi x).
(4) R là vành Vành đa thức [ , ]R x y là một R module Khi đó [ ]R x là một R module con của [ , ]R x y Định nghĩa 3 Cho M là R module và N là một module con của M
Khi đó N là một nhóm con của nhóm Abel ( , )M nên ta có nhóm thương:
M N x x N x M cùng với hai phép toán:
Với r R x x x M ; , , 1 2 Khi đó M N/ cũng là một R module và gọi là module thương của module M theo module N.
(1) R là vành, I là một ideal của R Khi đó /R I là R module và:
(2) n N Z * ; n Z /n Z là Z module. Định nghĩa 4 Cho M là một R module Cái triệt của M được kí hiệu là ( )
Ann M , là tập tất cả các phần tử a R sao cho ax 0, x M
Với I là một ideal của vành R Khi đó cái triệt của R module /R I là ( / )
1.3.2.2 Đồng cấu module Định nghĩa 5 Cho M N, là các R module Một ánh xạ :f M N được gọi là một đồng cấu R module hay ánh xạ tuyến tính nếu nó thỏa mãn hai điều kiện:
(i) f là đơn ánh, toàn ánh, song ánh thì tương ứng đồng cấu là: Đơn cấu, toàn cấu, đẳng cấu.
(ii) Nếu f M ( ) {0 } N thì f được gọi là đồng cấu không kí hiệu là 0.
(iii) Kerf {x M f x | ( ) 0} f 1 (0) : Hạt nhân hay hạch của f
Im f f M( ) { y N | x M y: f x( )} được gọi là ảnh của f
Nếu M N thì f là tự đồng cấu của M Nếu f là đẳng cấu, khi đó M và N là R module đẳng cấu viết là M N.
(i) Cho N là R module con của module M
(iii) Cho N là R module con của module M Xét ánh xạ
, p là một toàn cấu chiếu chính tắc và
Imp M N Ker p N / ; Định nghĩa 6 Cho M và N là các R module Kí hiệu Hom M N R ( , ) là tập gồm tất cả các R đồng cấu từ M vào N Với f g Hom M N , R ( , ) và , a b R
(af bg x)( )af x( )bg x( ) x M Khi đó:
(af bg cx dy)( )c af[ bg x]( )d af[ bg y]( )x y M, ;c d R,
Do đó af bg Hom M N R ( , ).
Tập Hom M N R ( , ) với các phép toán xác định như trên trở thành một R module và gọi là module các đồng cấu từ M đến N. Định lí 1 (Định lí đồng cấu module) Cho f M: N là một đồng cấu các
R module và p M: M Kerf/ là một toàn cấu chính tắc Khi đó tồn tại duy nhất một đơn cấu
Sao cho biểu đồ giao hoán:
Hệ quả 1: Cho f M: N là một đồng cấu các R module Khi đó ta có
M Kerf f Và nếu f là toàn cấu thì M Kerf/ N.
Hệ quả 2: Cho P là module con của N N là module con của M Khi đó ta; có:
Hệ quả 3: Cho M và N là hai module con của cùng một module thì ta có:
1.3.2.3 Tích trực tiếp, tổng trực tiếp các module Định nghĩa 7 Cho I là một tập khác rỗng Giả sử ( M ) I là một họ các
R module chỉ số hóa bởi I Khi đó ta xây dựng hai khái niệm:
là tích Descartes của ( M ) I Ta xây dựng phép cộng trong M và phép nhân ngoài các phần tử của R với phần tử của M : a) ( ) x I y I x y I b) a x ( ) I ax I
Với mọi a R x , I M y ; I M Với hai phép toán này M là một R module.
R module M xây dựng như trên được gọi là tích trực tiếp của họ các R module M I Ta có { I | }
M N I thì ta kí hiệu I M bởi N I (ii) Tổng trực tiếp:
bao gồm tất cả các phần tử của
M với các thành phần bằng 0 hầu hết trừ một số hữu hạn thành phần có thể khác 0.
Tức là I M { x I | x M x ; 0 trừ một số hữu hạn}.
cũng là R module và là module con của I
Nếu M N I thì ta kí hiệu I M
(i) Nếu họ các R module ( M ) I chỉ gồm một số hữu hạn các module thì ta có: I I
(ii) Nếu coi vành R là R module thì tích trực tiếp của nR module R kí hiệu là R n Định nghĩa 8 (Tổng trực tiếp trong) Cho { N } I là một họ tùy ý các module con của R module M Khi đó nếu
được gọi là tổng trực tiếp trong của họ các module con đã cho.
hầu hết trừ một số hữu hạn } Một module con N của M được gọi là hạng tử trực tiếp của M nếu tồn tại một module con của F của M để M N F.
R là vành Khi đó vành đa thức [ , ]R x y là một R module nhận [ ]R x và [ , ] yR x y làm các R module con của nó và ta có
R x y R x yR x y R x và yR x y[ , ] là các hạng tử trực tiếp của [ , ]
N là tổng trực tiếp trong của họ { N } I khi và chỉ khi mỗi phần tử x của nó có thể biểu diễn một cách duy nhất dưới dạng sau:
GIẤU TIN TRÊN ẢNH NHỊ PHÂN
Giới thiệu về giấu tin trong ảnh nhị phân
Đối tượng làm môi trường chứa tin của các thuật toán này là ảnh nhị phân đen trắng dạng bitmap Ảnh nhị phân đen trắng bao gồm các điểm ảnh chỉ có màu trắng hoặc đen (tương ứng với bit 0 hoặc bit 1) Để giấu dữ liệu, ta sẽ tách ma trận điểm ảnh thành các ma trận bit F kích thước m n rời nhau, và giấu tin trên mỗi ma trận đó Bởi vậy các thuật toán chỉ cần quan tâm tới phương pháp giấu dữ liệu trên các ma trận F.
Một số thuật toán giấu tin trên ảnh nhị phân nổi tiếng hiện nay như:Wu-Lee[7], CPT[8], CPTE[10] Các thuật toán này đều dựa trên thao tác biến đổi ma trận bit.
Giấu tin theo khối bit đơn giản
Ý tưởng cơ bản của kỹ thuật này là chia ảnh gốc thành các khối nhỏ và trong mỗi khối nhỏ sẽ giấu một bit thông tin.
Quá trình giấu tin: Với mỗi ma trận bit F kích thước m n và bit mật b đang cần giấu, tiến hành biến đổi F thành F’ để giấu bit b sao cho:
Như vậy, mỗi lần giấu một bit, có thể xảy ra hai trường hợp: SUM(F) mod 2 = b, khi đó ta giữ nguyên khối ảnh F Trường hợp ngược lại chọn ngẫu nhiên một bit trong khối F và tiến hành đảo giá trị của bit này để được khối ảnh mới F’.
Quá trình tách tin: Khi nhận được ảnh giấu tin, việc giải mã tin sẽ được thực hiện theo các bước sau:
- Chia ảnh thành các khối có kích thước giống với kích thước khối đã sử dụng khi thực hiện giấu, đây là khóa để giải mã.
- Với mỗi khối ảnh đã giấu tin F’ được chọn theo thứ tự như quá trình giấu tin, thực hiện tách lấy bit thông tin đã giấu theo công thức:
- Như vậy, sau khi xét hết các khối bit đã giấu, ta thu được một chuỗi bit, chuỗi này là thông tin các bit mật đã giấu trước trước đó.
Lược đồ giấu tin theo khối bit đơn giản giấu được 1 bit thông tin vào trong một khối ma trận bit F kích thước m n mà chỉ thay đổi tối đa 1 bit.
Thuật toán giấu tin Wu-Lee
Kỹ thuật giấu tin theo khối bit đơn giản thể hiện độ an toàn không cao với việc sử dụng duy nhất kích thước khối là khóa cho quá trình giấu tin, ảnh chứa thông tin giấu cũng bị dễ phát hiện do kỹ thuật có thể sẽ đảo bit trong các khối ảnh toàn màu đen hoặc toàn màu trắng dẫn tới sự bất thường ở vị trí bit đảo so với các điểm lân cận trong khối.
Kỹ thuật giấu tin trên ảnh nhị phân do M.Y.Wu và J.H.Lee vẫn trên tư tưởng giấu một bit thông tin vào một khối ảnh gốc nhưng khắc phục được phần nào những tồn tại nêu trên bằng cách được thêm khóa K cho việc giấu tin và đưa thêm các điều kiện để đảo bit trong mỗi khối, theo điều kiện đó các khối ảnh gốc toàn màu đen hoặc toàn màu trắng sẽ không được sử dụng để
Thuật toán giấu tin biến đổi khối ảnh F thành F’ để giấu 1 bit b được thực hiện sao cho:
Công thức (2) cũng được sử dụng cho quá trình tách lấy tin đã giấu. Thuật toán giấu tin Wu-Lee giấu được 1 bit thông tin vào một khối m n bit và chỉ phải thay đổi tối đa 1 bit trong F, tham khảo[7].
Thuật toán giấu tin Chen-Pan-Tseng
Trên cơ sở thuật toán của Wu-Lee như đã trình bày trong mục 3.3, các tác giả Yu Yan Chen, Hsiang Kuang Pan và Yu Chee Tseng đã phát triển một kỹ thuật giấu tin mới, thuật toán giấu tin CPT[8] Kỹ thuật này sử dụng một ma trận khóa K và một ma trận trọng số W trong quá trình giấu tin và tách thông tin.
Quá trình biến đổi khối ảnh F thành F’ kích thước m n để giấu r bit thông tin b b b b 1 2 r được thực hiện sao cho:
Công thức (3) được sử dụng để tách chuỗi bit b b b b 1 2 r từ khối ảnh
Tóm tắt nội dung thuật toán CPT
+) Xét trên một ma trận nhị phân F ( )F ij m n
+) Kết hợp 1 ma trận khóa nhị phân cấp m n : K (K ij ) m n
+) b là dãy r bit cần giấu vào ma trận F m n : b b b b 1 2 r Ở đây, ta sử dụng b theo hai nghĩa: dãy bit và số tự nhiên dạng nhị phân +) Đặt r log ( 2 N 1) , m n N
Hay nói các khác, ma trận trọng số W cần thỏa mãn: mỗi giá trị của tập
1,2, ,2 r 1 phải xuất hiện trong W ít nhất 1 lần.
Các ma trận khóa K và ma trận trọng số W kích thước m n được sử dụng như các thành phần khóa bí mật: người sử dụng K, W trong quá trình giấu và người nhận cần phải có K, W để khôi phục lại tin đã giấu.
+) Ma trận nhị phân F’ đã được mã hóa mang thông tin dãy r bit b, mà chúng ta có thể lấy lại được thông tin b từ F’.
Ta xem b b b b 1 2 r là giá trị dữ liệu cần giấu dưới dạng cơ số 2 Suy ra
0 b 2 r 1 Mục đích của thuật toán này là thay đổi nhiều nhất hai vị trí trong F để dược ma trận F’ mà S’ tương ứng tính được theo công thức (4) thỏa mãn:
Ta cần tìm các ô F ij sao cho S tăng đúng một lượng khi ta đảo giá trị bit ở ô F ij Khi đó ta được:
Ta gọi S là tập các ô F ij cần đảo sao cho 'S b S thỏa mãn điều kiện đó khi và chỉ khi:
ij | ( ij 0,W ij mod 2 ) or r ij 1, W ij 2 r mod 2 r
Xảy ra một trong ba trường hợp sau:
Nếu S b (hay 0) thì dĩ nhiên ta không cần thay đổi ma trận F.
Nếu 0 và S ta chỉ cần đảo một ô bất kì F ij thuộc S Thuật toán dừng Nếu 0 và S ta chuyển bước 6.
Ta tìm số nguyên h1 và nhỏ nhất sao cho S h và S h Sự tồn tại của h được chứng minh trong [10] Khi đó ta đảo một ô bất kì thuộc
F ij thuộc S h và một ô bất kì F ij thuộc S h
Thuật toán giấu tin CPTE
Ý tưởng: CPTE là một phương pháp được cải biên từ phương pháp CPT do nhóm nghiên cứu của PGS.TS Phan Trung Huy đề xuất Tư tưởng của phương pháp CPTE là giấu các bít thông tin trên một ma trận nhị phân F cỡ N m x n Phương pháp giấu được r ' log 2 N 1 bit thông tin.
+) Ma trận nhị phân: F ( ) F ij mxn
+) Kết hợp 1 ma trận khóa nhị phân: K (K ij ) mxn
+) Ma trận trọng số: W (W ) ij mxn , với W ij là số tự nhiên.
+) blà dãy r1 bit cần giấu vào ma trận F mxn
( r ) b b b b Đặt điều kiện với W :{W ,1 ij i m ,1 j n } {1, 2, , 2 } r nói cách khác, các giá trị của tập {1, 2, , 2 } r phải xuất hiện trong W ít nhất 1 lần
+) Ma trận nhị phân F ' ( F ij ') mxn chứa dãy bít mật b , mà từ đó ta có thể tính lại giá trị b
Thuật toán sẽ thực hiện việc giấu tin bằng cách biến đổi mỗi khối bít Fi thành F’i sao cho luôn thoả mãn điều kiện sau :
Vì b là số r 1 bit Suy ra: 0 b 2 r 1 1 (giống như S) Ta cần đảo nhiều nhất 2 ô trên F ịj trên ma trận F sao cho:
Tính b S mod 2 r 1 Giá trị là độ lệch giữa giá trị dữ liệu cần giấu và dữ liệu tương ứng tính từ F qua T và W
Nếu S b S mod 2 r 1 (hay 0 mod 2 r 1 ), đây là trường hợp ta không cần phải đảo bit nào trên F và thuật toán dừng Nếu 0 ta chuyển qua bước 4.
Mục đích của bước này là tìm tập các vị trí F ij để sao cho sau khi đảo bit một trong các vị trí này, ta được S’ = b.
Gọi S là tập các ô Fij, để thay đổi giá trị một ô thuộc S thì giá trị S tăng lên đúng một lượng là mod 2 r 1
Như vậy ta có thể tìm S theo công thức sau: ij ij
2 { | }; r ij r r r ij r ij if then S F T W if then S F T W if then S F W
Nếu 0 và S : Ta chỉ cần đảo bit của một ô F ij S khi đó
S sẽ tăng một lượng và F mới sẽ mang thông tin b, thuật toán kết thúc.
Nếu 0 và S : ta chuyển sang bước 6.
Ta tìm số tự nhiên nhỏ nhất h 1 sao cho S h và S h
Khi đó ta đảo một ô thuộc S h và một ô thuộc S h , giá trị của S sẽ tăng lên một lượng là h và h , do đó S tăng lên một lượng đúng bằng và bằng b.
Tính đúng đắn của thuật toán được chứng minh trong [10].
Ví dụ minh họa phương pháp CPTE
S SUM T a) Giả sử cần giấu b0100, ta có b S , ta không cần phải đảo bit nào trong F. b) Giả sử cần giấu b0000, 0 44 12mod16
S F , do đó ta đảo bit ở ô số (2,1) được
S b (đúng) c) Giả sử cần giấu b1111, 15 4 11mod16
Do đó ta cần đảo F tại hai vị trí (2,1) và (3,1) , ta được
GIẤU TIN TRÊN ẢNH MÀU, ẢNH XÁM
Phương pháp LSB
Ý tưởng: Phương pháp LSB (Least Bit Significant) sẽ thay thế bit ít quan trọng nhất, thường là bit cuối của mỗi mẫu dữ liệu bằng bít thông tin mật Như vậy trên mỗi pixel của một ảnh BMP 24bpp có thể giấu được từ 1 đến 3 bit mật.
Hình 6 Minh họa kĩ thuật giấu LSB Ưu điểm của phương pháp này là dễ cài đặt và cho phép giấu dữ liệu nhiều Có thể tăng thêm dữ liệu giấu bằng cách sử dụng hai bit LSB Tuy nhiên cách làm này cũng làm tăng nhiễu trên đối tượng chứa dẫn đến đối phương dễ phát hiện và thực hiện các tấn công Vì vậy dữ liệu chứa cần phải được chọn trước khi giấu sử dụng phương pháp này. Để tăng độ an toàn cho kỹ thuật này, ta sử dụng bộ sinh số ngẫu nhiện để sinh ra các vị trí các mẫu được chọn giấu chứ không phải các mẫu liên tục.
Bộ sinh số này sử dụng một khóa bí mật K như một phần tử khởi tạo của bộ sinh số Khóa K này được sử dụng trong cả quá trình giấu tin và giải tin Lưu ý là phương pháp sinh số không tạo ra các giá trị trùng nhau để trường hợp một vị trí được giấu hai lần.
Phương pháp chẵn lẻ giấu tin trên ảnh chỉ số
Trong mục này, chúng ta xem xét một hướng tiếp cận về giấu tin trên ảnh chỉ số, cụ thể là trên ảnh bitmap 8bpp: Phương pháp xác định tính chẵn lẻ và màu kế cận
Với ảnh chỉ số 8bpp thì mỗi điểm ảnh được lưu bằng một byte, byte này chứa giá trị là chỉ số màu trên bảng màu của điểm ảnh Như vậy ý tưởng của phương pháp như sau:
Cho G là một ảnh BMP 8bpp, gọi P là palette có 256 màu Dưới dạng tập hợp ta có thể viết P x x 0, , ,1 x 255 Trong đó mỗi phần tử x i được xem dựng một hàm khoảng cách d x x( , ) i j với các cặp điểm ( , )x x i j thuộc P 2
(tham khảo khoảng cách màu theo [16]) Hàm khoảng cách d nói chung cần phải thỏa mãn được các yêu cầu cơ bản: khi d x x( , ) i j càng nhỏ thì cảm quan về sự “giống nhau” của x i với x j phải càng lớn.
Yêu cầu đặt ra cần xác định hai hàm Next x( ) : j P P và hàm :
- d x next x( , ( )) càng nhỏ càng tốt trên toàn bộ miền P
- C x( )C next x( ( )) 1 (điều này có nghĩa là màu x và màu Next(x) khác tính chẵn lẻ theo tiêu chuẩn C.
Giả sử đã xác định một cặp hàm như vậy, ta có thể xây dựng sơ đồ giấu tin mật và giải mã lấy tin như sau: a) Sơ đồ giấu tin mật
Yêu cầu giấu một dãy bit mật b b b b 0 1 n trong ảnh G, b i thuộc E Ở đây mỗi b i là một bit mật cần giấu Ta xét trên từng dòng điểm ảnh W của ảnh G Với mỗi điểm ảnh p thuộc dòng W có màu x, để thực hiện giấu bit b i , ta tính C(x) Có hai trường hợp xảy ra:
- Nếu C x ( ) b i thì điểm ảnh p đã mang thông tin bit b i , ta chuyển qua xét điểm ảnh p+1 kế tiếp để giấu bit b i 1 kế tiếp.
- Nếu C x ( ) b i , ta thay thế màu x của điểm ảnh p bằng màu
Next(x) Khi đó do tính chất của cặp hàm Next, C ta có
C Next x b Điều này có nghĩa rằng màu mới tại điểm p là
Next(x) sẽ mang giá trị bit mật b i thông qua hàm C.
Qua sơ đồ này cặp hàm Next và C có thể xem như một sơ đồ hàm khóa bí mật của sơ đồ giấu tin. b) Sơ đồ giải mã lấy tin mật
Với một ảnh G đã mang thông tin mật b Ta duyệt qua lần lượt từng điểm ảnh p Giá trị chẵn lẻ không phải xác định bởi bit cuối cùng trong dãy bit như trong phương pháp LSB của mỗi byte điểm ảnh mà được tính thông qua hàm C(x).
Phương pháp định vị giai thừa giấu tin trên ảnh GIF
Ảnh GIF[18] (Graphics Interchange Format) là một định dạng ảnh bitmap sử dụng thuật toán nén không mất thông tin LZW để giảm kích thước của file Định dạng này được tạo bởi CompuServe năm 1987 và hiện đang được sử dụng rất rộng rãi, định dạng ảnh này chứa một bảng màu gồm 256 màu được chọn từ bảng màu 24-bit (RGB).
Khác với phương pháp chẵn lẻ và màu kế cận trong mục 3.3 dữ liệu cần giấu được giấu vào nội dung của ảnh và có thể làm thay đổi chất lượng ảnh bởi trực quan nếu hàm khoảng cách không đủ tốt Ý tưởng của phương pháp định vị giai thừa là ta đi sắp xếp lại thứ tự 256 màu trong bảng màu của ảnh GIF theo một trật tự cho phép giấu được tin mật.
Như vậy, phương pháp này không làm thay đổi dữ liệu ảnh, ta chỉ sắp xếp lại thứ tự màu trong bảng màu và sắp xếp lại dữ liệu ảnh tương ứng với
Ví dụ: Một ảnh có bảng màu bao gồm 4 màu 1,2,3,4 Cấu hình của bảng màu này khi không chứa dữ liệu (hay cấu hình chuẩn) là C 0 (1, 2,3, 4)
Như vậy số bít thông tin ta có thể giấu được là:
Cho dãy bit mật thông tin: 1111 2 tương ứng số thứ tự 15 Vậy ta có được hoán vị mới C 15 (3, 2, 4,1) chứa dãy bit mật cho ở trên.
Thuật toán giấu tin trong ảnh xám
Ý tưởng: Với mỗi tập Fcó 6 phần tử trên vành Z 4 thực hiện lật tối đa
2 vị trí của F để giấu được 6 bit mật trên mỗi khối F. Định nghĩa: Cho M Z 3 4 có dạng M : { dZ 3 4 |d ( , , );d d d 1 2 3 d i Z 4 }, với ,u v M ta định nghĩa phép cộng u v và phép nhân u với 1 số r Z 4 như sau:
+) Khối 'F có chứa thông tin mật d mà ta có thể lấy lại được.
Giải thuật giấu tin trên 1 khối F [ F F 1 2 ], F 6 F i Z 4 có 6 phần tử tương ứng là 6 pixel của ảnh xám như sau:
Cho U { ,U U 1 2 , ,U 6 }, U i M i, 1,6 được sử dụng như là thành phần khóa bí mật của hệ giấu tin.
1) Giấu tin mật d M trong khối Fđã cho:
a Nếu P d , không cần phải thay đổi trong F. b Nếu P d , tính x d P
B1: Nếu x t U t ; i Z 4 ; U i U thực hiện thay đổi F tại F i thành F i ' F i t
B2: Nếu x t U i t U t t' ; , ' j Z 4 ;U U i , j U ta thực hiện thay đổi F tại hai vị trí { , }F F i j như sau:
2) Giải lấy tin mật, tin mật d M được lấy lại đơn giản bằng cách tính lại
Ví dụ: Cho F được xác định như sau
Theo trên, ta tính được
Giả sử cần giấu tin mật d (2,3,1)Z 3 4 , tính
Ta thực hiện thay đổi F tại hai vị trí { , } F F 1 5 ta được
Cuối cùng ta có được khối 'F mới
Bước giải tin mật, ta thực hiện tính
Kết thúc giải thuật, lấy lại tin mật thành công.
XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG
Tổng quan về ảnh số
Một vài định dạng phổ biến cho file ảnh kĩ thuật số bao gồm BMP, GIF, PNG, JPG, … Trong đồ họa máy tính BMP còn được biết đến với tên Windows bitmap, là một định tập tin hình ảnh phổ biến Có 3 dạng ảnh số phổ biến: Ảnh đen trắng (ảnh nhị phân), ảnh đa mức xám, ảnh màu. Ảnh đen trắng: là ảnh mà mỗi điểm ảnh chỉ thể hiện một trong hai trạng thái 0 và 1 để biểu diễn trạng thái điểm ảnh đen hay trắng
Hình 7 Ví dụ về ảnh đen trắng Ảnh đa mức xám: là ảnh mà mỗi điểm ảnh được biểu diễn bởi một giá trị và đó là cường độ sáng của điểm ảnh
Hình 8 Ví dụ về ảnh đa cấp xám Ảnh màu : là ảnh mà mỗi điểm ảnh được biểu diễn bởi ba đại lượng R,
G, B Số lượng màu có thể của loại ảnh này lên tới 256 3 màu khác nhau. Để tiết kiệm bộ nhớ với các ảnh có số lượng màu nhỏ hơn hoặc bằng 256 thì màu các điểm ảnh được lưu trữ dưới dạng bảng màu.Với ảnh có số màu lớn thì các điểm ảnh không tổ chức dưới dạng bảng màu, khi đó giá trị của các điểm ảnh chính là giá trị của các thành phần màu R,G,B Với ảnh có số lượng màu lớn, tùy theo chất lượng ảnh mà quyết định số bit để biểu diễn cho mỗi màu thường là 24 bit, hoặc 32 bit Với ảnh 24 bit mỗi thành phần màu được biểu diễn bởi một byte (8 bit)
Hình 9 Ví dụ về ảnh màu
Nội dung ảnh bitmap gồm 4 phần: File Header, Image Header, Color Table, và Pixel Data.
+ Xác định đây có phải là file BMP hay không.(2 byte đầu tiên)
+ Độ lớn của file ảnh (4 byte tiếp theo)
+ Xác định vị trí của dữ liệu ảnh
Type 2 Là 2 kí tự ‘B’ và ‘M’
Size 4 Kích thước của file
Reserved 1 2 Không được sử dụng, phải có giá trị là
OffBits 4 Vị trí bắt đầu phần The Pixel Data
Chức năng chính: Đưa ra thông tin chi tiết về ảnh và định dạng dữ liệu như:
+ Chiều rộng và chiều cao của ảnh
+ Bao nhiêu bit được sử dụng cho 1 pixel
+ Dữ liệu ảnh có được nén hay không.
Size 4 Kích thước phần Header, phải nhỏ hơn 40.
Width 4 Chiều rộng file theo Pixel
Height 4 Chiều cao file theo Pixel
BitCount 2 Số bit trên 1 Pixel : 1, 2, 4, 8, 16, 24, hoặc
Compression 4 Kiểu nén (0 := Không được nén)
SizeImage 4 Kích thước ảnh, phải là 0 đối với ảnh không được nén XPelsPerMeter 4 Ưu tiên độ phân giải pixels/ meter
YPelsPerMeter 4 Ưu tiên độ phân giải pixels/ meter
ClrUsed 4 Số màu Map được sử dụng thực sự
ClrImportant 4 Số màu có ý nghĩa
Tiếp theo là Palette màu của BMP, gồm nhiều bộ có kích thước 4 byte xếp liền nhau theo cấu trúc Blue-Green-Red và một Byte dành riêng cho Itensity.
Kích thước của vùng Palette màu bằng 4 x số màu của ảnh Nếu số bits màu của ảnh (byte 15-16 của Info là 24 hoặc 32 thì không có vùng Palette).
Vì Palette màu của màn hình có cấu tạo theo thứ tự Red-Green-Blue nên khi đọc Palette màu của ảnh BMP vào ta phải chuyển đổi lại cho phù hợp Số màu của ảnh được biết dự trên số Bits cho 1 pixel cụ thể là:
Nếu là ảnh 24 bit, thì ColorTable không được biểu diễn.
Nếu là ảnh 8 bit thì ColorTable chứa 256 “entries” với mỗi “entry” chứa 4 byte của dữ liệu 3 byte đầu tiên là giá trị cường độ màu Blue, Green, Red Byte cuối cùng không được sử dụng và phải bằng zero.
Với ảnh 8 bit, mỗi pixel được biểu diễn bởi 1 byte đơn của dữ liệu.Với ảnh 24 bit, mỗi pixel được biểu diễn bởi 3 byte tuần tự của dữ liệu Tham khảo thêm tại [17].
Cài đặt thuật toán CPTE
Phần trên đã giới thiệu các ý tưởng và thuật toán giấu tin CPTE, trước khi bước vào xây dựng ứng dụng giấu tin trong mã hóa, mà cụ thể ở đây chương trình sẽ thực hiện cài đặt các thuật toán đã giới thiệu trên Trong mục tiếp theo sau đây là sơ đồ giải thuật của thuật toán CPTE dưới dạng giả mã.Chương trình cần đảm bảo thực hiện hai chức năng chính là giấu tin và giải tin để nhận được thông tin đã giấu.
Ta cần xây dựng thủ tục trợ giúp tìm các tập S Cho số , ma trận khóa T và ma trận trong số W , tìm ra các vị trí F ij là các tọa độ mà tại đó nếu đổi bit F ij thì giá trị S sẽ tăng một lượng đúng bằng
Khi đã có thủ tục tìm S-alpha ta có thể trình bày thuật toán mã giấu tin, trong đó, K là ma trận khóa, W là ma trận trọng số, b là dãy giá trị r1 bit cần mã giấu trin và F là ma trận mang tin, hàm trả về là ma trận sau khi mang thông tin giấu b.
Hình 11 Thủ tục mã hóa giấu tin
Trong đó, Daobit(F ij ); là thủ tục đảo bit ( )F ij tại ô ( , )i j
Thêm vào đó, ta có thủ tục giải mã thông tin Thủ tục giải mã này có các tham số là ma trận khóa K và ma trận trọng số W , ma trận F mang thông tin đã mã hóa và thủ tục trả về giá trị b trước đó đã được giấu trong F
Hình 12 Thủ tục giải mã thông tin
Ứng dụng giấu tin trong mã hóa
Mô hình hoạt động của hệ thống bao gồm: Bên gửi A có thông tin gốc và khóa bí mật K muốn gửi cho bên nhận B, trước hết A sẽ sử dụng khóa K tạo thành bản mã, giấu tin đã được mã hóa bằng thuật toán giấu tin vào trong ảnh và gửi đến cho B Tại bên nhận B cũng có khóa bí mật K mà hai bên đã thông nhất trước đó, khi nhận được ảnh đã có chứa thông tin mã hóa, B sử dụng thuật toán tách thông tin trong ảnh để nhận lại bản tin mã hóa, đưa thông tin này qua bộ giải mã với khóa K và nhận lại thông tin gốc ban đầu.
Như vậy, có hai vấn đề ta cần quan tâm, đó là:
- Thiết kế chương trình giấu tin
- Thiết kế bộ mã hóa
Bộ nhúng thông tin Ảnh chứa tin mật (2)
Bộ tách thông tin Ảnh chứa tin mật (2)
Phân phối qua mạng Ảnh (1)
Hình 13 Mô hình hoạt động của chương trình
4.3.1 Thiết kế chương trình giấu tin
Dữ liệu tham số đầu vào của mô hình gồm: phương tiện chứa dưới dạng một bức hình định dạng Bitmap, thông tin cần giấu, và một khóa riêng cho bộ nhúng tin Để thực hiện việc giấu tin vào trong ảnh, trước hết ta cần tách ảnh thứ cấp từ ảnh môi trường (tách bít LSB, tách bảng màu, …), sau đó giấu tin cần giấu vào trong ảnh thứ cấp này bằng thuật toán giấu tin và trả ảnh môi trường theo đúng thứ tự các bit được lấy ra Quá trình lấy tin được thực Ảnh môi trường (1) Ảnh thứ cấp
Bộ nhúng thông tin Ảnh môi trường (2) Thông tin cần giấu
Khóa hiện tương tự, thay bộ nhúng tin bằng bộ giải mã tin bằng thuật toán đã sử dụng trước đó.
Quá trình giấu tin vào ảnh được thực hiện theo các bước sau:
- Tách lấy ảnh thứ cấp từ ảnh môi trường
- Giấu tin là các file dữ liệu vào ảnh thứ cấp
- Trả lại ảnh thứ cấp vào môi trường
Hình 14 Lược đồ quá trình giấu tin vào ảnh
4.3.1.2 Tách thông tin từ ảnh kết quả
Quá trình tách thông tin đã được giấu trước đó tại mục 4.3.1.1 được thực hiện theo lược đồ hình 15 dưới đây Kết quả đầu ra của sơ đồ là thông tin
Kiểm định Ảnh môi trường (2) Ảnh thứ cấp
Bộ giải mã thông tin Ảnh môi trường (2)
Khóa và được qua một bộ kiểm định xem đó có là thông tin đã được giấu trước đó hay không.
Hình 15 Lược đồ quá trình giải mã thông tin
4.3.2 Thiết kế bộ mã hóa
Do không gian khóa sử dụng trong các bộ giấu tin không đủ lớn để đảm bảo độ an toàn của thông tin giấu trong trường hợp kẻ thứ ba cũng có chương trình được cài đặt các thuật toán giấu tin hoặc phòng ngừa các thành viên cùng trong một hệ thống Để đảm bảo tính bí mật cho thông tin ta sử dụng một trong các thuật toán mã hóa như: RC2, RC4, DES, TDES, AES, … Như vậy, dữ liệu trước khi giấu vào trong ảnh sẽ được mã hóa để chống lại các tấn công xem trộm, đảm bảo tính toàn vẹn, chống lại các tấn công giả mạo hay sửa đổi dữ liệu.
Trong báo cáo này sử dụng thuật toán mã hóa AES (Advanced Encryption Standard) để mã hóa dữ liệu Ở đây, ta cần cung cấp một mật khẩu để tạo khóa cho quá trình mã hóa và giải mã dữ liệu Mật khẩu này được trao đổi giữa các bên thông qua một kênh an toàn.
Hình 16 Lược đồ quá trình mã hóa dữ liệu
Hình 17 Lược đồ quá trình giải mã dữ liệu
Ứng dụng giấu tin xây dựng giao thức xác thực
Trong cuộc sống thường ngày, có rất nhiều giao thức tồn tại trong hầu hết mọi công việc giao dịch (giữa 2 hay nhiều phía): đặt hàng qua điện thoại, trên sự hiện diện của người đại diện để đảm bảo cho tính an toàn và ngay thẳng trong giao dịch Mọi người tiến hành các giao dịch trên mạng ngày càng nhiều thì máy tính cũng cần đến các “giao thức hình thức” để thực hiện những việc mà con người làm không cần nghĩ ngợi Tuy nhiên không thể tin tưởng vào các giao dịch này, vì đôi khi kẻ gian am hiểu về máy tính sẽ lợi dụng để thu lợi Bằng các thiết lập các giao thức mà ta có thể kiểm tra được các phương thức lừa đảo có thể sử dụng, và đồng thời vô hiệu hóa nó.
Trong phần này sẽ trình bày giao thức bắt tay ứng dụng giấu tin trong xác thực người dùng để làm tăng độ an toàn cho người tham gia vào một hệ thống cần có sự xác minh người sử dụng hoặc có các giao dịch yêu cầu độ an toàn cao có khả năng phát hiện và chống được sự giả mạo.
4.4.1 Phát biểu bài toán thực tế ứng dụng mô hình
Một bài toán thực tế dùng mô hình giấu tin được phát biểu như sau: Cho 1 website tạm coi là của tổ chức hay doanh nghiệp nào đó có chức năng giao dịch hay giao tiếp với khách hàng, cá nhân khách hàng của doanh nghiệp hoặc nhân viên muốn kiểm tra thông tin hay tài khoản của mình theo thường lệ hoặc nhận được một thông báo lừa đảo nào trước đó, chẳng hạn qua: email,tin nhắn, điện thoại, … để buộc phải thực hiện đăng nhập vào hệ thống website của doanh nghiệp đó tại trang xác thực người sử dụng Một thực tế có thể xảy ra là tin tặc có thể lợi dụng việc đăng nhập vào website của doanh nghiệp để tạo đường link giả sao cho giao diện trang web giả mạo giống hệ với trang web của doanh nghiệp Nếu khách hàng không biết đến có sự can thiệp của bên giả mạo thứ ba hoặc vô tình có thể họ sẽ vẫn đăng nhập tài khoản của mình trên trang web giả mạo đó Sau khi cung cấp đủ thông tin phía server sẽ báo lỗi và khách hàng không thực hiện đăng nhập được, hoặc thậm chí được chuyển tiếp đến một website giả mạo khác Thực chất trong quá trình đó, kẻ gian đã lấy được thông tin của khách hàng để thực hiện mưu đồ bất chính chẳng hạn đăng nhập vào trang web chính thống để ăn cắp, sửa xóa thông tin dẫn đến thiệt hại cho cá nhân khách hàng và doanh nghiệp.
Hình 18 Ví dụ về một hình thức lừa đảo thông qua Email
Hình 18 trên đây là một ví dụ về một e-mail lừa đảo, giả mạo như là một e-mail chính thống từ một ngân hàng (không có thật) Người gửi cố đánh lừa người nhận tiết lộ thông tin mật bằng việc “xác nhận” tại một website của kẻ lừa đảo Và chú ý rằng mặc dù các liên kết URL trên trang web của ngân hàng dường như là hợp pháp, thực tế siêu liên kết lại được trỏ tới trang web của kẻ giả mạo.
Thuật ngữ “Phishing” là cách thức kẻ lừa đảo thực hiện để có được thông tin như tài khoản, mật khẩu, và thông tin chi tiết thẻ tín dụng bằng cách thường được thực hiện bằng cách giả mạo e-mail hay tin nhắn, và nó thường hướng người dùng nhập các thông tin chi tiết tại một trang web giả mạo có giao diện giống hệt với trang web chính thống Phishing là một ví dụ về kỹ thuật xã hội được sử dụng để đánh lừa người sử dụng, và khai thác các khả năng thiếu hiểu biết người sử dụng về các công nghệ bảo mật web hiện nay.
Vấn đề đặt ra là làm thế nào để khách hàng biết mình đăng nhập vào website thật hay đó là website giả mạo để bị lấy mất thông tin Có nhiều cách thức để bảo vệ truy nhập website cho khách hàng Trong khuôn khổ nghiên cứu về kỹ thuật giấu tin, báo cáo đề xuất một mô hình giấu tin và tách tin nhằm bảo vệ người dùng, bảo vệ giao thức xác thực tránh bị lừa đảo, giúp khách hàng cũng như người sử dụng an toàn truy nhập đúng trang web hợp pháp của doanh nghiệp.
Giải pháp được đưa ra trong báo cáo là xây dựng một mô hình giấu tin trong ảnh đại diện cá nhân của người sử dụng hệ thống, qua đó thông tin được giấu vào trong ảnh đại diện đó, việc nhận diện đúng khách hàng của mình hay đúng server thật dựa vào được giao thức xác thực được xây dựng trong phần sau Bên cạnh đó, yêu cầu đối với giao thức xây dựng được cần một ứng dụng để nhận diện lại thông tin đó Có nghĩa là, khi ứng dụng được cài đặt, nếu khách hàng truy nhập đúng vào website thật thì quá trình đăng nhập diễn ra bình thường, còn nếu khách hàng truy nhập vào trang web giả mạo thì ứng dụng người dùng sẽ cảnh báo đang thực hiện đăng nhập vào trang web giả mạo, hoặc không nhận được ảnh đại diện cá nhân của mình tại trang đăng nhập (giả mạo đó)
Giao thức là nghi thức giao dịch gồm một chuỗi các bước hoạt động có
Các bước hoạt động trong một giao thức cần được thực hiện một cách tuần tự và có một mục đích chung Hoạt động của một người không thể làm thành giao thức Giao thức thường mang các đặc trưng sau:
- Từng người tham gia vào các giao thức cần phải nắm trước các bước hoạt động của giao thức.
- Mọi người tham gia vào giao thức đồng thời phải chấp hành tuân thủ giao thức
- Giao thức cần phải có tính mạch lạc rõ ràng (mỗi bước của nó được định nghĩa chuẩn xác, không thể xảy ra khả năng hiểu lầm)
- Giao thức phải mang tính đầy đủ (các hoạt động cho mỗi tình huống cụ thể đều phải được chỉ rõ)
Giao thức có thể xem như một thủ tục thực hiện một công việc nào đó, nhưng một thủ tục nói chung không phải là một giao thức, vì nó không nhất thiết phải do nhiều phía cùng tham gia thực hiện, và cũng không nhất thiết phải mang nhưng đặc trưng nêu trên.
4.4.3 Giao thức bắt tay sử dụng phương pháp giấu tin
- Điều kiện bắt tay: Mỗi thành viên có nhu cầu tham gia và trao đổi với hệ thống Và mỗi thành viên sở hữu một định danh (T); cặp khóa chủ của mình {Ks; Ws}; ảnh đại diện do thành viên cung cấp khi đăng kí tham gia hệ thống và chữ ký đi kèm Ds nhằm mục đích trao đổi thông tin và chống giả mạo.
- Quá trình xác thực: Xảy ra ở cả hai bên, và cả hai đều phải tự xác thực mình với đối phương trước khi giao dịch được bắt đầu Nếu phát hiện một trong hai bên giả mạo thì một bên có thể tự động kết
- Giao thức bắt tay: Được tiến hành ở hai pha: Pha đăng ký, và Pha yêu cầu đăng nhập hệ thống Mọi thông tin giao dịch gửi đi sẽ được giấu trong đối tượng chứa Trong đồ án này sử dụng đối tượng chứa là ảnh.
Tại pha này, người dùng A đăng ký và cung cấp thông tin cá nhân T và ảnh đại diện cho hệ thống B B sẽ sử dụng các thông tin người dùng đăng ký để tạo khóa riêng cho A Đồng thời sẽ tạo ra một chữ ký số Ds cho A để sử dụng trong pha 2 Kết thúc pha 1 hệ thống B có được các thông tin của A gồm{T, Ks, Ws, Ds} và người dùng A sở hữu một chương trình thường trú hỗ trợ kết nối hệ thống và phát hiện giả mạo {T, Ks, Ws, Ds, Ảnh đại diện}
Application {T, Ks, Ws, Ảnh + Ds} User Info {T, Ks, Ws, Ds}
Pha 1: Đăng ký thông tin người dùng
Pha 2: Pha yêu cầu đăng nhập hệ thống
Tại pha này người dùng sẽ yêu cầu đăng nhập vào hệ thống, mọi thông tin trao đổi đều được giấu trong đối tượng chứa là ảnh của hệ thống và ảnh đại diện cá nhân của người sử dụng.
Vào trang đăng nhập: login.aspx
Pha 2: Yêu cầu đăng nhập hệ thống theo giao thức VUBM
Theo sơ đồ pha 2 ta có thể tóm tắt lại giao thức xác thực theo qui trình bắt tay 5 bước Lưu ý rằng quá trình bắt tay 5 bước được tiến hành thực hiện ngay sau khi người dùng vào trang đăng nhập.
Giới thiệu chương trình thử nghiệm
Kết quả nổi bật của đồ án là đã ứng dụng được các phương pháp giấu tin vào trong mã hóa và xác thực kiểm tra chống phishing.
Trong các phần trước mục 4.3 và 4.4 đã trình bày phương pháp và cách thức thực hiện xây dựng chương trình mã hóa và giao thức xác thực người dùng kết hợp và sử dụng phương pháp giấu tin Trong mục báo cáo này trình người dùng Tham số đầu vào của mô hình là các tệp ảnh định dạng (*.bmp,
*.gif, …) và bản tin cần giấu là các đoạn mã hiệu hoặc tệp dữ liệu (*.txt,
Các bước sử dụng chương trình để thực hiện giấu một file văn bản
“thong tu van ban.txt” vào bức hình “lenna.bmp” được thực hiện như sau:
- Bước 1: Mở file ảnh bằng cách click chọn Open Image hoặc kéo thả ảnh vào vùng hiển thị ảnh.
- Bước 2: Mở file dữ liệu cần giấu bằng cách click chọn Load Data hoặc kéo thả vào vùng hiển thị ảnh (sau khi ảnh đã được chọn).
- Bước 3: Nhập vào mật khẩu nếu cần thiết.
- Bước 4: Lựa chọn phương pháp giấu tin trên menu Method
- Bước 5: Click chọn Save StegoFile để thực hiện giấu tin và lưu lại ảnh kết quả có chứa tin mật.
Các bước sử dụng chương trình giấu tin để lấy lại tin mật đã giấu trước đó được thực hiện theo các bước sau:
- Bước 1: Mở chọn file ảnh có chứa tin mật trước đó bằng cách click chọn Open Image (hoặc kéo thả ảnh vào vùng hiển thị).
- Bước 2: Lựa chọn phương pháp giấu tin để giải lấy tin đã giấu trên menu Method.
- Bước 3: Nhập vào mật khẩu nếu có.
- Bước 4: Click chọn nút TryExtract Data để thực hiện giãi mã lấy lại tin mật từ ảnh kết quả.
Một số hình ảnh chương trình
Chương trình thực hiện giấu tin là một tệp tin bất kỳ với kích thước cho phép, ví dụ là một file văn bản “thong tu van ban.txt” định dạng (*.txt) với nội dung như sau:
Hình 19 Tệp văn bản chứa thông tin mật cần giấu
Hình 21 Giao diện chính chương trình giấu tin
Hình 22 Mở ảnh làm môi trường chứa tin
Hình 23 Load file dữ liệu cần giấu
Sau khi load file dữ liệu cần giấu và gõ mật khẩu (nếu cần) ta thực hiện chọn chức năng Save StegoFile để giấu tin vào file ảnh chọn “Lenna.bmp” và lưu lại Để thực hiện lấy lại thông tin đã giấu ta thực hiện chức năngTryExtract Data trên giao diện.
4.5.3 Chương trình xác thực người dùng
Với giao thức xác thực được thiết kế như trong mục 4.4, ta tiến hành cài đặt và chạy kiểm thử ứng dụng xác thực người dùng trên Website có cho phép người dùng đăng ký tài khoản và thực hiện đăng nhập vào hệ thống Qua hai yêu cầu đơn giản đó, đồ án đã thực hiện được hai chức năng cơ bản này và chạy thành công trên Localhost, và đề ra một số kịch bản xảy ra trong quá trình đăng nhập cũng như trường hợp người dùng bị mất chương trình SVCore SVCore là tên chương trình ứng dụng được cài đặt tại máy client và được thiết kế lập trình chỉ chạy duy nhất ở trên một máy client.
Trước hết tại pha 1, người dùng sẽ đăng ký tài khoản trên hệ thống bằng cách truy nhập vào trang Register.aspx, cung cấp đầy đủ thông tin cá nhân và ảnh đại diện để đăng ký vào hệ thống, đồng thời được tải ứng dụng SVCore xuống sau khi hoàn tất việc đăng ký.
Tại pha 2, sau khi đăng ký tài khoản thành công, người dùng sẽ vào trang đăng nhập Login.aspx để thực hiện việc đăng nhập hệ thống Nếu SVCore chưa được khởi chạy giao diện được hiển thị ra bình thường như hình
26, giả sử tin tưởng trang web này thì người dùng sẽ phải cung cấp cả tài khoản và mật khẩu cho hệ thống Nếu SVCore đã được khởi chạy, khi truy nhập vào trang đăng nhập người dùng sẽ nhìn thấy giao diện với ảnh đại diện cá nhân như hình 27, nhập mật khẩu để hoàn tất việc đăng nhập.
Hình 24 Đăng ký tài khoản vào hệ thống
Hình 25 Đăng ký tài khoản thành công
Hình 26 Vào trang đăng nhập khi SVCore chưa khởi chạy
Hình 27 Vào trang đăng nhập sau khi SVCore được khởi chạy
Hình 28 Đăng nhập thành công vào hệ thống
Hình 29 Giao diện chương trình SVCore
Hình 30 Bộ Log các kết nối đến SVCore