Thuật toán giấu tin THA

Một phần của tài liệu phương pháp thủy vân dễ vỡ khóa công khai ứng dụng trong bài toán chống giả mạo văn bằng (Trang 34 - 67)

1.10.1. Thuật toán nhúng tin

Giống nhƣ thuật toán CPT, thuật toán THA

thay đổi tối đa một phần tử trên F. Thuật toán sử dụng ma trận trọng số K cấp r. Thuật toán biến đổi F để nhận đƣợc G thỏa mãn điều kiện:

(1.10) 1: - - 2 2: - - - -

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ Chú ý: 2r- trọng số : 1.10.2. Ví dụ minh hoạ 1b2 : b=b1b2=10 F K 1 0 0 2 1 2 0 1 1 3 1 2 0 1 1 3 3 1 Quá trình nhúng tin: 1: - - 2 2: - - , suy ra (u,v) = (1,2) - 1,2: F1,2 - = F. 10 : G 1 1 0 0 1 1 0 1 1

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Theo các kết quả phân tích và thực nghiệm trong [7], thuật toán THA có khả năng nhúng và tính bảo mật cao hơn thuật toán CPT.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Chƣơng 2

MỘT SỐ LƢỢC ĐỒ THỦY VÂN DỄ VỠ KHÓA CÔNG KHAI

Chương này trình bày một số khái niệm liên quan đến mật mã học như hàm băm, hệ mật mã khóa công khai RSA và chữ ký số. Các kiến thức về mật mã được sử dụng trong hai lươc đồ thủy vân dễ vỡ trình bày phía cuối của Chương.

2.1. Thủy vân trên ảnh số

Thủy vân ảnh là kỹ thuật nhúng thông tin vào dữ liệu ảnh trƣớc khi ảnh đƣợc phân phối trên môi trƣờng trao đổi không an toàn, việc nhúng thông tin vào ảnh sẽ làm giảm chất lƣợng ảnh. Tuy nhiên, thông tin đã nhúng (dấu thủy vân) sẽ là dấu vết để nhận biết sự tấn công trái phép, hoặc để xác định thông tin về chủ sở hữu. Theo [4], thủy vân trên ảnh có mô hình nhƣ sau:

Hình 2.1. Mô hình thủy vân số

Trong mô hình thủy vân, chủ sở hữu nhúng dấu thủy vân vào ảnh gốc để nhận đƣợc ảnh thủy vân . Trong quá trình trao đổi, ảnh có thể bị tấn công hoặc tranh chấp bản quyền, thủ tục kiểm tra dấu thủy vân có khả năng xác định tính toàn vẹn của ảnh, định vị các vùng ảnh giả mạo hoặc xác định quyền tác giả của ảnh . Nếu từ ảnh thủy vân khôi phục đƣợc ảnh

Internet Ảnh gốc F Nhúng thủy vân Khóa Ảnh thủy

vân Kiểm tra dấu

thủy vân Ảnh thủy vân Khóa Dấu thủy vân W Ảnh gốc F

Dấu thủy vân

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

gốc thì đƣợc gọi là thủy vân thuận nghịch (reversible watermarking). Để tăng độ bảo mật, trong quá trình nhúng và kiểm tra dấu thủy vân có sử dụng hệ thống khóa, nếu khóa nhúng thủy vân khác với kiểm tra dấu thủy vân thì đƣợc gọi là thủy vân bất đối xứng.

2.2. Phân loại thủy vân

Theo mục đích sử dụng, ta có thể chia các lƣợc đồ thủy vân thành ba nhóm chính: thủy vân dễ vỡ (fragile watermarking), thủy vân bền vững

(robust watermarking) và thủy vân bán dễ vỡ (semi-fragile watermarking).

Hình 2.2. Phân loại thủy vân theo mục đích ứng dụng

Thủy vân dễ vỡ ững lƣợc đồ nhúng tin nhằm phát hiện ra sự biến đổi dù chỉ vài bít trên dữ liệu ảnh. Theo đó, thông tin đƣợc nhúng cần phải dễ dàng thay đổi trƣớc các phép tấn công ảnh nhƣ: nén JPEG, nhiễu, biến đổi hình học, cắt-dán…

