1. Trang chủ
  2. » Luận văn test 2

NGHIÊN CỨU ỨNG DỤNG MONTGOMERY MULTIPLICATION TRONG THUẬT TOÁN BẢO MẬT LTR TRÊN FPGA

6 40 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 286,27 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các giải pháp về phần cứng sử dụng công nghệ thiết kế số FPGA (Field Programmable Gate Arrays - Mảng cổng có thể lập trình trường) cách thức thực hiện thuật toán bảo mật LTR khóa[r]

Trang 1

NGHIÊN CỨU ỨNG DỤNG MONTGOMERY MULTIPLICATION

TRONG THUẬT TOÁN BẢO MẬT LTR TRÊN FPGA

Ninh Văn Thọ *

Trường Đại học Kinh tế Kỹ thuật Công nghiệp

TÓM TẮT

Bài báo đề cập đến các phương án bảo mật dựa trên công nghệ thiết kế số FPGA Việc đảm bảo an toàn thông tin, tránh mọi nguy cơ bị thay đổi, sao chép hoặc mất mát dữ liệu trong các ứng dụng trên mạng luôn là vấn đề được nhiều người quan tâm Các giải pháp về phần cứng sử dụng công nghệ thiết kế số FPGA (Field Programmable Gate Arrays - Mảng cổng có thể lập trình trường) cách thức thực hiện thuật toán bảo mật LTR khóa mật mã trên FPGA sử dụng ngôn ngữ

mô tả phần cứng VHDL, với độ dài của khóa là 1024 bit Phần cứng sử dụng chip Cyclone II EP2C35F672C6 của ALTERA kết hợp với bộ vi xử lý nhúng Nios II mang lại những hiệu quả rất lớn trong bảo mật kênh thông tin

Từ khóa LTR, FPGA, bảo mật hệ thống, nhân Montgomery, thuật toán, phần mềm

MỞ ĐẦU*

Lĩnh vực bảo mật hiện nay trở nên

cấp thiết hơn bao giờ hết trong hệ thống thông

tin Giải pháp thực hiện bằng phần cứng

thường được lựa chọn nhiều hơn là phần

mềm Các phương án bảo mật dựa

trên công nghệ thiết kế số FPGA với việc ứng

dụng kỹ thuật nhân của Montgomery [5,7]

(Montgomery Multiplication – MM) Kỹ

thuật MM cho phép thực hiện rất hiệu quả các

hệ thống mật mã khóa đối xứng sử dụng phép

toán cộng modul thực hiện các phép tính phức

tạp trên sẽ được tính toán dựa trên các bộ

cộng modul

Bài báo có cấu trúc như sau, sau phần mở đầu

là phần giới thiệu về dòng thiết bị FPGA lựa

chọn để thực hiện thuật toán bảo mật mã

LTR, phần 3 trình bày phương pháp nhân

Montgomery, phần 4 trình bày thuật toán mã

hóa kênh LTR, phần 5 trình bày thiết kế của

LTR trên FPGA và so sánh kết quả thực hiện

cuối cùng là kết luận

GIỚI THIỆU CẤU TRÚC CƠ BẢN CỦA FPGA

Cơ bản kiến trúc của FPGA có thể sử dụng để

tạo ra một thiết kế tối ưu hóa trong FPGA để

thực hiện cứng hóa thuật toán LTR trên

FPGA, nghiên cứu lựa chọn phần cứng có khả

năng phù hợp nhất đó là họ Cyclone của

* Tel: 0914 770072, Email: Thodtu.nd@gmail.com

Altera, cụ thể là bảng mạch phát triển DE2-70 của Altera với chip Cyclone II

EP2C35F672C6 tích hợp bộ xử lý nhúng Nios

II [2], vì linh kiện này cung cấp các bộ xử lý

số học chuyên dụng tốc độ cao và tài nguyên

bộ nhớ trong lớn

Cấu trúc chip Cyclone II EP2C35F672C6 [3]

có cấu trúc tích hợp mật độ cao với 672 chân vào ra và 33.216 Logic Element, ngoài ra nó còn cung cấp:

- 105 khối nhớ nhúng M4K, 4096 bit nhớ/ khối;

- 483.840 bit RAM;

- 34.548 thanh ghi;

- Hoạt động với tần số xung nhịp tới 250 MHz;

- 04 bộ mạch vòng khóa pha PLL nhúng;

Hình 1 Sơ đồ bộ xử lý nhúng MK4

Trang 2

