+7

Thuỷ vân: một giải pháp bảo vệ bản quyền sản phẩm số hiệu quả

Trong thời đại công nghệ số hiện nay, các sản phẩm công nghệ số như ảnh, nhạc, phim, tài liệu, … đều có thể được bán trên mạng và quản lý một cách tập trung bởi một nhà phân phối. Người dung đầu cuối có thể mua được các sản phẩm số này thông qua việc mua bán trực tuyến và tải các sản phẩm số vào các thiết bị cá nhân của mình để sử dụng như xem phim, nghe nhạc, đọc tài liệu, xem ảnh, … Đương nhiên, các sản phẩm số này là các sản phẩm có chất lượng cao và có thể được scale cho phù hợp với các thiết bị cá nhân của người sử dụng để đảm bảo chất lượng luôn tốt trong quá trình người dùng đầu cuối sử dụng.

Tuy nhiên, một vấn đề mà các nhà kinh doanh sản phẩm số đang gặp phải đó là vấn nạn sao chép sản phẩm số bất hợp pháp, tiếp đến là các kênh phân phối các sản phẩm bản quyền này bất hợp pháp dẫn đến ảnh hưởng đến lợi ích kinh doanh của chính tác giả và của nhà phân phối được phép độc quyền phân phối sản phẩm này.

Như chúng ta biết, việc sử dụng bất hợp pháp phim, nhạc để phân phối cho người xem online đang được diễn ra rất phổ biến tại Việt nam. Các kênh online này có thể trở nên nhộn nhịp với các phim vừa ra lò tại các rạp phim của các hãng phim nổi tiếng. Chúng ta có thể truy cập vào các diễn đàn cung cấp phim miễn phí này để yêu cầu phim, xin phụ đề và ngay lập tức sẽ được cung cấp phim tương ứng với chất lượng bản cam, SD hay thậm chí cả phim chất lượng HD. Như vậy, việc bảo vệ bản quyền tác giả trong nước dường như đang bị thả lòng mặc dù nhà nước đã có được hành lang pháp lý và các chế tài đối với những người sử dụng bất hợp pháp bản quyền sản phẩm trí tuệ. Để đảm bảo việc bảo vệ bản quyền cho các tác giả để họ yên tâm phát triển tài năng của mình để cống hiến cho đất nước, cần phải có một giải pháp hợp lý hơn cho việc bảo vệ những đứa con của họ không bị sử dụng một cách vô ý thức và thiếu trách nhiệm, không tôn trọng quyền tác giả và kiếm lời bất hợp pháp.

Rất nhiều các ý kiến được đưa ra để làm sao có thể có được một giải pháp hiệu quả và phù hợp cho mô hình ở Việt nam nhằm nâng cao ý thức trong việc bảo vệ bản quyền tác giả, không vi phạm bản quyền sản phẩm. Về mô hình chung, có thể xét đến các khía cạnh sau có ảnh hưởng rất lớn đến việc tuân thủ Luật bản quyền, Luật tác giả:

  • Yếu tố con người: Ý thức con người được hình thành trong giáo dục là một yếu tố vô cùng quan trọng trong việc nâng cao tinh thần tôn trọng bản quyền của các tác giả, tôn trọng tài năng của tác giả và ý thức được việc giúp đỡ cho tác giả tiếp tục sáng tạo ra các sản phẩm trí tuệ mới phục vụ lợi ích người dùng. Việc tôn trọng bản quyền tác giả thông qua việc người dùng chấp hành nghiêm Luật bản quyền, mua sản phẩm bản quyền theo đúng luật và sử dụng sản phẩm mình mua theo đúng phạm vi được cho phép, không sao chép, phân phối vô ý thức trên mạng. Tôi đánh giá việc xây dựng yếu tố con người rất quan trọng bởi nó xây dựng một ý thức hệ mới có thể thay đổi được thói quen vốn có đã ăn sâu vào tiềm thức của chúng ta. Tuy nhiên, nếu chúng ta ko tự mình thay đổi thì các thế hệ sau này cũng không thể thay đổi theo được. Chúng ta cần cố gắng để thay đổi quan điểm của mình trong việc sử dụng các sản phẩm trí tuệ và tôn trọng việc sử dụng phù hợp các sản phẩm đó trong mục đích phục vụ công việc và phục vụ cộng đồng.
  • Yếu tố pháp lý và thực thi pháp lý: Để có được giải pháp giúp các tác giả an tâm sáng tạo thì một hành lang pháp lý cần được xây dựng phù hợp cho việc vận hành và quản lý quyền tác giả. Luật bản quyền tác giả cần được phổ biến rộng rãi để người dùng hiểu được tầm quan trọng của các sản phẩm bản quyền đối với tác giả như thế nào. Đồng thời, việc vận hành và duy trì liên tục Luật bản quyền cũng là một vấn đề cần thiết để ý thức người dùng thực hiện.
  • Giải pháp phần cứng: Duy trì được các sản phẩm bản quyền theo đúng luật cũng là một vấn đề được các nhà phân phối quan tâm và họ có thể dùng giải pháp phần cứng để phân phối sản phẩm bản quyền của họ. Họ bán các token, các thiết bị phần cứng để người dùng chỉ có thể sử dụng các sản phẩm này trên các thiết bị của họ mà thôi. Giải pháp phần cứng là một giải pháp rất hiệu quả trong việc hạn chế sao chép và phân phối bất hợp pháp. Tuy nhiên, giải pháp này tốn chi phí và không được mềm dẻo trong triển khai dịch vụ.
  • Giải pháp phần mềm: Để giảm thiểu chi phí và linh hoạt trong triển khai dịch vụ, nhà phân phối cũng nghĩ đên giải pháp phần mềm để quản lý các sản phẩm bản quyền. Trong giải pháp này, họ tìm cách cấy các thông tin bản quyền vào các sản phẩm số đển chứng minh bản quyền tác giả và phát hiện các nguồn phân phối bất hợp pháp. Giải pháp này cũng hứa hẹn một giải pháp phù hợp cho các dịch vụ phân phối sản phẩm số hiện nay.