Trái với thủy vân dễ vỡ, thủy vân bền vững yêu cầu dấu thủy vân phải tồn tại (bền vững) trƣớc những phép tấn công nhằm loại bỏ dấu thủy vân, hoặc trong trƣờng hợp loại bỏ đƣợc dấu thủy vân thì ảnh sau khi bị tấn công cũng không còn giá trị sử dụng. Theo [4], các phép tấn công phổ biến nhằm loại bỏ dấu thủy vân thƣờng đƣợc sử dụng là: nén JPEG, thêm nhiễu, lọc, xoay, cắt xén, làm mờ, thay đổi kích thƣớc, thay đổi sáng tối, thay đổi tƣơng phản. Hầu hết các thuật toán thủy vân bền vững thƣờng nhúng dấu thủy vân trên miền biến đổi của ảnh thông qua các phép biến đổi nhƣ DFT (Discrete

Dễ vỡ Bán dễ vỡ Bền vững

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Fourier Transform), DCT(Discrete Cosine Transform), DWT (Discrete Wavelet Transform), SVD (Singular Value Decomposion) và NMF (Non- negative Matrix Factorization).

Giống nhƣ thủy vân dễ vỡ, thủy vân bán dễ vỡ yêu cầu dấu thủy vân phải dễ vỡ trƣớc những phép tấn công nhằm thay đổi nội dung, ý nghĩa của ảnh. Tuy nhiên, lƣợc đồ này cần phải bền vững trƣớc một số thao tác nhƣ: nén JPEG, nhiễu, lỗi đƣờng truyền.

2.3. Giới thiệu về hàm băm

2.3.1. Định nghĩa hàm băm

Hàm băm là hàm chuyển đổi một khối dữ liệu có độ dài bất kỳ thành một dãy bit có độ dài cố định. Các hàm băm nhận một chuỗi bit có chiều dài tùy ý làm dữ liệu đầu vào, và tạo ra một chuỗi bit mới có chiều dài cố định, đƣợc gọi là giá trị băm. Giá trị băm đóng vai trò nhƣ một khóa để phân biệt các khối dữ liệu đầu vào.

Tuy nhiên vẫn có thể xảy ra hiện tƣợng trùng khóa, ngƣời ta chấp nhận hiện tƣợng này và gọi là đụng độ. Ngƣời ta vẫn cố gắng cải thiện nhằm làm giảm thiểu tối đa sự đụng độ.

2.3.2. Đặc tính của hàm băm

Hàm băm h là hàm băm một chiều (one-way hash) với các đặc tính sau: Với thông điệp đầu vào x thu đƣợc bản băm z = h(x) là duy nhất.

Nếu dữ liệu trong thông điệp x thay đổi hay bị xóa để thành thông điệp

x‟ thì h(x‟) h(x). Cho dù chỉ là một sự thay đổi nhỏ hay chỉ là xóa đi 1 bit dữ liệu của thông điệp thì giá trị băm cũng vẫn thay đổi. Điều này có nghĩa là: hai thông điệp hoàn toàn khác nhau thì giá trị hàm băm cũng khác nhau.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Nội dung của thông điệp gốc không thể bị suy ra từ giá trị hàm băm. Nghĩa là: với thông điệp x thì dễ dàng tính đƣợc z = h(x), nhƣng lại không thể (thực chất là khó) suy ngƣợc lại đƣợc x nếu chỉ biết giá trị hàm băm h(x).

2.3.3. Tính chất của hàm băm

Việc đƣa hàm băm h vào dùng trong sơ đồ chữ ký số không làm giảm sự an toàn của sơ đồ chữ ký số vì nó là bản tóm lƣợc thông báo – bản đại diện cho thông điệp – đƣợc ký chứ không phải là thông điệp gốc. Điều cần thiết đối với hàm băm h là cần thỏa mãn một số tính chất sau để tránh bị giả mạo:

Tính chất 1: Hàm băm h là không va chạm yếu