Thành phần cơ bản chip Cyclone II gồm logic

element (LE) Về cơ bản LE là một bảng tra

(lookup table-LUT) với 4 đầu vào trên cơ sở

cấu trúc SRAM và thanh ghi trạng thái, bất kỳ

sự kết hợp nào với một hàm logic của 4 đầu

vào đều được lưu giữ và ghi lại trong LE Mỗi

một LE có thể hoạt động ở 2 chế độ: chế độ

hoạt động thông thường và chế độ hoạt động

toán học động

Chế độ hoạt động thường (Normal Mode)

Trong chế độ này, LE thích hợp cho những

ứng dụng logic thông thường và các hàm

logic tổ hợp Mỗi một LE có vai trò như một

LUT và kết nối với nhau theo chuỗi đầu ra

(chain output) của LUT này là đầu vào dữ

liệu thứ 4 của LUT tiếp theo Việc định tuyến

cục bộ sẽ cung cấp các tín hiệu điều khiển

thanh ghi và thanh ghi có thể tải tín hiệu

không đồng bộ

Chế độ hoạt động toán học động (Dynamic

Arithmetic Mode)

Trong chế độ này, LE được tối ưu cho việc

thực hiện các bộ cộng, bộ đếm và các bộ lưu

trữ Một LE được phân chia thành 4 LUT có

2 đầu vào hiện các chức năng khác nhau Đầu

tiên 2 LUT được dùng để tính 2 tổng dựa trên

các đầu vào nhớ 0 và 1 Hai LUT khác có

chức năng tạo ra các đầu ra nhớ để điều khiển

định tuyến cục bộ Kỹ thuật này được gọi là

thuật toán lựa chọn nhớ (carry-select) Chế độ

này cũng được dùng để điều khiển kích hoạt

bộ đếm, bộ cộng, lựa chọn bộ trừ và tái thiết

lập cho thanh ghi

Bộ xử lý Nios II

Bộ xử lý Nios II là bộ xử lý nhúng do hãng

Altera chế tạo dựa trên công nghệ FPGA

giống như một bộ vi điều khiển trên chip bao

gồm CPU, các thiết bị ngoại vi và bộ nhớ trên

một chip đơn Bộ xử lý Nios II cung cấp:

- Thiết lập chỉ thị 32 bit, đường dẫn dữ liệu và

không gian địa chỉ

- 32 thanh ghi sử dụng chung

- 32 nguồn ngắt ngoài

- Bộ nhân đơn 32 x 32 và chia kết quả 32 bit

- Truy cập tới các thiết bị ngoại vi khác nhau trên chip, giao diện với bộ nhớ và thiết bị ngoại vi

Hình 2 Bộ xử lý Nios II của bo mạch DE2-70 Atera

ỨNG DỤNG NHÂN MONTGOMERY MULTIPLICATION

Multiplication của MM được sử dụng và áp dụng tối ưu hóa thuật toán Phần cốt lõi nhất của thuật toán LTR là sử dụng phép toán mũ hóa modular – ME mod N Để nâng cao hiệu

quả phép toán này trên phần cứng ta áp dụng phương pháp bình phương và nhân [1], [5] phương pháp này là dựa trên cơ sở biểu diễn nhị phân của số mũ được mô tả như sau:

Số mũ e được biểu diễn:

);

1 , 0 (

; 2 e

n 0 i

e

trong đó n là kích thước của e (khi biểu diễn

nhị phân) Khi đó phép toán mũ hóa modular

sẽ trở thành:

0 i

e 2 2

e

n

0 i

i i

) (K K

N mod K C

như vậy chúng ta chỉ cần bình phương mỗi lần

lặp và chỉ nhân nếu bit thứ i của số mũ là 1

Lợi thế của thuật toán LTR đó là không cần thêm biến cho các kết quả trung gian Điều này rất quan trọng cho việc thực hiện trên phần cứng do sẽ tiết kiệm được các thanh ghi (register) trong FPGA Để thực hiện thuật

toán LTR ở trên phép nhân modular C.K mod N là cần phải tính toán Thông thường

Trang 3

trong phép nhân modular C.K sẽ được tính

trước sau đó sẽ thực hiện bước mod N

Phương pháp thực hiện phép nhân

Montgomery:

Z = MM(L,R) = L.R.r-1mod K

trong đó: L, R < K<r; r = 2n

và GCD(K,r)=1,

r-1 là nghịch đảo của (r modular K)

Phép nhân MM thực hiện việc ánh xạ số

nguyên L trong miền Z thành số L~ trong miền

Montgomery và ngược lại sử dụng phép ánh

xạ một - một:

K mod L.r K mod r L.r )

