1. Trang chủ
  2. » Công Nghệ Thông Tin

Về một giải pháp cứng hóa phép tính lũy thừa modulo

7 55 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 7
Dung lượng 407,66 KB

Nội dung

Bài viết trình bày giới thiệu, phân tích lựa chọn thuật toán lũy thừa modulo và phép nhân modulo Montgomery dựa trên một số công trình nghiên cứu trên thế giới. Phép tính lũy thừa modulo được thực thi bằng ngôn ngữ mô tả phần cứng HDL Verilog số modulo lựa chọn 2048 bit, chip FPGA XC7z045.

Nghiên cứu Khoa học Công nghệ lĩnh vực An tồn thơng tin Về ột giải pháp cứng h a phép t nh modulo y thừa Trần Văn Thắng, Hồng Văn Thức Tóm tắt— h p t nh th o u o ph p t nh n ngu n th t ph p t nh phứ t p, ti u t n tài ngu n th i gi n th hi n i tv i s n Th thi ứng h ph p t nh th o u o tr n gi p n ng o t , gi th i gi n ho ph p t nh, p ứng u ầu ài to n th t Tr ng t ph p t nh th ph p nh n o u o s n Trong n i ung ài o h ng trình gi i thi u, ph n t h, h n thu t to n th o u o ph p nh n o u o Montgo er tr n t s ơng trình nghi n ứu tr n th gi i h p t nh th o uo ượ th thi ằng ngôn ngữ ô t phần ứng HDL Veri og s o uo h n 2048 it, hip XC7z045 K t qu th hi n ph p t nh th o u o v i h i gi i ph p thi t k õi I nh n Montgo er kh nh u ượ tổng hợp ngắn g n tr n B ng B ng Abstract— Modular exponentiation is the basic operation in cryptography algorithm RSA This’s o p i te gorith , onsu ing resource and time to implement (especially with large number) Hardware implementation of modular exponentiation on the FPGA would increase speed, reduce computation time that is required by the practice The heart of modular operand is modular multiplication of large number In this paper we presented introduction, the analysis, choosing modular exponentiation algorithm and modular multiplication Montgomery based on several public researchs on the world Modular exponentiation operation is implemented with hardware language HDL Verilog with the modulus is chosen as 2048 bit, chip FPGA XC7z045 Implementation results of modular exponentiation with two different designs of IPcore Montgomery is briefly presented in Table and Table Từ khóa: RSA; Montgomery multiplication; FPGA Bài báo nhận ngày 01/11/2018 Bài báo gửi nhận xét chấp nhận đăng phản biện thứ vào ngày 02/12/2018 20/12/2018 Bài báo gửi nhận xét chấp nhận đăng phản biện thứ hai vào ngày 5/12/2018 28/12/2018 Keywords: RSA; Montgomery multiplication; FPGA I GIỚI THIỆU thể n i th i điể t i RS hệ ật h a c ng hai ứng dụng rộng r i sản ph bảo ật an toàn th ng tin Để hệ thống ật RS ứng dụng ột cách hiệu an toàn, giới đ c nhiều c ng tr nh nghiên cứu cải tiến thuật toán t nh y thừa odu o ph n cứng ph n ề , đ y phép t nh c tiêu tốn nhiều th i gian t nh toán nguyên th y ật RS Trên c sở ết đ c ng bố giới, viết chúng t i tr nh bày việc ph n t ch, ựa chọn triển hai cài đặt cứng h a thuật tốn tính y thừa odu o với độ dài odu o 2048 bit, đưa ột số đánh giá ban đ u hi ết cài đặt thực thi hip Xi inx X 7z045 Để thực phép y thừa odu o, c thể sử dụng ột thuật toán: phép y thừa nhị ph n từ trái qua phải (Left-to-right Binary Exponentiation), phép y thừa nhị ph n từ phải qua trái (Right-to-left Binary Exponentiation) phép y thừa cửa sổ trượt (Slide-window Exponentiation) Tùy thuộc vào i trư ng cài đặt ỗi thuật toán c điể nh yếu hác Dưới đ y chúng t i xin giới thiệu ột số thuật toán t nh y thừa odu o đưa ph n t ch, ựa chọn ột thuật toán hiệu thực thi tảng ph n cứng FPGA Ph n c a báo c bố cục sau: Mục II tr nh bày ột số thuật toán y thừa odu o số cải biên cho phép nh n nhanh Montgomery Tiếp theo Mục III tr nh bày cách triển hai thực Kết thực tr nh bày Mục IV cuối Mục Kết uận Số 2.CS (08) 2018 45 Journal of Science and Technology on Information Security II THUẬT TOÁN LŨY THỪ MODULO A Một số thuật toán lũy thừa modulo Thuật toán [1] Thuật toán lũy thừa từ trái qua phải k-ary Đ u vào: g e = (et et-1 e1 e0 )b đ y b = k k ≥ 1; Đ u ra: ge T nh toán trước 1.1 g0 ← 1.2 Cho i ch y từ tới (2k - 1) thực hiện: g0 ← gi-1 đ , gi = gi A ← Cho i ch y từ t giả thực sau: 3.1 A ← A2k 3.2 A ← A.gi Trả i ết A Thuật toán [2] Thuật toán lũy thừa slidingwindow Đ u vào: g e = (et et-1 e1 e0 )2 với et = 1, ột số nguyên k >> Đ u ra: ge T nh toán trước 1.1 g1← g, g2 ← g2 1.2 Cho i ch y từ tới (2k-1 - 1) thực hiện: g2i+1 ← g2i-1.g2 A ← 1, i ← t Trong i >> thực hiện: 3.1 Nếu ei = A ← A2, i ← i-1 3.2 Nếu không ( ei ≠ 0), t chuỗi bit dài ei ei-l el cho i - l+1 ≤ k ei = thực sau: A ← A2i-l +1 g(eiei-1 e1)2, i ← l-1 Trả i ết A Thuật toán y thừa từ trái qua phải k-ary thuật toán s iding-window thực phép t nh y thừa qua bốn bước t nh tốn hai vịng ặp thực t i bước bước Trong đ , Bước thực t nh toán trước giá trị gi g2i+1 làm giá trị đ u vào vòng ặp t i bước Việc thực t nh toán trước giá trị c a gi g2i+1 giúp tr nh thực thuật toán nhanh, giải pháp phù hợp với việc cài đặt thực ph n ề , cách ta ưu trữ giá trị t nh toán trước 46 Số 2.CS (08) 2018 Thuật toán [3] Lũy thừa nhị phân từ trái qua phải Đ u vào: g ϵ G, A ột số nguyên dư ng e = (et et-1 e1 e0 )2 Đ u ra: ge A ← Cho i ch y từ t giả d n thực sau: 2.1 A← A.A 2.2 Nếu ei = A← A.g Trả i ết A Thuật toán [4] Lũy thừa nhị phân từ phải qua trái Đ u vào: g ϵ G ột số nguyên dư ng e>>1 Đ u ra: ge A ← 1, S ← g Trong e ≠ thực sau: 2.1 Nếu e ẻ th A ← A S 2.2 e← e/2 2.3 Nếu e ≠ th S ← S S Trả i ết A Đối với Thuật tốn 3, vịng ặp t i bước 2.1 2.2 ết phép t nh A bước 2.1 giá trị đ u vào cho bước 2.2 Do tr nh thực phải t nh toán tr nh tự nối tiếp ết thúc bước 2.1 ới đến bước 2.2 Trong hi đ , hác với Thuật toán 3, Thuật toán 4, vòng ặp t i bước ết phép tính bước 2.1 2.3 c thể thực t nh toán song song để n ng cao tốc độ thực thi phép t nh Trọng t phép y thừa phép nh n odu o phép b nh phư ng odu o số ớn Trên giới g n đ y đ c nhiều c ng tr nh c ng bố iên quan đến việc n ng cao t nh hiệu phép nh n phép b nh phư ng odu o, đ phải ể tới thuật toán nh n Montgo ery odu o Trong ph n chúng t i xin giới thiệu ột giải pháp cải biên cho phép nh n Montgomery odu o số ớn, đồng th i đưa ết thực đánh giá việc cài đặt thuật toán y thừa odu o ng n ngữ tả ph n cứng FPG Nghiên cứu Khoa học Cơng nghệ lĩnh vực An tồn thơng tin B Một số cải biên cho phép nhân nhanh Montgomery Thuật toán [5] Thuật toán nhân Montgomery Đ u vào: X,Y,N với ≤ X,Y < N Đ u ra: P = (X*Y(2-n)) mod N N: số odu o n: độ dài theo bit c a N Xi: bit thứ i c a X P := Với (i=0; i < n; i = i++) thực 2.1 P = P + Xi*Y 2.2 Nếu P0= P = P + N; 2.3 P = P/2 ; Nếu P > N P = P - N H n chế c a thuật toán nh n Montgo ery c sử dụng cộng c nhớ vòng ặp bước 2.1 2.2, đ độ trễ an truyền cài đặt cứng h a n độ trễ an truyền c a ột F (Full Adder) ột bit nhiều phư ng pháp thiết ế để tăng hiệu t nh toán giả th i gian trễ cho cộng đ phải ể tới phư ng pháp sử dụng cộng S (Carry Save Adder) Bộ cộng S h ng phụ thuộc vào c nhớ an truyền nên th i gian trễ ỗi phép t nh độ trễ c a ột cộng F ột bit Tuy nhiên ết đ u c a cộng S ết trung gian chưa phải ết cuối c a phép t nh Để thấy việc ứng dụng cộng S vào thuật toán nh n Montgo ery c nào, xe xét cải biên Thuật toán [6] Thuật toán Faster Montgomery Đ u vào: X,Y,N với ≤ X,Y < N Đ u ra: P = (X*Y(2-n)) mod N N: số odu o n: độ dài theo bit c a N Xi: bit thứ i c a X S = 0, C = 0; Với (i=0; i < n; i = i++) thực 2.1 Nếu ((S0 = C0) ( Xi)) I = Nếu ((S0 != C0) ~Xi I = N Nếu ((S0 ^ C0 ^ Y0) & Xi) I = Y Nếu (S0 ^ C0 ^ Y0) & ~Xi I = N + Y 2.2 (S,C) := CSA( S, C , I ); 2.3 S:= S Div ; C:= C Div P = S + C; Nếu P > N P = P - N; Điể bật c a thuật toán Faster Montgo ery so với thuật tốn Montgomery c đ vịng ặp thay hai cộng có nhớ ột cộng S , với thay giả tài nguyên thiết ế, giả độ trễ c nhớ cộng số ớn nâng cao t n số ho t động c a õi IP hi thực giải pháp H n chế thuật toán Faster Montgo ery sử dụng ột cộng có nhớ ngồi vịng ặp Bước 3, t n số tổng hợp c a IPcore Faster Montgo ey phụ thuộc vào t n số cộng Tiếp theo giới thiệu ột ết công bố báo [3] để cải tiến cộng Thuật toán [7] Thuật toán Semi Carry Save Adder Montgomery Đ u vào: X,Y,N với ≤ X,Y < N Đ u ra: SS[k+2]= (X*Y(2-n)) mod N N: số odu o n: độ dài theo bit N (SS,SC) = CSA(Y,N,0); Trong (SC!= 0) (SS,SC) = CSA(SS,SC,0); D = SS; SS[0] = 0; SC[0] = 0; Với (i=0; i> >> D 11 00 10 01 1 Ctrl_1 Ctrl_0 Xi qi Y CSA Ctrl_1 SC Loop_control SS Ctrl_0 Zero_D SS[k+2] Hình Mơ hình thiết kế lõi IP SCSA Montgomery FPGA Lõi IP SCSA thiết ế sử dụng ột cộng trung tâ S với ba ngõ đ u vào 1,2,3 hệ thống ghi lưu trữ X, SS, SC, N Trong đ ghi X, N thiết ế để lưu giá trị đ u vào, SS SC lưu ết tính tốn đ u ra, ghi thiết ế có độ dài 2048 bit Bộ điều hiển vòng ặp đ ng vai trò máy thái, điều hiển trình ho t động c a õi IP đồng th i sinh tín hiệu điều hiển Ctrl_0, Ctrl_1 sử dụng để ựa chọn đ u vào cho cộng S Kết ỗi vòng thực ưu hai ghi SS, SC đồng th i làm giá trị phản hồi cho vòng ặp Số vòng ặp phụ thuộc vào kích thước chiều dài chuỗi bit c a số odu o Dưới đ y ết tổng hợp thực õi IP SCSA Montgomery chip FPGA 48 Số 2.CS (08) 2018 BẢNG KẾT QUẢ THỰ THI LÕI IP MONTGOMERY TRÊN FPGA Thuật toán TT[6] Faster MM TT[7] SCSA MM Chip FPGA Chiều dài bit (k) XC7 Z045 2048 T n số ho t động (MHz) Tài nguyên thiết kế (LUTs) 194 25.279 284 20.241 Lõi IP SCSA Montgomery thiết ế theo Thuật toán [7] đ giải h n chế Thuật toán [6] nâng cao t n số ho t động c a õi IP từ 194 MHz lên 284 MHz đ y ột inh chứng cho thấy tính hiệu c a õi IP thiết ế theo giải pháp SCSA Montgomery B Thực thi phép tính lũy thừa modulo RSA phép tính lũy thừa modulo Phép mã hóa giải ã RS thực tính tốn sau: C = Me (mod n), M = Cd (mod n) đ M rõ, C ã, e khóa cơng khai (public key), d khóa bí ật (private key), n số odu o có kích thước k bit Mối quan hệ e,d,n thể qua biểu thức e.d = 1(mod(p-1)(q-1),với n = p.q, đ p q hai số nguyên tố ớn có kích thước xấp xỉ k/2 bit Sử dụng lõi IP SCSA Montgomery phép tính lũy thừa modulo Dựa việc phân tích ưu nhược điể thuật tốn cài đặt phép tính y thừa odu o, báo nhóm tác giả thực theo thuật tốn [4] sử dụng song song hai õi IP SCSA Montgomery ý hiệu S S _M1, SCSA_M2 để nâng cao tốc độ cho phép tính y thừa odu o Thuật toán [4] triển hai sau: Thuật toán lũy thừa (C,M,d,n) K= 22k (mod n) k : kích thước chiều dài chuỗi bit n: số odu o P[0] = SCSA_M1(K, C, n); R[0] = SCSA_M2(K, 1, n); Vòng ặp cho i ch y từ tới k Nếu d[i] = R[i+1] = SCSA_M2(R[i], P[i], n); Kết thúc nếu; Nghiên cứu Khoa học Công nghệ lĩnh vực An tồn thơng tin P[i+1] = SCSA_M1(P[i], P[i], n); Kết thúc vòng ặp M = SCSA_M1(1, R[k], n); Trả i ết M; Lõi IP phép tính y thừa odu o 2048 bit ập trình ngôn ngữ ô tả ph n cứng HDL Verilog, thực iể tra theo tiêu chu n tha số NIST FIPS 186-3 Dưới đ y ột số ết thực õi IP phép tính y thừa modulo: BẢNG KẾT QUẢ ÀI ĐẶT THUẬT TOÁN [4] LŨY THỪ MODULO SỬ DỤNG Á IP BỘ NHÂN MONTGOMERY KHÁC NHAU TRÊN FPGA Thuật toán [4] sử dụng IPcore Chip FPGA Chiều dài bit (k) IPcore nhân Faster MM IPcore nhân SCSA MM XC7 z045 2048 BẢNG KẾT QUẢ THỰ HIỆN MỘT SỐ PHÉP TÍNH LŨY THỪ MODULO Thuật toán [4] sử dụng lõi IP Chip FPGA Chiều dài bit (k) IPcore nhân Faster MM IPcore nhân SCSA MM XC7 z045 2048 RSA encrypt khóa e (ms) RSA dencrypt khóa d (ms) 0,24 21,1 0,22 15,6 T n số ho t động (MHz) Tài nguyên thiết kế (LUTs) 194,4 48.740 Để thấy rõ hiệu c a thuật toán so với thuật toán thuật toán 5, nh nghiên cứu đ tổng hợp n p ên chip Zynq7z045ffg676-2 thuật toán y thừa modulo sử dụng thuật toán nêu Một số tiêu ch ỹ thuật so sánh chúng c thể t ược Bảng đ y (vẫn với tha số [5]) 281,2 42.311 BẢNG SO SÁNH Á THUẬT TOÁN NHÂN MODULU TRÊN CHIP Zynq7z045ffg676-2 Lõi IP phép tính y thừa odu o 2048 bit sử dụng õi IP nhân odu o dựa giải pháp ới Se i arry Save dder (S S ) Montgomery Điều hắc phục ột số h n chế trước đ c a phép nhân modulo thiết ế theo giải pháp Faster Montgo ery Kết tổng hợp õi IP tảng ph n cứng chip FPGA XC7z045 sau: số ượng ghi 57.475 chiế 13%, số cổng LUTs sử dụng 61.929 chiế 28% tổng số tài nguyên c a chip FPG , t n số ho t động ớn c a õi IP đ t 281 MHz, thể H nh H nh Kết tổng hợp õi IP tảng ph n cứng chip FPG X 7z045 Thuật toán nhân modulo T n số clock MHz Tài nguyên thiết ế (%) Th i Th i gian gian phép phép mã hóa giải (ms) (ms) T.Tốn 141,36 25% 0,338 42,00 T.Toán 225,78 33 % 0,218 21,10 T.Toán 284,10 28% 0,24 15,67 Trong bảng Bảng cho ta thấy õi IP y thừa odu o áp dụng giải pháp thiết ế õi IP nh n odu o Montgo ery theo phư ng pháp c bản,tài nguyên chiế 23%, t n số ho t động ớn 141 MHz, th i gian thực phép t nh y thừa 42,0 s Áp dụng giải pháp thiết ế õi IP nh n odu o Faster Montgo ery tài nguyên chiế 33 %, t n số ho t động 225 MHz, th i gian thực phép t nh y thừa 21,1 s òn với việc áp dụng thiết ế õi IP nh n odu o theo giải pháp S S-based Montgomerytài nguyên chiế 28% tổng số ce ogic, ghi, t n số ho t động 284 MHz, th i gian thực ột phép t nh 15,67 s, đ y ột ết ới ý nghĩa toán thực thi hiệu cao (các ết thực chip chip Zynq7z045ffg676-2) Số 2.CS (08) 2018 49 Journal of Science and Technology on Information Security IV KẾT QUẢ THỰ HIỆN Trên c sở ết nghiên cứu đ cơng bố giới tối ưu hóa hiệu hi triển hai thuật tốn tính y thừa odu o ngôn ngữ ô tả ph n cứng, nhóm nghiên cứu đ phân tích, đánh giá ựa chọn cài đặt thành cơng thuật tốn y thừa nhị phân từ phải qua trái áp dụng giải pháp Semi arry Save dder nhân Montgomery Kết thực thi dòng chip Zynq 7z045ffg676-2 cho thấy ưu điể tài nguyên thiết ế, t n số ho t động, th i gian thực đ thể ết tốt h n so với ột số thuật tốn cơng bố trước đ Các ết c ng đ chúng tơi tích hợp cho odu e ph n cứng bảo ật (HSM) Viện Khoa học ông nghệ ật ã, Ban yếu h nh ph ch trì thiết ế chế t o V KẾT LUẬN Trong hu n hổ báo này, nh tác giả trình bày cập nhật ột số c ng tr nh nghiên cứu hoa học giới Từ đ , ph n t ch ột số thuật toán, để ựa chọn ột phư ng pháp hiệu c thể thiết ế cứng h a phép t nh y thừa odu o 2048 bit Trong ph n thực nghiệ , nh tác giả triển hai thực thi phư ng pháp ng n ngữ tả ph n cứng HDL Veri og, sử dụng tảng ph n cứng c sẵn Kit FPGA ZynqZC706 Sau đ , đưa ột số ết so sánh giải pháp nh đ thực với giải pháp đ c , để rõ t nh ưu việt c a giải pháp nghiên cứu ới nh ựa chọn Trong th i gian tới, hướng nghiên cứu nh thực giải pháp với phép tính y thừa odu o 4096 bit 50 Số 2.CS (08) 2018 Nghiên cứu Khoa học Cơng nghệ lĩnh vực An tồn thơng tin TÀI LIỆU TH M KHẢO [1] A Menezes, P van Oorschot and S Vanstone "Handbook of Applied Cryptography", CRC Press, 1996 [2] Ranjeet Behera, Pradhan Abhisek, ―FPGA Implementation of RSA algorithm and to develop a crypto based security system‖, National Institute of Technology, Rourkela, 2012-2013 [3] D J ANITHA, G SUJATHA, P JAYARAMI REDDY, “High Speed Low Cost New Semi Carry Save Adder Montgomery Modular Multiplier‖, International Journal of Scientific Engineering and Technology Research, 2016 [4] Mclvor, Ciaran, Maire McLoone, and John V McCanny "Fast Montgomery modular multiplication and RSA cryptographic processor architectures.", Signals, Systems and Computers, 2004 Conference Record of the Thirty-Seventh Asilomar Conference on Vol IEEE, 2003 [5] FIPS PUB 186-4 ―Digital Signature Standard (DSS‖) July, 2013 SƠ LƯỢ VỀ TÁ GIẢ ThS Trần Văn Thắng Đ n vị c ng tác: Viện Khoa học – ng nghệ ật , Ban yếu h nh ph Email: vanthang.qsbk@gmail.com Quá tr nh đào t o: Nhận ỹ sư nă 2014 Th c sĩ nă 2018 chuyên ngành Kỹ thuật điện tử Hướng nghiên cứu nay: ng nghệ vi ch, FPGA TS Hoàng Văn Thứ Đ n vị c ng tác: Viện Khoa học – ng nghệ mật , Ban yếu h nh ph Email: thuchv@yahoo.com Quá trình đào t o: Nhận ỹ sư nă 1998 Th c sĩ nă 2004 chuyên ngành Kỹ thuật ật , Học viện Kỹ thuật ật Nhận Tiến sĩ Toán học, Viện Khoa học ng nghệ qu n nă 2012 Hướng nghiên cứu nay: Khoa học ng nghệ Mật Số 2.CS (08) 2018 51 ... thi phép tính lũy thừa modulo RSA phép tính lũy thừa modulo Phép mã hóa giải ã RS thực tính tốn sau: C = Me (mod n), M = Cd (mod n) đ M rõ, C ã, e khóa cơng khai (public key), d khóa bí ật (private... ết so sánh giải pháp nh đ thực với giải pháp đ c , để rõ t nh ưu việt c a giải pháp nghiên cứu ới nh ựa chọn Trong th i gian tới, hướng nghiên cứu nh thực giải pháp với phép tính y thừa odu o... IP phép tính y thừa odu o 2048 bit sử dụng õi IP nhân odu o dựa giải pháp ới Se i arry Save dder (S S ) Montgomery Điều hắc phục ột số h n chế trước đ c a phép nhân modulo thiết ế theo giải pháp

Ngày đăng: 11/12/2020, 09:41

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w