Hàm băm h là không va chạm yếu nếu khi cho trước một bức điện x, không thể tiến hành về mặt tính toán để tìm ra một bức điện x’ x mà h(x’) = h(x).

Tính chất 2: Hàm băm h là không va chạm mạnh:

Xét một kiểu tấn công nhƣ sau: Đầu tiên, tên giả mạo tìm ra đƣợc hai bức thông điệp x‟ và x (xx) mà có h(x‟) = h(x) (ta coi bức thông điệp x là hợp lệ, còn x‟ là giả mạo). Tiếp theo, hắn đƣa cho ông A và thuyết phục ông này kí vào bản tóm lƣợc h(x) để nhận đƣợc y. Khi đó (x‟, y) là bức điện giả mạo nhƣng hợp lệ.

Để tránh kiểu tấn công này, hàm h phải thỏa mãn tính không va chạm mạnh: Hàm băm h là không va chạm mạnh nếu không có khả năng tính toán để tìm ra hai bức thông điệp x và x’mà x x’ và h(x) = h(x’).

Tính chất 3: Hàm băm h là hàm một chiều:

Xét một kiểu tấn công nhƣ sau: Việc giả mạo các chữ ký trên bản tóm lƣợc z thƣờng xảy ta với các sơ đồ chữ ký số. Giả sử tên giả mạo tính chữ ký trên bản tóm lƣợc z, sau đó hắn tìm một bản thông điệp x‟ đƣợc tính ngƣợc từ

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

bản đại diện z, z = h(x‟). Tên trộm thay thế bản thông điệp x hợp lệ bằng bản thông điệp x‟ giả mạo, nhƣng lại có z = h(x‟). Và hắn ký số trên bản đại diện cho x‟ bằng đúng chữ ký hợp lệ. Nếu làm đƣợc nhƣ vậy thì (x‟, y) là bức điện giả mạo nhƣng hợp lệ.

Để tránh đƣợc kiểu tấn công này, h cần thỏa mãn tính chất một chiều:

Hàm băm h là một chiều nếu khi cho trước một bản tóm lược thông báo z thì không thể thực hiện về mặt tính toán để tìm ra thông điệp ban đầu x sao cho h(x) = z .

2.3.4. Một số hàm băm phổ biến

Các hàm băm chúng ta xem xét dƣới đây có hai thành phần chính. Thành phần đầu tiên là hàm nén nhận đầu vào là một chuỗi có chiều dài bất kỳ và giá trị chaining variable (giá trị khởi tạo) và cho đầu ra là chuỗi có chiều dài cố định. Thành phần thứ hai là hàm chuẩn chuỗi đầu vào, hàm này có nhiệm vụ biến chuỗi đầu vào có chiều dài bất kỳ thành chuỗi các bít, mà chuỗi này là có chiều dài là bội số của các khối message block (có chiều dài là 512 hoặc 1024 bít). Ở thời điểm bắt đầu các chaining variable có giá trị khởi tạo (giá trị khởi tạo này là tùy thuộc vào hàm băm), và giá trị cuối cùng của các chaining variable chính là giá trị của hàm băm.

Giới thiệu một số hàm băm phổ biến: MD4, MD5, SHA.

Hàm băm MD4

MD4 (Message-Digest 4) đƣợc thiết kế bởi giáo sƣ Ronald Rivest của đại học MIT vào năm 1990. Nó thực hiện một hàm băm mật mã để sử dụng trong kiểm tra tính toàn vẹn của thông điệp. Chiều dài của giá trị băm là 128 bit.

Thuật toán MD4 nhận dữ liệu đầu vào là một chuỗi bit x có chiều dài b>=0 tùy ý và sinh ra mã băm của x có chiều dài cố định 128 bit. Trƣớc tiên

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

chuỗi bit x đƣợc định dạng lại bằng cách thêm r>0 bit phụ thuộc vào x sao cho chiều dài của chuỗi bit mới là b‟=b+r là bội số của 512. Sau đó chia chuỗi bit mới này thành m khối, mỗi khối có độ dài đúng bằng 512 bit. Mỗi khối bit này lại chia thành 16 từ, mỗi từ có 32 bit.

