3.4.1 Mô hình xác thực bản quyền sử dụng chứng chỉ số.
Giả sử A cần có khóa công cộng của B để xác nhận bản quyền . Khi đó, A sẽ nhận xác nhận khóa công cộng của B từ CA Server và sử dụng khóa công cộng của CA để kiểm tra xem đây có thật sự là khóa công cộng của B hay không. A sẽ dễ dàng phát hiện đƣợc xác nhận khóa công cộng giả của B do C tạo ra nhờ vào khóa công cộng của CA.
Mã hóa khóa công cộng có thể gặp phải vấn đề trong việc phân phối khóa nhƣng vấn đề này không nghiêm trọng nhƣ trong việc phân phối khóa của mã hóa đối xứng. Sự chứng thực của khóa công cộng có thể đƣợc thực hiện bởi một tổ chức trung gian thứ ba đáng tin cậy. Sự bảo đảm về tính xác thực của ngƣời sở hữu khóa công cộng đƣợc gọi là sự chứng nhận khóa công cộng. Ngƣời hay tổ chức chứng nhận khóa công cộng đƣợc gọi là tổ chức chứng nhận (CA – Certification Authority).
3.4.2 Sự chứng nhận và kiểm tra chữ ký.
Quá trình chứng nhận chữ ký diễn ra theo hai bƣớc. Đầu tiên, các trƣờng của chứng nhận đƣợc ký và nén bởi thuật toán trộn cho trƣớc. Sau đó, kết quả xuất của hàm trộn, đƣợc gọi là hash digest, đƣợc mã hóa với khóa bí mật của tổ chức CA đã phát hành chứng nhận này.
Hình 3.6: Quá trình ký chứng nhận
Chứng nhận của CA phải đƣợc ký bởi khóa bí mật. Khóa bí mật này phải thuộc quyền sở hữu của CA, và thông qua việc ký chứng nhận của đối tác A, tổ chức CA này chứng nhận sự hiện hữu của đối tác A.
Để có một chứng nhận, một tổ chức CA chỉ cần tạo ra và ký giấy chứng nhận cho chính nó, chứ không cần áp dụng cho một CA khác để chứng nhận. Điều này đƣợc hiểu nhƣ sự tự chứng nhận (self-certification), và một giấy chứng nhƣ thế đƣợc gọi là giấy chứng nhận tự ký (self-signed certificate)
Hình 3.7: Quá trình kiểm tra chứng nhận
Tổ chức CA sử dụng khóa bí mật của nó để ký giấy chứng nhận của đối tác A và dùng cùng khóa bí mật đó để ký giấy chứng nhận cho chính nó. Một đối tác B có thể kiểm tra cả chữ ký trên giấy chứng nhận của đối tác A và chữ ký trên giấy chứng nhận của tổ chức CA thông qua việc dùng khóa công cộng trong giấy chứng nhận của CA. Cả hai giấy chứng nhận của đối tác A và tổ chức CA tạo nên một chuỗi chứng nhận. Quá trình kiểm tra chứng nhận thƣờng yêu cầu sự kiểm tra của chuỗi chứng nhận. Sự kiểm tra kết thúc khi một giấy chứng nhận tự ký đƣợc kiểm tra ở cuối chuỗi.
Với mô hình trên các thực thể tham gia có thể chứng thực ngƣời trao đổi thông tin với mình thông qua một tổ chức đƣợc tin cậy.
3.5 PHƢƠNG PHÁP THỦY VÂN SỐ.
3.5.1 Kỹ thuật thủy vân LSB ứng dụng chống xuyên tạc ảnh.
3.5.1.1 Kỹ thuật LSB (Least Signification Bits).
Kỹ thuật nhúng thông tin vào các bit có trọng số thấp là phƣơng pháp rất đơn giản và rất tự nhiên. Các bit có trọng số thấp có nghĩa là các bit ít quan trong nhất, các bit đó gần nhƣ không có khả năng ảnh hƣởng đến việc hiển thi của ảnh. Phƣơng pháp LSB đƣợc áp dung trên các ảnh bitmap không nén và các ảnh có dùng bảng mầu. Ý tƣởng chính của kỹ thuật này là lấy từng bit của mẩu tin cần nhúng rải chúng trên ảnh phủ, bằng cách chèn chúng vào các bit có trọng số thấp.
Kỹ thuật LSB ứng dụng cho việc chống xuyên tạc ảnh phải thỏa mãn tính chất: · Tính vô hình: Mắt thƣờng không thể phát hiện sự thay đổi của ảnh trƣớc
khi nhúng thông tin và ảnh sau khi nhúng.
· Tính không bền vững: Thông tin nhúng phải dễ bị thay dổi (dễ vỡ) khi có sự tác động làm thay đổi nội dung ảnh dù tác động là nhỏ nhất.
· Tính phân bố: Các bít của thông tin nhúng cần đƣợc phân bố đều trên ảnh để chống lại sự xuyên tạc ảnh trên từng vùng.
Trong luận văn này lựa chọn môi trƣờng mang tin là ảnh bitmap không nén 24-bit mầu. Với loại ảnh này cho phép nhúng một lƣợng thông tin đáng kể, việc thực hiện nhúng thông tin vào ảnh dễ thực hiện và khả năng xác thực của thuật toán cũng bảo đảm do mỗi điểm ảnh đều có thể đƣợc dùng để lƣu trữ các bit giấu. Loại ảnh bitmap 24-bit mầu có đặc điểm mỗi điểm ảnh đƣợc lƣu bởi 24-bit chia thành 3 byte mô tả 3 mầu cơ bản là R (red), G (green), B (blue).
Hình 3.8: Biểu diễn ảnh Bitmap không nén
Trong hình 2.1 biểu diễn ma trận điểm ảnh trong ảnh bitmap mỗi điểm lƣu trữ 3 byte (3 × 8 = 24 bit) tƣơng tứng với 3 mầu R, G, B mỗi mầu có giá trị từ 0 đến 255, ứng với mỗi byte mầu thành phần, bít đƣợc khoanh tròn gọi là bít có trong số thấp vì nếu có thay đổi bit đó thì giá trị mầu tƣơng ứng chỉ tăng hoặc giảm một đơn vị do đó mắt ngƣời rất khó phát hiện sự thay đổi này. Điều này đảm bảo tính vô hình của kỹ thuật thủy vân LSB.
Với kỹ thuật thủy vân LSB trên ảnh 24 bit mầu, có thể đánh giá đƣợc dung lƣợng tin đƣợc dấu hay khả năng giấu tin:
· Nếu giấu 1 bit trọng số thấp nhất của 24 bit mầu (bit thứ nhất của mầu Blue) ta có: 1/24 (bit ẩn/bit dữ liệu.)
· Nếu giấu 3 bit trọng số thấp của 24 bit mầu (3 bit có trong số thấp tương ứng của mầu R, G, B) ta có: 3/24 = 1/8 (bit ẩn/ bit dữ liệu)
· Nếu giấu 6 bit trong số thấp của 24 bit mầu (2 bit thấp nhất của 3 mầu tương ứng R, G, B) ta có: 6/24 = 1/4 (bít ẩn/bit dữ liệu).
Nhƣ vậy có thể thấy kỹ thuật thủy vân LSB cho phép lƣợng tin giấu khá lớn tỷ lệ với kích thƣớc ảnh. Ví dụ ta có ảnh với độ phân giải 800×600 pixel, nếu mỗi điểm ảnh giấu 3 bit thì ta sẽ giấu đƣợc: 4320000 bit = 527 (KB), kích thƣớc này tƣơng ứng với 1 đoạn văn khá dài. Việc tính toán trƣớc độ khả năng giấu tin cho phép chúng ta tạo ra một mẫu tin nhúng tƣơng ứng và trải đều trên bề mặt ảnh phủ.
Vấn đề tiếp theo là phải tạo ra một chuỗi bit nhúng có quy luật để cho phép khi tách thông tin đƣợc thủy vân trong ảnh chúng ta có thể phát hiện đƣợc sự thay đổi nội dung ảnh nếu chuỗi bít đƣợc tách ra phá vỡ quy luật trƣớc khi nhúng nếu không thì ảnh vẫn nguyện vẹn. độ dài mẩu tin nhúng phải là bội số quả số bit nhúng trên mỗi điểm ảnh. Ví dụ: (01)n
, (10)n, (0)n, (1)n, n > 1.
Qua trình nhúng mẫu tin phải tạo ra một phân bố đều trên bề mặt ảnh phủ, điều này đƣợc giải quyết bằng một hàm rải. Hàm rải là một hàm cần phải chọn các điểm ảnh tƣơng đối ngẫu nhiên. Tuy nhiên tính nhẫu nhiên của thuật toán rải bit nhúng cần có quy luật và đƣợc xuất phát từ một hạt giống (số đầu tiên), điều này cho phép thuật toán tách thông tin nhúng cần biết bắt đầu từ đâu. Ví dụ: hàm Ramdom(seed), trong đó seed là hạt giống của thuật toán sinh số ngẫu nhiên.
3.5.1.2 Thuật toán nhúng thủy vân bằng kỹ thuật LSB.
Input:
- Một ảnh Bitmap không nén 24bit mầu. - Một khóa (hạt giống sinh số ngẫu nhiên) Output:
- Ảnh sau khi nhúng thủy vân.
1/. Quá trình nhúng thủy vân vào ảnh phủ:
Hình 3.10 Qúa trình nhúng tin với kỹ thuật LSB
Thuậttoán nhúng thông tin vào ảnh phủ:
1. Chọn một điểm ảnh ban đầu cho bởi hạt giống (seed) 2. Giấu chiều dài mẫu tin vào điểm ảnh đó.
3. Duyệt mẫu tin trích 3 bit một:
a. Chọn ngẫu nhiên điểm ảnh chưa dùng (hạt giống seed) b. Giấu 3 bit đã chọn vào điểm ảnh đó.
Mẫ tin nhúng có quy luật (0101.., 0000..., 1111...)
Ảnh phủ Hạt giống sinh
số ngẫu nhiên Hàm rải
Thuật toán nhúng
LSB
Ảnh đã đƣợc thủy vân
2/. Quá trình tách thông tin nhúng và Xác thực ảnh:
Hình 3.11 Qúa trình tách tin và Xác thực ảnh
Thuậttoán tách tin nhúng và xác thực ảnh:
1. Chọn điểm ảnh có vị trí bằng giá trị của hạt giống (seed)
2. Lấy giá độ dài của dãy bit nhúng từ điểm ảnh đó. L= Độ dài chuỗi bít. 3. Khởi tạo i = 0, W ={} chuỗi bít đƣợc tách
4. Trong khi i < L thực hiện:
c. Chọn ngẫu nhiên điểm ảnh j = Random(seed) d. Tách 3 bit trọng số thấp tại điểm ảnh j thêm vào W. e. i = i +3
5. Kiểm tra quy luật của chuổi bít vừa đƣợc tách ở bƣớc 4.
a. Nếu W vẫn có quy luật như ban đầu thì ảnh ĐƢƠC XÁC THỰC
b. Nếu W không có quy luật thì ảnh KHÔNG ĐƢỢC XÁC THỰC.
Dã bit tách đƣơc Hạt giống sinh
số ngẫu nhiên Hàm rải
Thuật toán tách thông tin LSB Ảnh đã đƣợc thủy vân Quy luật dãy bit? Đúng Sai Xác thực Không Xác thực
Trong phần trên cúng ta đã nghiên cứu kỹ thuật thủy vân số LSB trên ảnh Bitmap không nét 24-bit mầu. Và ứng dụng của kỹ thuật này vào việc chống xuyên tạc ảnh. Những năm gần đây có nhiều phƣơng pháo chống xuyên tạc ảnh đã đạt đƣợc kết quả tốt nhƣng những phƣơng pháp đó đều rất phức tạp. Phƣơng pháp LSB có ƣu thế là kỹ thuật khá đơn giản và hiệu quả. Nhƣng việc ứng dụng LSB còn nhiều yếu điểm nhƣ việc chọn định dạng ảnh phủ, kích thƣớc mẫu tin đƣợc thủy vân, độ đo nhiễu...
3.5.2 Kỹ thuật thủy vân bền vững trên miền tần số.
Thuật toán dƣới đây sử dụng phƣơng pháp trải phổ trong truyền thông để nhúng thuỷ vân. Giải tần đƣợc sử dụng để chứa tín hiệu thuỷ vân là miền tần số giữa của một khối biến đổi cô sin rời rạc DCT (discrete cosne transformation) 8×8. Trong đó, các khối DCT 8×8 là những khối ảnh cùng kích thƣớc đã đƣợc chọn ra ngẫu nhiên từ ảnh ban đầu và đƣợc áp phép biến đổi cosin rời rạc DCT để chuyển sang miền tần số. Mỗi tín hiệu thuỷ vân sẽ đƣợc chứa trong một khối.
Kỹ thuật thủy vân trên miền tần số ứng dụng bảo vệ bản quyền phải thỏa mãn tính chất:
· Tính vô hình: Mắt thƣờng không thể phát hiện sự thay đổi của ảnh trƣớc khi nhúng thông tin và ảnh sau khi nhúng.
· Tính bền vững: Thông tin nhúng phải bền vừng dƣới một số biến đổi trên ảnh.
3.5.2.1 Biến đổi Cosin rời rạc – DCT.
DCT biến đổi dữ liệu dƣới dạng biên độ thành dữu liệu dƣới dạng tần số. Mục đích của quá trình biến đổi là thay đổi dữ liệu biểu diễn thông tin : dữ liệu của ảnh con tập trung vào một phần nhỏ các hệ số hàm truyền. DCT đã trở thành tiêu chuẩn quốc tế cho các hệ thống mã chuyển vị bởi nó có đặc tính gói năng lƣợng tốt, cho kết quả là số thự và có thuật toán nhanh để thể hiện chúng.
DCT hai chiều (2-D) đƣợc dùng cho các khối N×N giá trị các điểm ảnh. Quá trình DCT theo chiều thuận định nghĩa nhƣ sau :
1 1 0 0 2 ( 2 1) ( 2 1) '( , ) ( ) ( ) ( , ) c o s c o s 2 2 N N x y u x v y b u v C u C v b x y N N N Biến đổi DCT ngược :
1 1 0 0 2 ( 2 1) ( 2 1) ( , ) ( ) ( ) '( , ) c o s c o s 2 2 N N u v u x v y b x y C u C v b u v N N N Trong đó: 1 2 0 ( ) 1 if u C u o th e r w is e
Biến đổi DCT 2 chiều theo chiều thuận và nghịch không làm thay đổi ảnh gốc, điều này đƣợc thực hiện với ánh xạ 1-1. Với ma trận A có NxN điểm ảnh qua biến đổi DCT thuận sẽ nhận đƣợc A’ có NxN hệ số DCT tƣơng ứng, sau đó cho A’ qua phép biến đổi DCT ngƣợc sẽ nhận đƣợc đúng ma trận A nhƣ ban đầu. Do đó có thể nói trong phép nén ảnh JPGE phép biến đổi DCT không làm mất mát thông tin mà nó chỉ tạo ra một ma trận hệ số DCT mà cấu trúc ảnh gốc đƣợc tập trung vào một số hệ số nhất định, do đó các hệ số còn lại có thể đƣợc lƣợc bớt bằng phép nén Huffman.
3.5.2.2 Thuật toán nhúng thủy vân.
Input:
- Một chuổi bit thể hiện bản quyền. - Một ảnh.
Output:
- Ảnh đã nhúng thủy vân. - Khóa để giải mã.
1/. Qúa trình nhúng thủy vân.
Hình 3.12: Quá trình nhúng thủy vân.
Thuậttoán nhúng thông tin vào ảnh phủ:
1. Chia ảnh có kích thƣớc m × n thành (m×n)/64 khối 8×8, mỗi bít sẽ đƣợc giấu trong một khối.
2. Chọn một khối bất kì B và biến đổi DCT khối đó thu đƣợc B’
3. Chọn hai hệ số ở vị trí bất kì trong miền tần số ở giữa của khối DCT, giả sử đó là b’(i,j) và b’(p,q). Bit si sẽ đƣợc nhúng thỏa mãn điều kiện:
'( , ) '( , ) '( , ) '( , ) i i b i j b p q n ê u s 1 b i j b p q n ê u s 0
8x8 pixel block (B) DCT coefficients (B’)
DCT zig-zag
Choosing embed position
Embedding Algorithm (data: bit string (s)) IDCT
b’(4,1), b’(3,2) Watermarked block
Chú ý: Khi ảnh bị nén, để tránh trƣờng hợp hệ số DCT của thuật toán bị lƣợc bớt, yêu cầu | b’(i,j) b’(p,q)| > x, với x > 0.
Trong trƣờng hợp (si = 1, b’(i,j) b’(p,q)) và (si = 0, b’(i,j) > b’(p,q)) ta thực hiện đổi giá trị của 2 hệ số b’(i,j) và b’(p,q).
1/. Qúa trình đọc thủy vân.
Hình 3.13: Quá trình rút/trích thủy vân
Thuậttoán tách tin nhúng và xác thực ảnh:
1. Chia ảnh có kích thƣớc m × n thành (m×n)/64 khối 8×8. 2. Chọn một khối bất kì B và biến đổi DCT khối đó thu đƣợc B’.
3. Chọn hai hệ số ở vị trí bất kì trong miền tần số ở giữa của khối DCT, giả sử đó là b’(i,j) và b’(p,q). Bit si sẽ đƣợc nhúng thỏa mãn điều kiện.
a. Nếu b’(i,j) > b’(p,q) thì gán si = 1. b. Nếu b’(i,j) b’(p,q) thì gán si = 0
Watermarked block DCT coefficients (B’)
DCT zig-zag
Choosing extract position
Extraction Algorithm (data: bit string (s)) IDCT
b’(4,1), b’(3,2) Watermarked block
Trên đây là một thuật toán nhúng thuỷ vân vào ảnh tĩnh sử dụng kỹ thuật giấu tin trên miền biến đổi cosin rời rạc. Ảnh đƣợc chia thành các khối 8×8, các khối này đƣợc chọn một cách ngẫu nhiên để nhúng thuỷ vân. Mỗi khối sẽ đƣợc áp dụng phép biến đổi cosin rời rạc (DCT) để chuyển dữ liệu về tần số của khối ảnh. Miền tần số thấp của khối ảnh đã đƣợc chứng minh là chứa dữ liệu nhìn thấy của ảnh, các thay đổi dữ liệu trên miền này sẽ dẫn đến thay đổi đáng kể ảnh hiển thị. Ngƣợc lại, miền tần số cao chứa dữ liệu ảnh không ảnh hƣởng đáng kể đến tri giác ảnh. Đây là miền tần số cho phép thay đổi mà không gây nhiễu nhiều đến ảnh. Tuy nhiên, thuỷ vân trong miền này lại không bền vững với các phép biến đổi ảnh thông thƣờng. Với thuật toán này, miền đƣợc chọn để giấu tin là miền có tần số ở giữa tần số cao và tần số thấp, kết quả thực nghiệm của thuật toán cũng cho thấy thuỷ vân đảm bảo đƣợc tính chất ẩn trên ảnh và bền vững trên một số phép biến đổi ảnh thông thƣờng.
Nhóm các kĩ thuật biến đổi miền tần số ảnh (frequency image transforms): Nhóm kĩ thuật này sử dụng một phƣơng pháp biến đổi trực giao nào đó, chẳng hạn nhƣ Cosine rời rạc, hay Fourier… để chuyển miền không gian ảnh sang miền tần số. Thuỷ vân sẽ đƣợc nhúng trong miền không gian tần số của ảnh theo kĩ thuật trải phổ trong truyền thông. Đây là kĩ thuật phổ biến nhất với nhiều thuật toán và đƣợc hứa hẹn là một phƣơng pháp tốt giải quyết vấn đề đảm bảo hai thuộc tính quan trọng của thuỷ vân sau khi giấu.
Chƣơng 4: THỬ NGHIỆM CHƢƠNG TRÌNH
4
4.1 CƠ SỞ LÝ THUYẾT.
Môi trƣờng lập trình là Visual Studio 2005, với ngôn ngữ sử dụng là C#.
Chƣơng trình sử dụng phƣơng pháp Thủy vân ẩn trên môi trƣờng ảnh số, kỹ thuật đƣợc sử dụng trong chƣơng trình là kỹ thuật giấu tin bằng các bít có trong số