r

MM(L,

~

K mod r.1.r L K mod 1.r L )

r

,

L

MM(

~ 1

~ 2

~

K

mod

L

 trong đó

~

L gọi là thặng dư K của L

Để thực hiện phép nhân modular của 2 số L

và R thì đầu tiên 2 số này sẽ được biến đổi

sang miền Montgomery, sau đó phép nhân sẽ

được áp dụng, tiếp theo kết quả sẽ được

chuyển đổi ngược lại trong miền Z:

K mod R.r K mod r R.r )

r

MM(R,

R

K mod L.r K mod r L.r )

r

MM(L,

L

1 2 2

~

1 2 2

~

Để thực hiện phép nhân modular trong thuật

toán LTR, S = L.R mod K trong đó:

;

2

l

n

0

i

i

n 0 i i

 K n k 2i;

0 i i

li, ri, ki (0,1);

Các số được biểu diễn nhị phân với cơ số 2 cơ

số trong thuật toán Montgomery là n hoặc 2n

, trong bài viết này sử dụng cơ số 2n

với n = 1)

Thuật toán nhân Montgomery

MM(L,R,K )

Input: L, R, K

Output: S = L.R mod K

1 S0= 0

2 For i = 0 to n-1 loop

3 qi = (Si + liR) mod 2

4 If ( qi =1) then

5 Si+1 = (Si+ liR +K)/2

6 Else

7 Si+1 = (Si+ liR )/2

8 End if

9 End for

10 Return S

THUẬT TOÁN BẢO MẬT LTR

Thuật toán LTR lưu đồ hoạt động

Thuật toán tạo mã trong LTR đầu vào của LTR là khối độ dài 64 bits, đầu ra 64 bits và khóa là 56 bits Qua sơ đồ cho thấy LTR được cấu tạo bởi 16 bước lặp với bước lặp cơ sở gọi hàm chuyển đổi phi tuyến f, 16 bước lặp này được kẹp vào giữa hai toán tử giao hoán

P và P-1

Hình 3 Sơ đồ thuật toán bảo mật LTR

Hàm cơ sở f là quá trình thực hiện bảo mật trong thuật toán LTR này Sự lặp lại nhiều lần các bước lặp với tác dụng của f là nhằm tăng cường tính bảo mật đã có trong f

Thuật toán tạo khóa

Hình 4 Sơ đồ thuật toán tạo khóa

Trang 4

Qua sơ đồ thuật toán tạo khóa có thể thấy

rằng thực sự chỉ có 56 bit của khóa được sử

dụng, 8 bit còn lại là mã kiểm tra chẵn lẻ

(parity bits) và bị lọc ra ở biến đổi PC1 Các

bộ biến đổi PC1 và PC2 đơn giản là các bộ

vừa chọn lọc vừa hoán vị (PC = permuted

choice = lựa chọn có hoán vị) Các biến đổi R1

và R2 tương ứng là các phép dịch sang trái 1 và

2 vị trí Cấu trúc vòng lặp LTR mỗi vòng lặp

của LTR thực hiện trên cơ sở công thức sau:

(Li,Ri) = (Ri-1,Li-1  f (Ri-1,Ki))

trong đó, (Li,Ri) là 2 nửa trái và phải thu được

từ biến đổi của vòng lặp thứ i Ta cũng có thể

viết lại

(Li,Ri) = T o F(Ri-1,Ki))

Trong đó F là thay thế Li-1 bằng Li-1f(R

i-1,Ki), còn T là phép đổi chỗ hai thành phần L

và R Tức là biến đổi vòng lặp của LTR có

thể coi là một tích hàm số của F và T (trừ

vòng cuối không có T)

Ta có thể viết lại toàn bộ thuật toán sinh mã

LTR dưới dạng công thức tích hàm số như sau:

LTR = P-1 o F1 o T o F15 o T o o F2 o T o F1 o P

Thuật toán giải mã LTR được xây dựng giống

như thuật toán sinh mã nhưng có các khóa

con được sử dụng theo thứ tự ngược lại, tức là

dùng khóa K16cho vòng lặp 1, khóa K15 cho

vòng lặp 2 Vì vậy, thuật toán giải mã có thể

được viết lại dưới dạng công thức sau:

LTR-1 = P-1 o F1 o T o F2 o T o o F15 o T o F1 o P

