Thuật toán YAEA

Một phần của tài liệu Nghiên cứu thuật toán mã hóa DNA và ứng dụng (Trang 45)

5. Cấu trúc của luận văn

2.3 Thuật toán YAEA

2.3.1. Cơ sở lý luận và ý tưởng thuật toán

DNA có tiềm năng để trở thành một hệ thống lưu trữ thông tin dày đặc và lâu dài, vì các lý do sau đây:

Một lượng khổng lồ các dữ liệu thực tế có thể được lưu trữ trong một hợp chất độ trung thực cao ở cấp độ phân tử. Một gram DNA có khả năng lưu trữ cùng một lượng thông tin có thể phù hợp trên một nghìn tỷ đĩa [5][8].

Mặc dù thay đổi điều kiện môi trường và công nghệ, DNA đã kéo dài như một phân tử lưu trữ trong hàng triệu năm.

Các ngân hàng DNA thông tin di truyền của con người của chúng ta và do đó sẽ rất quan trọng để duy trì trong tương lai gần [5][8].

Nhân rộng các bản sao giống hệt nhau của các phương tiện lưu trữ thông tin là tương đối dễ dàng nếu DNA được sử dụng. Máy tính DNA đảm bảo xử lý song song lớn, với một thiết lập phù hợp cho DNA, vấn đề lớn có khả năng có thể được giải quyết bằng cách tìm kiếm song song. Điều này có thể nhanh hơn nhiều so với một máy tính thông thường, giải quyết song song lớn sẽ yêu cầu số lượng lớn các phần cứng, không phải đơn giản hơn DNA[3][8].

Một gen Canis Familiaris được tải về từ ngân hàng Gen. Canis Familiaris nhiễm sắc thể: (gi | 73.948.581 | ref | NW_876270.1 | Cfa1_WGA2_2 Canis Familiaris nhiễm sắc thể có thể cho thuê 1 gen) được gửi từ người gửi đến người nhận các thông tin được mã hóa thông qua một kênh an toàn. Các hình thức nhị phân của thông tin của kí tự văn bản rõ người gửi được chuyển hóa thành dạng DNA (A cho 00, C 01, G 10, T 11) dẫn đến một sợi DNA đại diện cho văn bản [8]. Rõ ràng, mỗi nucleotide DNA chuỗi bốn đại diện cho cặp số nhị phân lần lượt đại diện cho một kí tự bằng văn bản của thông điệp. Người gửi sẽ sắp thành đôi tất cả các DNA sẽ tăng gấp bốn lần chuỗi nucleotide đại diện cho tất cả các kí tự văn bản đối với DNA sợi đơn đại diện cho các bộ gen Canis Familiaris để xác định tất cả các lần xuất hiện và vị trí của mình hay nói cách khác con trỏ của nó.

Ví dụ 2.4. Một chuỗi như CAGA, đại diện cho văn bản rõ kí tự H, xuất hiện 391.919 lần trong Canis Familiaris DNA sợi của chúng có độ dài 53.004.996 cặp base (bp). Điều này sẽ cung cấp cho chúng ta 391.919 có thể cho cùng một vị trí. Sau đó, người gửi lấy ngẫu nhiên từ các sợi đơn Canis DNA một vị trí phối hợp cho mỗi nucleotide DNA sẽ tăng gấp bốn lần chuỗi đại diện một kí tự trong văn bản rõ cho tất cả các ký tự trong văn bản. Quá trình này sẽ tạo ra một tập tin có chứa ngẫu nhiên vị trí của con trỏ cho tất cả các ký tự trong văn bản rõ và gọi tập tin này văn bản mã. Các văn bản mã sau đó được chuyển đến người nhận. Khi nhận được tập tin này, người nhận sử dụng các văn bản mã để khôi phục lại các trình tự của bốn nucleotide DNA chuỗi từ DNA sợi Canis, mà trước đây được giao cho anh ta thông qua một kênh an toàn. Trong thứ tự đảo ngược, hình thức phục hồi DNA của thông tin sẽ được sử dụng để nhận dạng nhị phân của thông tin, sau đó sẽ được chuyển thành văn bản rõ.

2.3.2. Thuật toán

