Nghiên cứu sử dụng công nghệ FPGA để cấu hình các phần tử điều khiển đƣợc

Một phần của tài liệu Nghiên cứu về hàm băm trên cơ sở mạng hoán vị thay thế điều khiển được và ứng dụng trong mã hóa xác thực văn bản (Trang 63 - 87)

khiển đƣợc.

Trong trƣờng hợp thực hiện FPGA, các phần tử điều khiển đƣợc thuộc đủ loại đƣợc thực hiện bằng việc sử dụng các ô bộ nhớ 4bit, mỗi ô thực hiện một hàm logic 3 biến. Tuy nhiên, mỗi một ô này lại có thể thực hiện một hàm logic bất kỳ 4 biến. Ta có thể sử dụng các cặp hàm này để xây dựng các phần tử điều khiển đƣợc điều khiển bởi các vec tơ điều khiển 2bit (v, z) lựa chọn đƣợc 4 biến đổi cơ bản , , , và (xem hình 3.12).

Các đơn vị điều khiển đƣợc này đƣợc thiết kế một cách thích hợp và có tính phi tuyến cao hơn các phần tử điều khiển đƣợc . Do vậy, ta có thể sử dụng các phần tử để thay thế các phần tử trong các phần tử hay thay thế các phần tử trong các phần tử , với điều kiện có cấu trúc các phần tử toán tử phụ thuộc dữ liệu tiên tiến hơn. Kết cấu tổng quát của các phần tử toán tử phụ thuộc dữ liệu nhƣ vậy đƣợc biểu diễn ở hình 2.4.

Để xây dựng các phần tử , ta có thể sử dụng các kiến trúc của các phần tử và ba cơ chế xây dựng cấu trúc lặp xét đến ở phần trƣớc. Theo [8] hai dạng biểu diễn của các phần tử gắn liền với các biểu thức sau:

Ta cũng có thể biểu diễn đầu ra của các phần tử điều khiển đƣợc nhƣ sau:

Với các giá trị ns cho trƣớc, khi thực hiện FPGA của các phần tử và yêu cầu sử dụng cùng một số lƣợng các tài nguyên phần cứng; tuy nhiên,

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

một cách tổng quát thì phần tử là một toán tử mật mã có hiệu quả cao hơn cả.

Để lựa chọn đƣợc các phần tử điều khiển đƣợc phù hợp làm các khối cấu trúc cơ bản trong thiết kế các mạng hoán vị thay thế điều khiển đƣợc thực hiện các phép biến đổi mật mã ta hoàn toàn có thể sử dụng các tiêu chí sau:

Mỗi một trong 2 đầu ra của các phần tử điều khiển đƣợc phải là một hàm logic cân bằng có tính phi tuyến với 4 biến.

Mỗi biến thể của các phần tử điều khiển đƣợc phải là một phép biến đổi

đối hợp song ánh .

Tổng 2 đầu ra là một hàm logic 4 biến. Có tính phi tuyến NL .