Thuật toán MD4 tuần tự xử lý dãy m khối trong m lƣợt tính toán. Dữ liệu đầu vào tại lƣợt tính toán thứ k (1<=k<=m) là khối thứ k trong dãy và mã băm nhận đƣợc sau (k-1) lƣợt tính toán trƣớc đó (mã băm đầu vào ứng với k=1 đã đƣợc khởi tạo từ trƣớc). Tại lƣợt tính toán thứ k này, khối dữ liệu đầu vào 512 bit liên tiếp đi qua 3 vòng tính toán, trong mỗi vòng gồm có 16 bƣớc, mỗi bƣớc thực hiện tính toán với dữ liệu là một từ trong dãy và các kết quả nhận đƣợc sau bƣớc trƣớc. Kết quả sau khi qua 3 vòng tính toán trên sẽ đƣợc kết hợp với mã băm trƣớc đó để sinh ra mã băm mới (cho lƣợt tính toán thứ k). Sau khi đã xử lý hết m khối, mã băm nhận đƣợc sau cùng là kết quả ta cần tìm.

Hàm băm MD5

MD5 đƣợc phát minh bởi Ron Rivest, ngƣời cũng đã tham gia xây dựng RSA. MD5, viết tắt từ chữ „Message Digest 5‟ đƣợc phát triển lên từ MD4 và trƣớc đó là MD2, do MD2 và MD4 không còn đƣợc xem là an toàn. Kích thƣớc giá trị băm của MD5 là 128 bít, mà chúng ta coi nhƣ là an toàn (theo nghĩa không tìm đƣợc 2 thông điệp có cùng giá trị băm).

Tuy nhiên vào năm 2004 và 2005, một phƣơng pháp tấn công MD5 đã đƣợc tìm thấy và một số thông điệp có cùng giá trị băm MD5 đƣợc chỉ ra (vi phạm tính chống va chạm mạnh). Tuy vậy ngày nay MD5 vẫn còn đƣợc sử dụng phổ biến. Hàm băm MD5 sẽ đƣợc giới thiệu chi tiết trong chƣơng 2.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ Hàm băm chuẩn SHA

Chuẩn hàm băm SHA phức tạp và chậm hơn dòng MD. SHA đƣợc thiết kế để chạy trên máy kiến trúc endian lớn hơn là trên máy endian nhỏ. SHA tạo ra bản tóm lƣợc thông điệp có kích thƣớc 160 bit, sử dụng 5 thanh ghi 32 bit.

Năm thuật giải SHA là SHA-1 (trả lại kết quả dài 160 bit), SHA- 224 (trả lại kết quả dài 224 bit), SHA-256 (trả lại kết quả dài 256 bit), SHA- 384 (trả lại kết quả dài 384 bit), và SHA-512 (trả lại kết quả dài 512 bit).

Thuật giải SHA là thuật giải băm mật đƣợc phát triển bởi cục an ninh quốc gia Mĩ (National Security Agency hay NSA) và đƣợc xuất bản thành chuẩn của chính phủ Mĩ bởi viện công nghệ và chuẩn quốc gia Mĩ (National Institute of Standards and Technology hay NIST). Bốn thuật giải sau thƣờng đƣợc gọi chung là SHA-2.

SHA-1 đƣợc sử dụng rộng rãi trong nhiều ứng dụng và giao thức an ninh khác nhau, bao gồm TLS và SSL, PGP, SSH, S/MIME, và IPSec.

Hiện nay, SHA-1 không còn đƣợc coi là an toàn bởi đầu năm 2005, ba nhà mật mã học ngƣời Trung Quốc đã phát triển thành công một thuật giải dùng để tìm đƣợc hai đoạn dữ liệu nhất định có cùng kết quả băm tạo ra bởi SHA-1.

Tuy vậy SHA vẫn đƣợc sử dụng phổ biến, đặc biệt là SHA-2, chƣa có phát minh nào tìm ra tính không an toàn của nó.

2.3.5. Tiêu chuẩn của một hàm băm tốt

Tính toán nhanh.

Các khóa đƣợc phân phối đều trong bảng. Ít xảy ra đụng độ.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