Thuật toán này có sử dụng một thuật toán tìm kiếm tuần tự để xác định vị trí và trả lại ngẫu nhiên một trong nhiều vị trí của bốn nucleotide DNA chuỗi đại diện cho các octet nhị phân của các ký tự văn bản rõ. Một vòng của thuật toán được chính thức tóm tắt như sau:

Thuật toán YAEA DNA

[Các thuật toán sử dụng một kỹ thuật tìm kiếm để xác định vị trí và

trở về vị trí của bốn nucleotide DNA chuỗi đại diện cho các octet nhị phân của các ký tự văn bản rõ.]

* Đầu vào: A [văn bản rõ], M [tập tin nhị phân ngẫu nhiên], RND [G], trình tự nucleotide DNA.

Thuật toán:

1. Trong một tập tin văn bản rõ, mỗi kí tự được tuần tự thay thế mã ASCII của nó:

2. Thay thế mã ASCII của chuỗi DNA của nó: ASCII [A] → DNA trình tự;

3. Bắt đầu từ một vị trí ngẫu nhiên trong một tập tin nhị phân đại diện dưới dạng một sợi đơn chuỗi DNA, bắt đầu tìm kiếm một trong bốn chuỗi nucleotide DNA đại diện cho một kí tự trong văn bản rõ.

Điều này "trình tự sau khi tìm kiếm" các trình tự nucleotide giống như mã ASCII của ký tự văn bản rõ.

4. tìm kiếm tuần tự được thực hiện bắt đầu từ một vị trí ngẫu nhiên X. X → RND [G];

5. Nếu mô hình chính xác được tìm thấy, vị trí của nó sau đó được ghi lại trong một con trỏ (PTR) hoặc vị trí đầu ra của tập tin.

Bắt đầu tìm kiếm tuần tự cho chuỗi SEQ từ vị trí X; Nếu DNA [A] = DNA [SEQ] sau đó tạo ra PTR;

6. Lặp lại quy trình này, bắt đầu từ bước 2, cho tất cả khác ký tự;

Output: PTR, một con trỏ đến vị trí của bốn DNA nucleotide chuỗi đại diện cho các octet nhị phân.

*Sơ đồ thuật toán

Hình 2.5. Sơ đồ thuật toán YAEA thực hiện một vòng lặp

Quá trình giải mã được thực hiện bằng cách sử dụng con trỏ tập tin và các tập tin nhị phân ngẫu nhiên mà người gửi và người nhận đều có sẳn trước. Một

Xác định vị trí vị trí của mỗi DNA octet. trả về Ngẫu nhiên một vị trí của một trong những vị trí nhiều octet có sẵn

người gửi đường truyền an

toàn

người nhận

bản rõ

thông tin mẫu DNA

DNA Octets

bản mã Đường truyền công cộng

bản rõ

thông tin mẫu DNA

người nhận C A T G C G A C C G T C C G C C C G C A A G A A C G A C C G

Trích xuất octet DNA từ Canis DNA sợi theo các văn bản mật mã gửi chia nhỏ thành bốn Octets Chuyển đổi Chuyển đổi ngược lại

bản tóm tắt phương pháp này được thể hiện trong hình 2.3, với khả năng lưu trữ lớn, ngay cả đối với sợi tương đối nhỏ của DNA. Các mô hình tìm kiếm có thể dễ dàng tìm thấy trong một phạm vi từ hàng chục ngàn lần hàng trăm hàng ngàn lần. Điểm này sẽ được có phương pháp điều tra trong phần trên thuật toán phân tích an ninh.. Hơn nữa, việc áp dụng các thuật toán mã hóa các hình ảnh để cố gắng điều tra nếu có bất kỳ mô hình có thể nhìn thấy trong hình ảnh đã mã hóa.

2.3.3. Phân tích An ninh các thuật toán