Trong bài này, tôi giải thích một phương pháp đơn giản trong việc triển khai các giải pháp phần mềm để chứng minh bản quyền tác giả trong sản phẩm số: kỹ thuật thuỷ vân. Kỹ thuật thủy vân là một giải pháp dùng để nhúng thông tin bản quyền vào các sản phẩm số cần được bảo vệ. Các bit thông tin được giấu vào trong các thành phần của phim, nhạc hay ảnh. Ví dụ, trong ảnh thì các bít thông tin bản quyền này sẽ được giấu vào trong các điểm ảnh (pixel) của ảnh, trong đó pixel là thành phần cơ bản nhất của một tấm ảnh.

Giải pháp giấu tin đơn giản nhất được ứng dụng trong giấu tin văn bản có thể nói là giải pháp lật bít cho bit thông tin có trọng số quan trọng nhỏ nhất, còn gọi là giải pháp LSB (Least Significant Bit). Để tiến hành lật bit giấu thông tin, thông thường ta sẽ trích từng pixel trong ảnh để lật các bit của từng pixel. Để lấy ví dụ cho cách này, ta thử nhìn ví dụ sau: スクリーンショット 2015-11-30 23.00.06.png Giả sử ta trích 1 block ảnh 4x4 (cover image) gồm các pixel có giá trị là 25, 26, 27, ..., 58. Tất nhiên, các pixel là các giá trị nguyên nắm trong khoảng giá trị [0,255] (chắc hẳn là các bạn cũng đã biết). Ta sẽ lần lượt nhúng từng bit của thông tin bản quyền vào từng giá trị của pixel này. Giả sử, ta sẽ giấu kí ký tự "A" vào block ảnh này nhé! Để làm đc việc này, ta phân tích ký tự "A" thành chuỗi nhị phân và ta được chuỗi "00100001". OK, vậy ta sẽ giấu từng bit này vào bit LSB của từng pixel là được.

Ta sẽ phân tích từng pixel thành chuỗi nhị phân và lật bit LSB sao cho giống các bit trong ký tự "A". Chẳng hạn, pixel "25" được phân tích thành "00011001" => bit LSB là "1". Vậy để giấu bit đầu tiên của chữ "A" là "0" thì ta thay bit LSB của "25" từ "1" thành "0". Do đó, pixel "25" sẽ bị thay đổi thành "24" trong ảnh bản quyền (watermarked image).

Tương tự như vậy, ta lần lượt giấu hết các bit của các ký tự cần giấu và bit LSB của các pixel và ta sẽ được ảnh giấu thông tin bản quyền. Trong ví dụ của chúng ta thì giá trị các pixel sẽ thay đổi thành 24, 26, 27, ...., 58. Quá đơn giản phải không nào.

Để chuẩn bị dữ liệu ta dùng ảnh sau để giấu thông tin: lena.jpg

Thông tin bản quyền tôi dùng logo sau để nhúng: titech.jpg

Vậy để thử thuật toán này, ta sẽ tiến hành các bước như sau:

[Nhúng bản quyền]

  • Step 1: Đọc ảnh gốc
  • Step 2: Đọc thông tin bản quyền
  • Step 3: Nhúng thông tin bản quyền tạo ảnh watermark

Code cho bài toán nhúng như sau:

#include <stdio.h>
#include <cv.h>
#include <cxcore.h>
#include <cvaux.h>
#include <highgui.h>

int *alloc_int_1D(int rows);
void free_int_1D(int *array);