2.3.6. Ứng dụng của hàm băm

Các hàm băm đƣợc ứng dụng trong nhiều lĩnh vực, chúng thƣờng đƣợc thiết kế cho phù hợp với từng ứng dụng cụ thể.

Hàm băm mật mã học: các hàm băm mật mã học có một số tính chất bảo mật nhất định để phù hợp với việc sử dụng trong nhiều ứng dụng bảo mật thông tin đa dạng. Chẳng hạn nhƣ chứng thực và kiểm tra tính nguyên vẹn của thông điệp. Một số hàm băm mật mã học điển hình: MD2, MD4, MD5, SHA-0, SHA-1…

Bảng băm: Bảng băm làm một ứng dụng quan trọng của hàm băm, cho phép tra cứu nhanh một bản ghi dữ liệu nếu cho trƣớc khóa của bản ghi đó.

Các hàm băm dành cho việc phát hiện và sửa lỗi tập trung phân biệt các trƣờng hợp mà dữ liệu đã bị làm nhiễu bởi các quá trình ngẫu nhiên. Khi các hàm băm đƣợc dùng cho các giá trị tổng kiếm, giá trị băm tƣơng đối nhỏ có thể đƣợc dùng để kiểm chứng rằng một file dữ liệu có kích thƣớc tùy ý chƣa bị sửa đổi. Hàm băm đƣợc dùng để phát hiện lỗi truyền dữ liệu. Tại nơi gửi, hàm băm đƣợc tính cho dữ liệu đƣợc gửi, giá trị băm này đƣợc gửi cùng dữ liệu. Tại đầu nhận, hàm băm lại đƣợc tính lần nữa, nếu các giá trị băm không trùng nhau thì lỗi đã xảy ra ở đâu đó trong quá trình truyền.

Các hàm băm còn đƣợc ứng dụng trong việc nhận dạng âm thanh, chẳng hạn nhƣ xác định xem một file mp3 có khớp với một file trong danh sách một loạt các file khác hay không.

2.4. Hệ mật mã khóa công khai

Nhƣ chúng ta đã biết, mã khóa riêng hay còn gọi là mã khóa đơn hay mã khóa mật hay khóa đối xứng. Ở đây mã khóa riêng chỉ dùng một khóa, dùng chung cho cả ngƣời nhận và ngƣời gửi. Khi khóa này đƣợc dùng, việc trao đổi thông tin về khóa sẽ đƣợc thỏa thuận trƣớc. Ngƣời gửi và ngƣời nhận có vai trò nhƣ nhau nên không bảo vệ đƣợc ngƣời gửi khỏi việc ngƣời nhận

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

giả mạo mẩu tin và tuyên bố đó là do ngƣời gửi gửi. Nghĩa là khi dùng mã khóa riêng, có thể bảo mật đƣợc nội dung trao đổi, nhƣng không thể chứng thực đƣợc nội dung đó là do ngƣời gửi gửi.

Vậy ngƣời ta dùng mã khóa công khai để đáp ứng đƣợc hai vấn đề nảy sinh trong thực tế:

Phân phối khóa – phân phối khóa an toàn mà không cần thông qua trung tâm phân phối khóa tin cậy.

Chữ ký điện tử - xác định đƣợc mẩu tin gửi đến nguyên vẹn và do ngƣời đứng tên gửi.

2.4.1. Mã khóa công khai

Khoá công khai ra đời vào đầu những năm 1970. Có thể nói đây là bƣớc tiến quan trọng nhất trong lịch sử 3000 năm mã hoá. Ở đây ngƣời ta sử dụng 2 khoá: một khoá riêng và một khoá công khai. Hai khoá này khác nhau, không đối xứng với nhau. Ngƣời ta đã ứng dụng một cách thông minh các kết quả của lý thuyết số về hàm số. Khoá công khai ra đời hỗ trợ thêm để giải

Một phần của tài liệu phương pháp thủy vân dễ vỡ khóa công khai ứng dụng trong bài toán chống giả mạo văn bằng (Trang 34 - 67)

Tải bản đầy đủ (PDF)

(67 trang)