Trƣờng hợp các hàm logic 3 biến thì toàn bộ các hàm logic cân bằng có tính phi tuyến f mang giá trị phi tuyến NL (f( . Tuy nhiên, trƣờng hợp các hàm logic cân bằng phi tuyến tính với 4 biến ta có 2 giá trị NL khác nhau là 2 và 4. Do đó, khi phân loại các phần tử phi tuyến tính , ta cần xem xét đến các giá trị NL khác nhau. Ta cũng có thể làm các yêu cầu của tính phi tuyến có tính bền vững hơn trong tiêu chí lựa chọn và trình bày nhƣ sau:

Mỗi một trong 2 đầu ra của các phần tử điều khiển đƣợc là một hàm logic cân bằng 4 biến có giá trị tính phi tuyến NL (y1)( NL .

Mỗi một biến thể của các phần tử điều khiển đƣợc phải là phép biến đổi

song ánh .

Tổng 2 đầu ra là một hàm logic 4 biến có tính phi tuyến

NL .

Trong trƣờng hợp nhƣ vậy, chúng ta sẽ giới hạn số lƣợng các phần tử ; tuy nhiên, chúng ta sẽ giới hạn đồng thời cả tập các phần tử điều khiển đƣợc phù hợp làm các phần tử mật mã cơ bản. Ví dụ, các phần tử điều khiển đƣợc mô tả bằng hàm logic có giá trị phi tuyến tính là 2 có thể có ích cho việc xác định những thay

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

đổi tất định ở đầu ra do việc đảo một hoặc một số bit của khối con dữ liệu điều khiển gây ra, ví dụ nhƣ các phần tử và . Do vậy, để phân loại các phần tử thì tiêu chí lựa chọn ở phiên bản thứ nhất phù hợp hơn cả. Do ở trƣờng hợp các phần tử ta có thể sử dụng hai phƣơng pháp khác nhau đó là:

Xét toàn bộ các giá trị có thể có của các cặp hàm logic bốn biến theo yêu cầu.

Xét toàn bộ các giá trị có thể có của các tập có bốn phép thế cơ bản trong đó ta có ít nhất 2 phép thế khác nhau thuộc loại 2x2.

Số lƣợng các hàm logic 4 biến là 12.780, do vậy, trong trƣờng hợp thứ nhất ta nên xét đến khoảng hơn 108 các biến thể. Nếu chỉ có các hàm logic phi tuyến cân bằng đƣợc xét đến thì số lƣợng các biến thể cũng phải nhiều hơn 108 . Thực vậy, ta có 10.920 hàm có tính phi tuyến là 4 và 1.920 hàm có tính phi tuyến là 2 (xem bảng 3.1).

Hình 3.12. Phần tử (a) đƣợc biểu diễn thành một cặp hàm logic 4 biến (b) hoặc thành 4 phép thế 2x2 (c).

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

Hình 3.13. Cấu trúc tổng quát của các phần tử n/m

Bảng 3.1 Các hàm logic 4 biến đƣợc phân loại theo giá trị tính phi tuyến

Bảng 3.2 Số lƣợng các phần tử điều khiển đƣợc với các giá trị phi tuyến nguyên khác nhau.

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ (adsbygoogle = window.adsbygoogle || []).push({});

Bảng 3.3 Số lƣợng các hợp đối điều khiển đƣợc với tính phi tuyến nguyên khác nhau.

Tìm kiếm vét kiệt toàn bộ các phần tử khả nghịch điều khiển đƣợc có thể có thỏa mãn tiêu chí lựa chọn thì có hiệu quả hơn trong trƣờng hợp 2. Thực vậy, số lƣợng các tập có thể có là nhỏ hơn 340.000. Sử dụng phƣơng pháp thứ 2 thì các phần tử đƣợc phân loại cân xứng với thuộc tính phi tuyến của chúng. Trong kiểu phân loại của chúng sử dụng ký hiệu tính phi tuyến nguyên (NL nguyên) là một tập gồm ba số ( :

và . Bảng 3.2 biểu diễn số lƣợng các phần tử tƣơng ứng với các lớp phụ khác nhau đƣợc phân loại theo giá trị phi tuyến nguyên của chúng. Bảng 3.3 đƣa ra số lƣợng các phần tử là các đối hợp. Lớp phụ của số lƣợng lớn nhất của các phần tử phi tuyến tính điều khiển đƣợc bao gồm 126.720 phần tử, trong số đó ta có 2.208 đối hợp.

Hình 3.14. Các đặc trƣng vi phân có thể của các phần tử F2/2

Bảng 3.4 Sự phân bố các chỉ số các xác suất

i j k A B C D E

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

Để phân loại các phần tử F2/1 đƣợc chi tiết hơn, ta nên xét đến các đặc trƣng vi phân của chúng (xem hình 3.12), các đặc trƣng này có thể dự đoán đƣợc với xác suất . Để dự đoán đƣợc toàn bộ các xác suất tƣơng ứng với cùng một phần tử điều khiển đƣợc sử dụng cùng một giá trị nguyên nào đó, và [8] đƣa ra quan điểm entropy trung bình nhƣ sau:

Tại đó, tập các đặc trƣng vi phân riêng biệt đƣợc đặc tả bằng giá trị entropy

Trƣờng hợp k = 0, toàn bộ các đặc trƣng vi phân của các phần tử đƣợc quy cho 5 tập A, B, C, D, và E minh họa ở bảng 3.4. Các đặc trƣng vi phân của các đối hợp điều khiển đƣợc có tính phi tuyến lớn nhất là số nguyên (NL1, NL2, NL3) = (4, 4, 4) đƣợc quy cho 4 tập hợp A, B, D và E. 2208 phần tử này đƣợc chia thành 16 tập hợp với các giá trị entropy trung bình khác nhau đƣợc biểu diễn ở bảng 3.5 (hiện ta có nhiều hơn 5 tập hợp do ta xét đến toàn bộ các trƣờng hợp k = 0, 1, 2), ở bảng này cột thứ 3 minh họa các phép thế 2x2 thực hiện bởi các phần tử F2/2 của tập hợp tƣơng ứng.

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

Khi cố định bit điều khiển z ở phần tử F2/2 ta chuyển đổi phần tử điều khiển đƣợc F2/2 thành phần tử F2/1 , thực hiện một cặp phép thế 2x2 và . Với 2 giá trị z khác nhau z = 0z = 1, tổng quát lên, ta có 2 biến thể khác nhau của các phần tử F2/1 . Nếu ta cố định bit điều khiển v thì ta có thể có đƣợc 2 phần tử F2/1 khác nhau (với v = 0v = 1), mỗi một phần tử này thực hiện cặp phép thế 2x2

và . Do vậy, ta có thể biểu diễn phần tử F2/2 thành một phần tử cơ bản thực hiện 2 biến thể, mỗi biến thể là một toán tử cơ bản điều khiển đƣợc F2/1 và ta có 2 biến thể khác nhau của dạng biểu diễn nhƣ vậy. Các biến thể điều khiển đƣợc và với bit điều khiển z và , với bit điều khiển v có thể đƣợc quy vào loại R2/1 , Q2/1 , Z2/1 , hoặc một số loại khác.

Do đó, ta có thể chính thức mô tả các phần tử F2/1 thành tập hợp 4 chữ cái ký hiệu cho loại của các biến thể chỉ định điều khiển đƣợc, ví dụ, (Q, Q, Q, Q), (R, R, R, R) và (R, R, Q, Q). Nói một cách tổng quát, một vài phần tử F2/1 là các biến thể cơ bản điều khiển đƣợc của phần tử F2/2 có thể không thuộc vào tiêu chí lựa chọn các phần tử F2/1 làm các phần tử để thiết kế các toán tử điều khiển đƣợc. Do đó, khi xét đến phần tử F2/2 ta nên quan tâm đến các loại phần tử F2/1 khác, gồm cả các phần tử tuyến tính L2/1 , tức là các phần tử tuyến tính có một đầu ra tuyến tính. Thực vậy, có tồn tại các phần tử F2/2 với các giá trị <H>= 0.834 và (NL1, NL2, NL3)= (4, 4, 4) có thể đƣợc biểu diễn thành (L, L, L, L). Ta gặp các trƣờng hợp này khi chỉ có một số ít biến thể trong số 4 biến thể F2/1 là phi tuyến tính.

Bảng 3.5: Các tập con của các phần tử khả nghịch F2/2 có các giá trị entropy trung bình khác nhau. {H} Số phần tử khả nghịch F2/2 Các biến thể của phép thế 2x2 Loại Ví dụ 0.840 128 e, f, g, h, i, j {L, R, R, Q} {e,f,g,h}, {f,i,e,j}, {h,f,j,e}, {j,i,f,e} 0.834 704 a, b, c, d, e, f, g, h, i, j {L, L, L, L} {Z, L, R, Q} {a,d,g,i},{b,i,c,h}, {f,i,e,h}, {j,i,f,d}

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ {R, Q, R, L} {L, R, R, L} 0.815 128 a, b, c, d, g, h, i, j {L, L, L, L} {a,b,j,g},{b,d,h,i}, {h,c,i,a}, {j,g,c,d} 0.813 192 a, d, e, f, g, h, i, j {L, L, R, R} {L, R, R, L} {e,e,g,j}, {f,h,f,h}, {h,h,e,e}, {j,f,g,f} 0.812 256 b, c, e, f, g, h, i, j {Z, L, R, Q} {b,e,g,h}, {c,i,e,j}, {e,b,h,j}, {i,c,j,e} 0.791 128 e, f, g, h, i, j {R, R, Q, Q} {e,g,j,h}, {f,h,i,g}, {g,h,h,e}, {j,i,i,f} 0.788 128 b, c, e, f, g, h, i, j {L, L, R, R} {b,g,h,e}, c,h,j,f}, {h,e,c,g}, {j,f,b,i} 0.786 64 e, f, g, h, i, j {R, R, R, R} {e,g,h,f}, {g,f,f,i}, {i,e,e,i}, {j,f,e,h} 0.774 32 g, h, i, j {L, Q, Q, L} {g,g,h,i}, {h,i,j,j}, {i,j,h,j}, {j,i,j,h} 0.731 32 g, h, i, j {L, Q, Q, L} {g,g,h,h},{h,g,i,j}, {i,g,i,g}, {j,g,i,h} 0.719 96 a, b, c, d, e, f, g, h, i, j {L, L, L, L} {R, R, R, R} {a,g,g,d},{b,h,i,c}, {h,c,b,h}, {j,f,e,g} 0.710 16 g, h, i, j {Q, Q, Q, Q} {f,h,e,i}, {h,j,j,i}, {i,g,j,i}, {j,i,i,g} 0.695 192 a, b, c, d, e, f, g, h, i, j {L, L, L,L} {L, Z, Z, L} {a,b,e,e}, d,f,c,e}, {g,d,c,g}, {j,c,d,j} 0.641 32 e, f, g, h, i, j {R, R, R, R} {e,h,i,e}, {f,g,g,f}, {h,e,e,i}, {j,f,f,g} 0.631 64 a, b, c, d, e, f {Z, Z, Z, Z} {a,e,e,b},{c,e,f,a}, {e,c,a,f}, {f,d,c,f} 0.513 16 g, h, i, j {Q, Q, Q, Q} {g,h,h,g},{h,g,j,i}, {i,g,g,i}, {j,i,h,g} 3.7 Kết luận

- Xây dựng hàm băm dựa trên mạng hoán vị điều khiển đƣợc và thƣ viện HashDLL.dll kết hợp với Add-In lấy mã băm sử dụng thƣ viện HashDLL.dll cho chƣơng trình MicrosoftWord 2007 nhằm mục đích góp phần định hƣớng phát triển cho giải pháp an toàn thông tin có khả năng ứng dụng cao trong thực tiễn.

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

- Để nâng cao tốc độ xử lý và tính độc lập trong xây dựng các giải pháp an toàn thông tin trong thực tế ta có tìm hiểu thêm các kiến trúc khác để phát triển theo hƣớng lập trình mô phỏng thuật toán trên phần cứng.

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

KẾT LUẬN

Qua quá trình tìm hiểu, nghiên cứu, luận văn đã đạt đƣợc những kết quả sau:

Kết quả đạt được:

 Tìm hiểu đƣợc một số kiến thức về hàm băm, mạng hoán vị thay thế điều khiển đƣợc dựa trên chỉ lệnh bit.

 Cài đặt mô phỏng thành công thuật toán hàm băm dựa trên mạng hoán vị điều khiển đƣợc.

 Xây dựng đƣợc thƣ viện HashDLL.dll thuận tiện cho viện sử dụng hàm băm vào các chƣơng trình sau này.

 Viết đƣợc Add-In lấy mã băm sử dụng thƣ viện HashDLL.dll cho chƣơng trình MicrosoftWord 2007.

Hạn chế: (adsbygoogle = window.adsbygoogle || []).push({});

 Dữ liệu đầu vào của chƣơng trình chƣa thực sự đa dạng, còn hạn chế.  Chƣơng trình chƣa thực sự hoạt động nhanh nhƣ mong muốn.

Hướng phát triển

 Với các kết quả đã đạt đƣợc cùng những hạn chế và thiếu sót trên đã mở ra một số hƣớng phát triển cho luận văn “Nghiên cứu về hàm băm trên cơ sở mạng hoán vị thay thế điều khiển đƣợc và ứng dụng trong mã hóa, xác thực văn bản” nhƣ sau:

 Đa dạng hơn nữa dữ liệu đầu vào của chƣơng trình.  Nâng cao tốc độ hoạt động xử lý của chƣơng trình.

 Xây dựng hệ thống xác thực theo nhiều phƣơng pháp đối sánh khác nhau, từ đó ngƣời dùng có thể lựa chọn các phƣơng pháp đối sánh sao cho thích hợp và hiệu quả.

 Xây dựng hệ thống hoàn thiện hơn và có giao diện đẹp mắt, thân thiện hơn.  Tiến tới lập trình mô phỏng thuật toán trên phần cứng.

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

TÀI LIỆU THAM KHẢO

Tiếng việt:

[1] Đỗ Thị Bắc, Nguyễn Hiếu Minh (2010). "Xây dựng các hàm băm tốc độ cao trên cơ sở các chuyển vị điều khiển đƣợc" Các vấn đề về bảo mật thông tin. Tập 2; Số 89, trang 2-6;

[2] Hồ Ngọc Duy, Đỗ Thị Bắc (2010). “Các thuật toán mã khối tốc độ cao trên cơ sở mạng hoán vị-thay thế điều khiển đƣợc”. Các vấn đề về bảo mật thông tin. Tập 2; Số 89, trang 7-17;

[3] Simon Singh (1999). "Mật mã - Từ cổ điển đến lƣợng tử" Nhà xuất bản trẻ - TP. Hồ Chí Minh - 492 trang;

[4] Trần Duy Lai (2009), tuyển chọn hàm băm mật mã SHA-3, http://antoanthongtin.vn/ , ngày 03/7/2009.

Tiếng Anh:

[5] Daemen J., Rijmen V. The design of Rijndael. AES – the Advanced Encryption Standard. – Berlin. Springer-Verlag. 2002. – 180 p.

[6] Jean-Sébastien Coron, Yevgeniy Dodis, Cécile Malinaud, Prashant Puniya (2005)," Merkle-Damgard Revisited: How to Construct a Hash Function" Advances in Cryptology – CRYPTO 2005 Lecture Notes in Computer Science Volume 3621, 2005, pp 430-448.

[7] Moldovyan A. A., Moldovyan N. A., Moldovyanu P. A (2007), “Architecture Types of the Bit Permutation Instruction for General Purpose Processors” // Springer LNGC. Vol. XIV. pp. 147–159 / 3d Int. Workshop IF\&GIS'07 Proc. St.Petersburg, May 28-29, 2007. St. Petersburg, Russia.

[8] Nikolay A. Moldovyan, Alexander A. Moldovyan (2008), “Data-Driven Block ciphers for fast telecommunication systems”, Auerbach Publications – Taylor & Francis Group a informa business. 270 Madison Avenue New York, NY 10016, ISBN 1-4200-5411-2.

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

[9] Wang X., Yin Y.L., Yu H (2005). "Finding collisions in the full SHA-1" // Advances in cryptology – CRYPTO 2005 / Lecture Notes in Computer Science. Berlin, Springer-Verlag. Vol. 3621. P. 17–36.

Trang web:

[10] http://www.amazon.com [11] http://doc.edu.vn/

[12] http://www.ebook.edu.vn/ [13] http://antoanthongtin.vn/

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

PHỤ LỤC

1. Một số đoạn mã code chƣơng trình chính

* Xây dựng khối cơ bản P2/1

private int y1, y2;

private void P2_1_0(int x1, int x2) { if (rdae.Checked == true) { y1 = x1; y2 = x2; } if (rdeg.Checked == true) { y1 = x2; y2 = x1; } if (rdfi.Checked == true) { Xor(ref y1, x2, 1); Xor(ref y2, x1, 1); } if (rdph.Checked == true) { Xor(ref y1, x2, 1); y2 = x1; } if (rdxd.Checked == true) { Xor(ref y1, x1, x2); Xor(ref y2, x1, 1); } }

public void P2_1_1(int x1, int x2) { if (rdae.Checked == true) { y1 = x2; y2 = x1; } if (rdeg.Checked == true) (adsbygoogle = window.adsbygoogle || []).push({});

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/ { y1 = x1; Xor(ref y2, x1, x2); } if (rdfi.Checked == true) { int tempx2=0; Xor(ref tempx2, x2, 1); Xor(ref y1, x1, tempx2); y2 = x2; } if (rdph.Checked == true) { Xor(ref y1, x1, x2); y2 = x2; } if (rdxd.Checked == true) { Xor(ref y1, x1, 1); Xor(ref y2, x2, 1); } } * Xây dựng khối P8/12

private int[] HV1_8 = new int[8] { 0, 2, 4, 6, 1, 3, 5, 7 }; private int[] HV2_8 = new int[8] { 0, 2, 1, 3, 4, 6, 5, 7 }; private int[] HV3_8 = new int[8] { 0, 4, 1, 5, 2, 6, 3, 7 }; public int[] tempOut812A;

public int[] tempOut812B;

public int[] P_8_12_A(int[] in812, int[] v812) {

tempOut812A = new int[8]; for (int i = 0; i < 3; i++) { if (i == 1) { for (int k = 0; k < 8; k++) { in812[k] = tempOut812A[HV1_8[k]]; }

Một phần của tài liệu Nghiên cứu về hàm băm trên cơ sở mạng hoán vị thay thế điều khiển được và ứng dụng trong mã hóa xác thực văn bản (Trang 63 - 87)