int main(int argc, char** argv)
{
	int i, j, n = 0;
	IplImage* img;
	IplImage* img1;
	FILE *fp;
	int fp_size;
	int *wm;

	char* filename = argc >= 2 ? argv[1] : (char*)"Girl.jpg";
	char* outfilename = argc >=2 ? argv[2] : (char*)"Girl.emb.jpg";
	if( (img = cvLoadImage( filename, 1)) == 0 )
      return -1;

    img1 = cvCreateImage( cvGetSize(img), IPL_DEPTH_8U, 3);

	fp = fopen( "../experimentalResults/originalWatermarks/titech.gray", "rb" );
	if( fp == NULL )
	{
		puts( "titech.grayが開けません" );
		return -1;
	}

	fseek(fp, 0L, SEEK_END);
	fp_size = ftell(fp);
	fseek(fp, 0L, SEEK_SET);
	wm = (int *)alloc_int_1D(fp_size);
	for(i = 0; i < fp_size; i++){
		wm[i] = fgetc(fp);
	}

	CvScalar s,s1;
	int h=img->height;
	int w=img->width;

	for(i=0; i<w; i++){
		for(j=0; j<h; j++){
			s=cvGet2D(img,i,j);
			s1.val[0]=s.val[0] + (double)wm[n%fp_size]/255 - (double)((int)(s.val[0])%2);
			s1.val[1]=s.val[1];
			s1.val[2]=s.val[2];
			cvSet2D(img1,i,j,s1);
			n++;
		}
	}

	cvSaveImage(outfilename, img1, 0);

	cvReleaseImage(&img);
	cvReleaseImage(&img1);
	fclose(fp);

	return 1;
}

Sau khi nhúng, ảnh nhúng sẽ như sau: lena.jpg

Về cơ bản ảnh được nhúng thông tin có chất lượng ảnh rất tốt. Người dùng không hề biết có thông tin được nhúng vào trong ảnh. Các bạn có phát hiện sự khác biệt không??

[Trích thông tin bản quyền]

  • Step 1: Đọc ảnh nhúng
  • Step 2: Trích từng pixel
  • Step 3: Trích bit LSB
  • Step 4: Tổng hợp thông tin bản quyền

Code cho bài toán trích như sau:

#include <stdio.h>
#include <cv.h>
#include <cxcore.h>
#include <cvaux.h>
#include <highgui.h>

int *alloc_int_1D(int rows);
void free_int_1D(int *array);

int main(int argc, char** argv)
{
	int i, j, n = 0;
	IplImage* img;
	FILE *fp;
	int fp_size;
	int *wm;

	char* filename = argc >= 2 ? argv[1] : (char*)"Girl.emb.jpg";
	if( (img = cvLoadImage( filename, 1)) == 0 )
      return -1;

	fp = fopen( "extract.gray", "wb" );
	if( fp == NULL )
	{
		puts( "extract.grayが開けません" );
		return -1;
	}

	wm = (int *)alloc_int_1D(64*64*10);
	for(i = 0; i < 64*64*10; i++){
		wm[i] = 0;
	}

	CvScalar s;
	int h=img->height;
	int w=img->width;

	for(i=0; i<w; i++){
		for(j=0; j<h; j++){
			s=cvGet2D(img,i,j);
			wm[n] = (int)(s.val[0])%2;
			fputc(wm[n]*255,fp);
			n++;
		}
	}

	cvReleaseImage(&img);
	free_int_1D(wm);
	fclose(fp);

	return 1;
}

Quá đơn giản phải không nào. Vậy khi hiển thị thông tin bản quyền được trích ra ta được thông tin gì? Tất nhiên là hình ảnh của 1 loạt các logo được nhúng vào trong ảnh đúng không? Tôi show bên dưới nhé!

test.jpg

Vậy rõ ràng, việc nhúng thông tin vào một hình ảnh sẽ nhúng được một lượng thông tin rất lớn mà không làm chất lượng của ảnh bị ảnh hưởng. Để đánh giá được độ ảnh hưởng của nhúng đến chất lượng của ảnh thì ta hay dùng các thông số đánh giá chủ quan như MOS, đánh giá khách quan như PSNR, SSIM, ...

Tuy nhiên, trong bài này tôi chưa đề cập đến các hình thức đánh giá chất lượng ảnh. Tôi chỉ trọng tâm đến vấn đề giải quyết việc tranh chấp bản quyền thông qua việc nhúng các thông tin bản quyền vào trong bản thân sản phẩm số. Đồng thời, khi cần chứng minh thông tin bản quyền đó, chúng ta chỉ cần trích thông tin và chỉ ra thông tin bản quyền đó của bản thân mình.

Một góc nhỏ của khía cạnh kỹ thuật giúp cho việc bảo vệ bản quyền sản phẩm thôi mà. Tuy nhiên, LSB là kỹ thuật tương đối kém bền vững nên khi ảnh bị biến đổi thì thông tin bản quyền cũng sẽ bị mất đi. Để khắc phục vấn đề này thì ta cần phải đi nghiên cứu các kỹ thuật bền vững hơn.

Mọi câu hỏi xin cứ thoải mái các bạn nhé!

--ThanhTM--


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.