Toàn bộ tiểu thuyết "Cabin của chú Tom" đã được tải về từ dự án Gutenberg [http://www.gutenberg.org/] và được sử dụng để mã hóa. Hình 2.4 hiển thị dưới đây, cho thấy tất cả 82 kí tự xuất hiện trong cuốn tiểu thuyết, và tổng số tần số xuất hiện của các kí tự trong Canis Familiaris nhiễm sắc thể 1. Như đã trình bày trong hình 2.4, Canis Familiaris với trình tự DNA 53.004.966 bp trong nhiễm sắc thể 1 có khả năng mã hóa tất cả ký tự bản rõ của cuốn tiểu thuyết trong chuỗi sợi do sự phong phú của các nucleotide kết hợp. Tuy nhiên, với mức độ bảo mật cao hơn người ta có thể dùng đến trình tự bộ gen lớn hơn.

Hinh 2.6. Tần số kí tự xuất hiện văn bản rõ trong chuỗi DNA

(Nguồn: Magdy Saeb và cộng sự (2006), A DNA-based implementation of YAEA encryption algorithm, In Computational Intelligence, pp. 120-125)

2.3.4. Kiểm tra bảo mật của thuật toán

Để phát hiện nếu có bất kỳ mối quan hệ gián tiếp giữa các vị trí của tất cả các ký tự văn bản rõ trong văn bản đã chọn, cuốn tiểu thuyết, và họ chọn ngẫu nhiên vị trí trong chuỗi DNA, một phân tích tương quan là thực hiện cho tất cả các kí tự trong 1.015.120 của cuốn tiểu thuyết. Các Kết quả phân tích tương quan Pearson, thể hiện trong hình 2.5, chỉ ra rằng phần lớn các vị trí của các cuốn tiểu thuyết của ký tự chữ cái không có bất kỳ mối quan hệ đáng kể với các

địa điểm DNA của chúng. 71 kí tự trong tổng số 82 kí tự (tổng số ký tự xuất hiện trong tiểu thuyết) có hệ số tương quan Pearson của chúng ở tại khoảng giữa -0,1 và 0,1. 11 kí tự khác, yếu tố cho thấy mối tương quan khoảng giữa từ -0,12 và 0,48.

Hình 2.7. Hệ số tương quan Pearson

(Nguồn: Magdy Saeb và cộng sự (2006), A DNA-based implementation of YAEA encryption algorithm, In Computational Intelligence, pp. 120-125)

Thuật toán mã hóa YAEA là một phương pháp mã hóa đối xứng dựa trên DNA. Phương pháp này là khả năng dễ dàng mở rộng cho các sản phẩm thông tin có kỹ thuật số lớn. Thuật toán rất hiệu quả trong việc mã hóa và giải mã thông tin kỹ thuật số từ sợi DNA sinh học. Ngoài ra, phương pháp đề xuất có thể

dễ dàng được cải thiện bằng cách sử dụng một sợi DNA lớn hơn đã tồn tại. Các tính năng đặc biệt của các thuật toán mã hóa đề xuất được tóm tắt như sau:

Thuật toán là một thuật toán mã hóa đối xứng bao gồm ghi con trỏ đến các vị trí được lựa chọn ngẫu nhiên của các tập tin trong chuỗi DNA tìm kiếm cho mỗi kí tự trong văn bản rõ.

Có thể chứng minh rằng, ngay cả trong một sợi DNA tương đối đơn giản như tìm thấy trong các gia đình chó, các mẫu được tìm thấy có thể từ hàng chục ngàn lần đến hàng trăm ngàn. Do đó, việc cắt giảm hay có thể loại bỏ hoàn toàn các tổn thương do các cuộc tấn công từ bên ngoài . Điều này đã được chứng minh rõ ràng sử dụng hệ số tương quan Pearson.

Độ bảo mật của thuật toán rất cao, đáp ứng được yêu cầu của người sử dụng.

2.4. Tiểu kết chương 2

Trong chương 2, với cấu trúc của chuỗi DNA là rất phù hợp cho việc mã hóa thông tin và lưu trữ dữ liệu tương ứng với 2 bit. Việc bảo mật thông tin dựa trên chuỗi DNA đang là hướng phát triển mới cho việc đảm bảo an toàn cho thông tin. Với hai thuật toán, mã hóa trên dữ liệu nhị phân và thuật toán YAEA đã cho chúng ta thấy được độ bảo mật của hai thuật toán rất cao và an toàn.

Chương 3

CÀI ĐẶT CHƯƠNG TRÌNH

Trong chương 3 này tác giả thực hiện viết chương trình cho thuật toán mã hóa DNA trên dữ liệu nhị phân.

3.1. Cài đặt thuật toán

Thuật toán mã hóa DNA trên dữ liệu nhị phân được chia ra làm 2 giai đoạn: mã hóa và giải mã. Chương trình cài dặt được viết theo ngôn ngữ lập trình Pascal cũng chia ra làm hai chương trình thực hiện mã hóa và giải mã.

Chương trình mã hóa của thuật toán được chia ra làm 3 giai đoạn theo yêu cầu của thuật toán.

Quá trình đầu tiên nhập dữ liệu đầu vào là văn bản cần mã hóa được xử lý trên dữ liệu STRING. Văn bản mã này lần lượt chuyển về bản mã ASCII dưới dạng mã nhị phân.

Function Doi(A:char):String; Var St,st1:string; K,i:byte;

Begin K:=ord(a); St:=''; While k>0 do Begin If k mod 2 =0 then St:='0'+St Else St:='1' + St; k:=k div 2; End;

Giai đoạn 1 biến đổi chuỗi nhị phân tương ứng thành ATCG với (A= 00, T= 01, C= 10, G= 11). Đây là giai đoạn chuyển về 4 thành phần tương ứng của DNA. Mã code như sau:

Procedure ATCG(St:string;Var ST1:string); Var K,i:byte; Begin k:=Length(St);i:=0; st1:=''; While I<k do Begin

if( st[i+1]='0') and (ST[i+2]='0') then ST1:=ST1+'A'; if( st[i+1]='0') and (ST[i+2]='1') then ST1:=ST1+'T'; if (st[i+1]='1') and (ST[i+2]='0') then ST1:=ST1+'C'; if (st[i+1]='1') and (ST[i+2]='1') then ST1:=ST1+'G'; i:=i+2;

End; End;

Với hai đoạn hàm trên của chương trình thì giai đoạn 1 sẽ cho ta lập được bảng mã hóa các chữ cái từ A đến Z dưới đây:

Bảng 3.1. Bảng mã hóa kí tự về mã nhị phân thành 4 nucleotic

Tên chữ cái Mã nhị phân DNA tương ứng

A 01000001 TAAT B 01000010 TAAC C 01000011 TAAG D 01000100 TATA E 01000101 TATT F 01000110 TATC G 01000111 TATG H 01001000 TACA I 01001001 TACT J 01001010 TACC K 01001011 TACG L 01001100 TAGA M 01001101 TAGT N 01001110 TAGC O 01001111 TAGG

P 01010000 TTAA Q 01010001 TTAT R 01010010 TTAC S 01010011 TTAG T 01010100 TTTA U 01010101 TTTT V 01010110 TTTC W 01010111 TTTG X 01011000 TTCA Y 01011001 TTCT Z 01011010 TTCC

Giai đoạn 2: thay đổi chuỗi ATCG thành một trình tự DNA mới với sự thay thế ((A=C) (C=G) (G=T) (T=A)) nhằm tăng sự bảo mật của quá trình mã hóa. Ta có đoạn code sau:

Function Doi2(S:string):string; Var n,i:byte;ST3:string;

Begin St3:='';

For i:=1 to length(S) do Begin

If s[i]='A' then St3:=St3+'C'; If s[i]='C' then St3:=St3+'G'; If s[i]='G' then St3:=St3+'T'; If s[i]='T' then St3:=St3+'A'; End;

Doi2:=St3; End;

Kết hợp giữa hai đoạn mã giai đoạn 1 và giai đoạn 2 của thuật toán thực hiện chương trình lần lượt cho các kí tự từ A đến Z cho kết quả:

+ Đầu tiên mã hóa kí tự A thực hiện chương trình mã hóa cho kết quả như sau:

+ Thực hiện chương trình mã hóa với kí tự B cho kết quả như sau:

Tương tự với các kí tự, tiếp theo ta lập mã cho kí tự cuối cùng Z cho kết quả:

Như vậy ở giai đoạn 2 của thuật toán mã hóa thực hiện chương trinh cho các kí tự từ A đến Z cho ta kết quả bảng dưới đây:

Bảng 3.2. Chuyển đổi các kí tự về trình tự DNA mới

Tên chữ cái Trình tự DNA DNA tương ứng

A TAAT ACCA B TAAC ACCG C TAAG ACCT D TATA ACAC E TATT ACAA F TATC ACAG G TATG ACAT H TACA ACGC I TACT ACGA J TACC ACGG K TACG ACGT L TAGA AC TC M TAGT ACTA N TAGC ACTG O TAGG ACTT P TTAA AACC Q TTAT AACA R TTAC AACG S TTAG AACT T TTTA AAAC U TTTT AAAA V TTTC AAAG W TTTG AAAT X TTCA AAGC Y TTCT AAGA Z TTCC AAGG

Giai đoạn 3: là nhập dữ liệu vào với trình tự DNA tham khảo, sau đó với DNA ở giai đoạn 2 sẽ lần lượt so sánh tìm kiếm với DNA để lấy ra vị trí, và kết quả cuối cùng của thuật toán là chuỗi số. Đoạn mã dưới đây thực hiện giai đoạn 3: procedure doi4(s1:string);

var s2:string;j,m,n,i:integer; Begin

assign(f,fx);S2:=''; reset(f);

read(f,s); n:=length(s); I:=0; WHILE (I<=LENGTH(S1)-2) DO BEGIN j:=0; while j<=length(s)-2 do begin IF S1[I+1]+S1[I+2]=S[J+1]+S[J+2] THEN BEGIN

WRITELN('CHUOI ',S1[I+1]+S1[I+2],' CO VI TRI LA: ',J DIV 2 +1 ); S2:=S2+CHR((J DIV 2 +64)); BREak; END; j:=j+2; END; I:=I+2; END;

FOR I:=1 TO LENGTH(S2) DO write(ord(s2[i])-63);

close(f); end;

Chương trình ta bắt đầu nhập thông tin của trình tự DNA như sau: ATCGAATTCGCGCTGAGTCACAATTCACGCGCTGAGTGAACCGGTA. Lập bảng cho các kí tự từ A đến Z ở giai đoạn 3:

Kết quả của mã hóa kí tự A là: 1410

+ Tương tự với kí tự Z cho thực hiện chương trình mã hóa cho kết quả:

Kết quả của mã hóa kí tự Z là: 322.

Vậy cho thực hiện chương trình mã hóa các kí tự cho bảng sau:

Bảng 3.3. Mã hóa các kí tự đưa về vị trí trên trình tự DNA tham khảo

Tên chữ cái Chuỗi DNA Vị trí trong chuỗi DNA tham khảo

A ACCA 1410 B ACCG 142 C ACCT 147 D ACAC 1414 E ACAA 143 F ACAG 1418 G ACAT 1412 H ACGC 1415 I ACGA 148 J ACGG 1422 K ACGT 149 L AC TC 1413

M ACTA 1423 N ACTG 1417 O ACTT 144 P AACC 321 Q AACA 310 R AACG 32 S AACT 37 T AAAC 314 U AAAA 33 V AAAG 318 W AAAT 312 X AAGC 315 Y AAGA 38 Z AAGG 322

Qúa trình cài đặt và thực hiện chương trình giải mã hoàn toàn ngược lại với chương trình mã hóa.

3.2. Kết quả thực nghiệm

Cho thực hiện hai chương trình mã hóa và giải mã với một số từ khóa để kiểm tra kết quả thực nghiệm của chương trình.

+ Mã hóa từ khóa “PHUYEN” với trình tự DNA tham khảo là: ATCGAATT CGCGCTGAGTCACAATTCACGCGCTGAGTGAACCGGTA. Ta được thông tin mã hóa trên như sau:

Như vậy kết quả mã hóa từ “PHUYEN” là chuỗi số 3211141533381431417 Kết quả của quá trình giải mã cho kết quả như sau:

Như vậy kết quả của giải mã là đưa về thông tin ban đầu là: PHUYEN.

Một phần của tài liệu Nghiên cứu thuật toán mã hóa DNA và ứng dụng (Trang 45)

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

(67 trang)