Bây giờ chú ý rằng mỗi hàm T hoặc F đều là các

hàm có tính chất đối hợp (f=f-1

, hay f(f(x) =x)

Do đó khi thực hiện phép tích hàm LTR

-1

oLTR hay LTRoLTR-1 thì sẽ thu được phép

đồng nhất Điều đó giải thích tại sao thuật

toán giải mã lại giống như sinh mã chỉ có

khác về thứ tự trong chuỗi khóa con

Cấu trúc cụ thể hàm f là

Trước hết 32 bits của thành phần Ri-1 được mở

rộng thành 48 bits thông qua biến đổi mở

rộng với sự lặp lại một số bit rồi đem XOR

với 48 bits của khóa Ki Các vòng lặp của

LTR cùng thực hiện với hàm f nhưng với các

tham số khóa khác nhau Tất cả 16 khóa khác

nhau này, được gọi là khóa con, cùng sinh ra

từ khóa chính của LTR bằng một thuật toán tạo khóa con Trong thuật toán tạo khóa con quá trình thực hiện khóa chính K, 64 bits đi qua 16 bước biến đổi, tại mỗi bước này một khóa con được tạo ra với độ dài 48 bits QUY TRÌNH CỨNG HÓA LTR TRÊN FPGA

Để thực hiện thuật toán LTR trên FPGA cần phải thực hiện cả các modular sinh khóa, với kích thước khóa là 1024 bit thì cần phải thực hiện việc sinh khóa trên NIOS Phần nhân của LTR, phép toán mũ hóa modular, sẽ được thực hiện trên FPGA Cyclone II EP2C35F672C6

Khi áp dụng thuật toán MM cho sơ đồ LTR phép tính mũ hóa modular của LTR sẽ được thực hiện bằng cách cộng và dịch vòng trong FPGA Cộng là một phép tính cơ bản được sử dụng trong tất cả các phép toán khác, tốc độ của việc thực hiện phép cộng có một vai trò quan trọng trong toàn bộ hệ thống Trong thiết kế này sử dụng thiết bị của Altera đó là

bộ cộng trừ 32-bit (addsub-32) và thực hiện

bộ cộng 1024 bằng cách kết nối 32 bộ cộng 32-bit tương ứng do core của Altera đã được tối ưu hóa về tốc độ

Như vậy phần tính toán mũ hóa modular của thuật toán mã hóa LTR đã được thực hiện bằng ngôn ngữ mô tả phần cứng VHDL, sử dụng công cụ phần mềm của Altera là Quartus II 9.0 và Nios II 9.0 Thực hiện cả hai chức năng mã hóa và giải mã tùy theo yêu cầu Cụ thể bộ mũ hóa modular chiếm tới 30.975 LE, nhưng bù lại nó có tốc độ tính toán rất nhanh so với một số nghiên cứu trước

đó [8], [9] Bảng dưới đây liệt kê so sánh một

số nghiên cứu cứng hóa LTR trên FPGA với cùng độ dài khóa 1024 bit về tài nguyên, tần

số xung nhịp, thời gian thực hiện:

LTR 1024 30.975 250 10,25

Trong đó LTR 64, LTR 128 được xây dựng dựa trên các bộ mũ hóa modular 64 bits, 128

Trang 5

bits [9] sử dụng lặp lại nhiều lần để đạt được

kích thước khóa 1024 bits

KẾT LUẬN

Trong bài báo này tác giả đã sử dụng phương

pháp thực hiện thuật toán LTR trên phần cứng

mở rộng Montgomery nhân trong hệ thống

nhúng trên FPGA của Altera Phương pháp

mới này chỉ sử dụng một phần nhỏ tài nguyên

bộ nhớ FPGA nhúng cần thiết cho việc thực

hiện thuật toán dựa trên bộ cộng có nhớ tiết

kiệm thời gian thực hiện Các phương pháp

thực hiện đề xuất này có thể được áp dụng

dựa trên khối được xây dựng sẵn có trong

FPGA Cả hai biến thể của nhân Montgomery

là áp dụng thành công trong việc triển khai hệ

thống của thuật toán LTR và nhờ vào khả năng

mở rộng của MM triển khai là rất linh hoạt, do

phải xử lý đồng thời cho các khóa có độ dài

1024 bits nên nó chiếm tài nguyên khá lớn

nhưng bù lại thời gian tính toán nhanh hơn

TÀI LIỆU THAM KHẢO

1 Batina, L.-Muurling, G.: Montgomery in

Practice: How to Do It More Efficiently in

Hardware Proceedings of RSA 2002

Cryptographers’ Track, B Preneel,498 N

Mentens, S B Ors, B Preneel, J Vandewalle Ed., San Jose, USA, February 18–22, 2002, Number

2271 in Lecture Notes in Computer Science, pp 40–52, Springer-Verlag

2 Data Document, “Nios Development Board Cyclone II Edition Reference Manual” Altera Corporation, 5-2007…

3 Data sheet, “Cyclone II Device Handbook”, Altera Corporation, 1-2008

4 G Miller, "Riemann's Hypothesis and Tests for Primality." Proceeding sof the 7th Annual ACM Symposium on the Theory of Computing, May 1975

5 Montgomery, P.: “Modular Multiplication without Trial Division Mathematics of Computation”, Vol 44, 1985, pp 519–521

6 Freking, W L.-Parhi, K K.: Performance-Scalable Array Architectures for Modular Multiplication Proceedings of the IEEE International Conference on Application-Specific Systems, Architectures, and Processors 2000, pp 149–160, IEEE

7 Ors,S B.-Batina, L.-Preneel, B.-Vandewalle, J.: Hardware Implementation of a Montgomery Modular Multiplier in a Systolic Array The 10 th Reconfigurable Architectures Workshop (RAW), Nice, France, April 22, 2003

8 William Stallings, "Cryptography and Network Security: Principles and Practices."3rd edition, 2003

9 John Fry, Martin Langhammer, “RSA & Public Key Cryptography in FPGAs”, Altera Corporation, 2004

SUMMARY

APPLIED RESEARCH IN MONTGOMERY MULTIPLICATION LTR

SECURITY ALGORITHM ON FPGA

Ninh Van Tho *

University of Economic and Technical Industries

This paper will address the security plan based on technology the design of FPGA The safety information, to avoid any risk of changing, copying, or loss of data in the applications on the network is always a problem is many people are interested These solutions use technology hardware design of FPGA (Field Programmable Gate Arrays - programmable gate array field) how

to implement algorithm encryption security key LTR channels on FPGA using descriptive language section VHDL hardware, with the length of the key is 1024 bits Hardware used chip of Altera Cyclone II EP2C35F672C6 combined with Nios embedded processor II brought enormous efficiency in information security channel

Keywords: LTR, FPGA, security system, the Montgomery, algorithms, software

* Tel: 0914 770072, Email: Thodtu.nd@gmail.com

Ngày đăng: 15/01/2021, 07:41

HÌNH ẢNH LIÊN QUAN

Altera, cụ thể là bảng mạch phát triển DE2-70 của Altera với chip Cyclone II  EP2C35F672C6tích hợp bộ xử lý nhúng Nios  II [2], vì linh kiện này cung cấp các bộ xử lý  số học chuyên dụng tốc độ cao và tài nguyên  bộ nhớ trong lớn - NGHIÊN CỨU ỨNG DỤNG MONTGOMERY MULTIPLICATION TRONG THUẬT TOÁN BẢO MẬT LTR TRÊN FPGA
ltera cụ thể là bảng mạch phát triển DE2-70 của Altera với chip Cyclone II EP2C35F672C6tích hợp bộ xử lý nhúng Nios II [2], vì linh kiện này cung cấp các bộ xử lý số học chuyên dụng tốc độ cao và tài nguyên bộ nhớ trong lớn (Trang 1)
Hình 2. Bộ xử lý Nios II của bo mạch DE2-70 Atera - NGHIÊN CỨU ỨNG DỤNG MONTGOMERY MULTIPLICATION TRONG THUẬT TOÁN BẢO MẬT LTR TRÊN FPGA
Hình 2. Bộ xử lý Nios II của bo mạch DE2-70 Atera (Trang 2)
Hình 3. Sơ đồ thuật toán bảo mật LTR - NGHIÊN CỨU ỨNG DỤNG MONTGOMERY MULTIPLICATION TRONG THUẬT TOÁN BẢO MẬT LTR TRÊN FPGA
Hình 3. Sơ đồ thuật toán bảo mật LTR (Trang 3)
Hình 4. Sơ đồ thuật toán tạo khóa - NGHIÊN CỨU ỨNG DỤNG MONTGOMERY MULTIPLICATION TRONG THUẬT TOÁN BẢO MẬT LTR TRÊN FPGA
Hình 4. Sơ đồ thuật toán tạo khóa (Trang 3)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w