1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu và xây dựng thuật toán RSA trên FPGA

83 410 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 83
Dung lượng 3,35 MB

Nội dung

Thuật toán mã hóa RSA là m ột thuật toán mã hóa khóa công khai có ứng dụng to lớn trong trao đổi thông tin ngày nay. Nó được ứng dụng rộng rãi trong các dịch vụ bảo mật thông tin và th ương mai điện tử để đảm bảo an toàn thông tin cho người sử dụng.Độ bảo mật cao: về bản chất thuật toán mã hóa RSA là thu ật toán mã hóa khóa công khai lên nó mang đầy đủ cácđặc điểm về tính bảo mật, độ an toàn của hệ mã hóa khóa công khai. Đồng thời do đặc điểm của thuật toán là sử dụng 2 số nguyên ốt làm khóa lên độ an toàn ph ụ thuộc vào kh ả năng phân tích m ột số nguyên ốt rất lớn thành 2 s ố nguyên ốt. Do đó khi s ố nguyên ốt càng l ớn thì khả năng bị phân tích càng th ấp, độ an toàn càng cao.Thao tác nhanh: cùng với sự tiến bộ của công ngh ệ các bộ xử lí ngày càng có t ốc độ nhanh hơn với dung lượng xử lí lớn, do đó thao tác mã hóa và giải mã c ủa thuật toán mã hóa RSA ngày càng nhanh đápứng được các yê

MỤC LỤC MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG THÔNG TIN SỐ VÀ MẬT MÃ HỌC 1.1 Tổng quan hệ thống thông tin số 1.1.1 Các khái niệm 1.1.2 Hệ thống thông tin số 1.1.3 Sơ đồ khối hệ thống thông tin số 1.1.4 Tham số chất lượng hệ thống thông tin số 1.2 Tổng quan mật mã học……………………………………………… 1.2.1 Mật mã học khái niệm 1.2.2 Khái niệm mật mã khối 1.2.3 Hệ mã mật khóa cơng khai 10 1.3 Một số vấn đề chế tạo thiết bị bảo mật thông tin 13 1.4 Kết luận chương 15 CHƯƠNG 2: THUẬT TỐN MÃ HĨA RSA 16 2.1 Giới thiệu chung thuật toán mã hóa RSA 16 2.1.1 Lịch sử phát triển 16 2.1.2 Đặc điểm 17 2.2 Cơ chế hoạt động thuật toán RSA 18 2.2.1 Mô tả hoạt động 18 2.2.2 Q trình tạo khóa 19 2.2.3 Q trình mã hóa giải mã 19 2.2.4 Chuyển đổi văn rõ 20 2.2.5 Tính bảo mật thuật tốn RSA 22 2.2.6 Một số vấn đề thực tế triển khai thuật toán RSA 23 Đỗ Tiến Hướng – TKTT – K43 – MTA 2012 2.3 Ưu nhược điểm thuật toán RSA 26 2.4 Ứng dụng RSA dịch vụ chữ kí điện tử 27 2.5 Kết luận chương 29 CHƯƠNG 3: XÂY DỰNG HỆ THỐNG MÃ HÓA VÀ GIẢI MÃ RSA TRÊN FPGA 30 3.1 Các tham số thực phần cứng 30 3.2 Thiết kế hệ thống mã hóa giải mã RSA 31 3.2.1 Khối truyền tin nối tiếp UART 35 3.2.2 Khối nhớ FIFO 41 3.2.3 Khối nhân modul MontABM 44 3.2.4 Khối lũy thừa modul MontAEM 49 3.2.5 Khối chia tần CLK_DIV 56 3.2.6 Khối ghi dịch SHIFT_REG 58 3.3 Xây dựng chương trình tạo khóa RSA 61 3.3.1 Khối kiểm tra số nguyên tố 63 3.3.2 Khối tính GCD 64 3.3.3 Khối tạo số ngẫu nhiên RNG 65 3.4 Xây dựng chương trình điều khiển RSA…………………………………………66 3.5 Tổng hợp kiểm tra thiết kế FPGA 68 3.5.1 Tổng hợp thực hóa thiết kế…………………………………….…… 68 3.5.2 Kiểm tra thiết kế phần cứng Xilinx Spartan 3E…………………….71 3.6 Kết luận chương 73 KẾT LUẬN 74 TÀI LIỆU THAM KHẢO 75 Đỗ Tiến Hướng – TKTT – K43 – MTA 2012 DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT Ký hiệu, chữ viết tắt Mô tả ACCA ADPCM AES ASCII BMTT CLB DES DPCM FIFO FPGA FSM GCD GCHQ LFSR LSB Adaptive Chosen Ciphertext Attack Tấn cơng lựa chọn rõ thích nghi Adaptive Differential Pulse Code Modulation Điều chế mã xung vi sai thích nghi Asymmetric Encryption Sheme Hệ mật mã bất đối xứng American Standard Code for Information Interchange Chuẩn mã trao đổi thông tin Hoa Kỳ Bảo mật thông tin Configurable Logic Block Khối logic lập trình Data Encryption Standard Chuẩn mã hóa liệu Differential Pulse Code Modulation Điều chế mã xung vi sai First In First Out Bộ nhớ đệm vào trước trước Field-Programmable Gate Array Finite State Machine Máy trạng thái Greatest Common Divisor Ước chung lớn Government Communications Headquarters Cơ quan truyền thông Vương quốc Anh Linear Feedback Shift Register Thanh ghi dịch phản hồi tuyến tính Least Significant Bit Đỗ Tiến Hướng – TKTT – K43 – MTA 2012 Bit trọng số thấp MSB OAEP PCM PKC PKCS PKI RAM RNG RSA SSL UART Most Significant Bit Bit trọng số cao Optimal Asymmetric Encryption Padding Chuyển đổi mã hóa bất đối xứng tối ưu Pulse Code Modulation Điều chế mã xung Public Key Cryptosystems Hệ mật mã khóa cơng khai Public Key Cryptography Standards Chuẩn mã hóa khóa cơng khai Public Key Infrastructure Hạ tầng khóa cơng khai Random Access Memory Bộ nhớ truy cập ngẫu nhiên Random Number Generator Bộ tạo số ngẫu nhiên Thuật tốn mã hóa khóa cơng khai Ron Rivest, Adi Shamir Len Adleman mô tả năm 1977 Secure Sockets Layer Universal Asynchronous Receiver/Transmitter Giao thức truyền tin dị nối tiếp Very high speed integrated circuit Haraware Descriptive VHDL Language Ngôn ngữ mơ tả phần cứng cho mạch tích hợp tốc độ cao Đỗ Tiến Hướng – TKTT – K43 – MTA 2012 DANH MỤC CÁC HÌNH VẼ Hình 1.1 Mối quan hệ tín hiệu hệ thống Hình 1.2 Sơ đồ khối tiêu biểu hệ thống thông tin số Hình 1.3 Mơ hình sử dụng hệ mã khóa cơng khai (PKC) 11 Hình 1.4 Mơ hình sử dụng hệ mã khóa cơng khai (PKC) 12 Hình 2.1 Mơ hình trực quan hệ mật mã khóa cơng khai 18 Hình 2.2 Sơ đồ mô tả dạng công vào 25 Hình 2.3 Quá trình tạo chữ ký số 28 Hình 2.4 Quá trình thẩm định chữ ký số 28 Hình 3.1 Sơ đồ khối hệ thống mã hóa giải mã RSA 33 Hình 3.2 Máy trạng thái FSM3 34 Hình 3.3 Giao thức truyền tin dị nối tiếp 35 Hình 3.4 Sơ đồ khối nhận thông tin nối tiếp 36 Hình 3.5 Máy trạng thái khối nhận thông tin nối tiếp 37 Hình 3.6 Kết mơ khối nhận tin RxUART ModelSim 38 Hình 3.7 Sơ đồ khối truyền thông tin nối tiếp 39 Hình 3.8 Máy trạng thái khối truyền thông tin nối tiếp 40 Hình 3.9 Kết mơ khối truyền tin TxUART ModelSim 41 Hình 3.10 Sơ đồ khối nhớ FIFO 42 Hình 3.11 Kết mơ khối nhớ FIFO ModelSim 43 Hình 3.12 Lưu đồ thuật toán Montgomery 44 Hình 3.13 Sơ đồ khối nhân modul MontABM 45 Hình 3.14 Máy trạng thái khối điều khiển Control_Mont 46 Hình.3.15 Kết mơ khối nhân modul MontABM 47 Hình 3.16 Kết mô thời gian thực hàm MontABM (N = 32bit) 48 Hình 3.17 Lưu đồ thuật tốn bình phương nhân 50 Hình 3.18 Sơ đồ khối lũy thừa modul MontAEM 50 Hình 3.19 Máy trạng thái khối điều khiển Control_AEM 51 Hình 3.20 Kết mơ khối lũy thừa modul MontAEM 32bit 53 Đỗ Tiến Hướng – TKTT – K43 – MTA 2012 Hình 3.21 Đồ thị mối quan hệ tốc độ mã hóa VRSA số bit E 54 Hình 3.22 Kết mơ q trình mã hóa giải mã ModelSim (N = 512 bit) 55 Hình 3.23 Sơ đồ khối chia tần 57 Hình 3.24 Kết mơ khối chia tần CLK_DIV (DIV = 5) 57 Hình 3.25 Sơ đồ khối ghi dịch SR_S/P 58 Hình 3.26 Kết mơ khối SR_S/P (N = 24 bit) 59 Hình 3.27 Sơ đồ khối ghi dịch SR_P/S 60 Hình 3.28 Kết mô khối SR_P/S (N = 24 bit) 61 Hình 3.29 Kiến trúc hệ thống tạo khóa RSA 62 Hình 3.30 Lưu đồ thuật tốn kiểm tra số nguyên tố 63 Hình 3.31 Lưu đồ thuật tốn Euclid mở rộng dạng rút gọn 64 Hình 3.32 Kiến trúc LFSR 521 bit 66 Hình 3.33 Lưu đồ thuật tốn truyền file văn 66 Hình 3.34 Kết mã hóa RSA 512 bit Spartan 3E Starter Kit 67 Hình 3.35 Kết giải mã RSA 512 bit Spartan 3E Starter Kit 67 Hình 3.36 Kết tổng hợp RSA Xilinx Spartan XC3S500E 69 Hình 3.37 Tốc độ thực thuật tốn RSA Xilinx Spartan XC3S500E 70 Hình 3.38 Kết tổng hợp RSA Xilinx Virtex XC4VLX60 70 Hình 3.39 Tốc độ thực thuật toán RSA Xilinx Virtex XC4VLX60 71 Hình 3.40 Bo mạch phát triển Spartan 3E Starter Kit 72 Hình 3.41 Sơ đồ khối kiểm tra thiết kế RSA 72 Đỗ Tiến Hướng – TKTT – K43 – MTA 2012 MỞ ĐẦU Ngày nay, với phát triển vũ bão ngành khoa học kỹ thuật, vấn đề bảo mật an tồn thơng tin ngày trọng phát triển hết Mật mã học ngành khoa học chuyên nghiên cứu kỹ thuật ngôn ngữ toán học nhằm cung cấp dịch vụ bảo mật an tồn thơng tin Đây ngành khoa học quan trọng, có nhiều ứng dụng thực tiễn đời sống – xã hội, từ lĩnh vực quân an ninh, quốc phòng đến lĩnh vực dân giao dịch ngân hàng, thương mại điện tử… Chính vậy, nhu cầu chế tạo sản phẩm mã hóa bảo mật thơng tin ngày trở nên cấp thiết hết Mang thuộc tính thích hợp cho an tồn mật mã (như cấu trúc chip cấu hình vật lý, bảo đảm tính tồn vẹn, chống cơng thám mã thiết kế, không phụ thuộc vào hệ điều hành…) công nghệ FPGA (FieldProgrammable Gate Array) hướng việc nghiên cứu, thử nghiệm chế tạo thiết bị mã hóa bảo mật thông tin Thực tế kiểm chứng công nghệ FPGA có ưu điểm vượt trội so với cơng nghệ khác như: tốc độ cao, hoàn toàn dựa phần cứng, an toàn mật mã cao, mềm dẻo thiết kế dễ dàng phát triển Công nghệ FPGA mang lại chủ động tường minh việc đảm bảo an tồn thơng tin Về việc lựa chọn thuật tốn mã hóa giải mã, có nhiều thuật tốn sử dụng thiết bị FPGA xem an toàn dễ dàng triển khai thực tế hệ mật mã khóa cơng khai sử dụng thuật tốn RSA Thuật tốn RSA xem an tồn hiệu cho ứng dụng bảo mật thơng tin, thỏa thuận khóa dịch vụ chữ ký điện tử Với sở khoa học tính thực tiễn trình bày trên, tác giả đăng ký đề tài “Nghiên cứu xây dựng thuật toán RSA FPGA” Mục tiêu đề tài đưa nhìn tổng quan hệ mật mã khóa cơng khai, thuật tốn mã hóa RSA; sở tiến hành mơ phỏng, đánh giá xây dựng thử Đỗ Tiến Hướng – TKTT – K43 – MTA 2012 nghiệm hệ thống mã hóa giải mã sử dụng thuật tốn RSA tảng cơng nghệ FPGA Nội dung đồ án bao gồm chương sau: CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG THÔNG TIN SỐ VÀ MẬT MÃ HỌC Chương giới thiệu tổng quan hệ thống thông tin số đại với khái niệm bản, sơ đồ khối tham số hệ thống thông tin số Phần chương trình bày khái niệm mật mã học, giới thiệu chung hệ mật mã khóa cơng khai với số yêu cầu thiết kế, xây dựng thiết bị bảo mật thơng tin CHƯƠNG 2: THUẬT TỐN MÃ HĨA RSA Chương giới thiệu cách chi tiết thuật toán mã hóa khóa cơng khai RSA lịch sử phát triển, chế hoạt động, tính bảo mật, vấn đề thực tế triển khai sử dụng mã mật RSA từ đánh giá ưu nhược điểm thuật toán RSA đưa ứng dụng RSA thực tế CHƯƠNG 3: XÂY DỰNG HỆ THỐNG MÃ HĨA VÀ GIẢI MÃ RSA TRÊN FPGA Chương mơ tả cách chi tiết trình thiết kế triển khai thực tế thuật toán RSA phần cứng FPGA, khối hệ thống mã hóa giải mã RSA Tiến hành mơ thiết kế công cụ mô ModelSim, đánh giá kết đạt từ hồn thiện, tối ưu hóa thiết kế Tiến hành tổng hợp nạp thiết kế lên bo mạch phát triển FPGA Xilinx Spartan 3E, đánh giá kết nhận Mặc dù có nhiều cố gắng thời gian thực đồ án eo hẹp, kinh nghiệm thân tác giả hạn chế nên khơng tránh khỏi thiếu sót Rất mong nhận đóng góp thầy cô, bạn bè bạn đọc để tác giả hồn thiện kết nghiên cứu thời gian tới Đỗ Tiến Hướng – TKTT – K43 – MTA 2012 CHƯƠNG TỔNG QUAN VỀ HỆ THỐNG THÔNG TIN SỐ VÀ MẬT MÃ HỌC 1.1 Tổng quan hệ thống thông tin số 1.1.1 Các khái niệm Thông tin [1] khái niệm có vai trò quan trọng khoa học kỹ thuật, thể nhận thức, mức độ hiểu biết người vật, tượng hay kiện xảy thực tế Thông tin sở giao tiếp, tảng chủ thể ngành khoa học tin học, viễn thơng… Dữ liệu hình thức biểu diễn thơng tin tuỳ thuộc vào mục đích tính chất ứng dụng Thơng tin mơ tả, số lượng hố liệu để lưu trữ xử lý máy tính, thơng tin số hố dạng mã nhị phân Cần phân biệt khái niệm thông tin liệu ứng dụng thực tế tuỳ thuộc vào mục đích, tính chất hình thức biểu diễn thông tin Hai tập liệu khác mơ tả nội dung thơng tin, ngược lại, hai tập liệu giống mang thông tin khác Lượng thông tin [1] khái niệm gắn chặt với khái niệm thơng tin liệu, giá trị hiểu biết nguồn thông tin mang lại Lượng thơng tin đo đơn vị bit Tín hiệu biểu diễn vật lý thơng tin, chứa đựng tham số thơng tin/dữ liệu truyền dẫn qua hệ thống thông tin Xét mặt tốn học, tín hiệu hàm thời gian, biểu diễn trạng thái vật lý hệ thống Đối với hệ thống, trạng thái đặc trưng hai tín hiệu chủ yếu: Tín hiệu vào tín hiệu Đỗ Tiến Hướng – TKTT – K43 – MTA 2012 Hình 1.1 Mối quan hệ tín hiệu hệ thống 1.1.2 Hệ thống thông tin số Hệ thống thông tin [1] tập hợp phần tử xác định có chức truyền đưa tín hiệu từ nơi tới nơi khác Phân loại hệ thống thơng tin * Theo loại tín hiệu truyền đưa tin tức: - Hệ thống thông tin tương tự (analog) - Hệ thống thông tin tương số (digital) * Phân loại theo phương tiện truyền dẫn: - Hệ thống thông tin cáp đồng - Hệ thống thơng tin sợi quang - Hệ thống thơng tin sóng cực ngắn (thông tin vệ tinh, thông tin chuyển tiếp, thông tin di động…) Cấu trúc hệ thống thông tin Bao gồm thành phần sau: - Các nguồn tín hiệu (tín hiệu hữu ích, tạp âm can nhiễu) - Các thiết bị truyền dẫn tin tức gồm: Các điều chế giải điều chế, lọc khuếch đại, mạch lọc thích nghi dùng làm mạch san đặc tính đường truyền, mạch trì đồng bộ… - Mơi trường truyền dẫn (kênh truyền) - Các thiết bị xử lý tin tức tín hiệu Sự suy giảm tín hiệu kênh truyền yếu tố: - Pha đinh đa đường - Méo tín hiệu đặc tính đường truyền khơng lý tưởng (méo tuyến tính méo phi tuyến), trải trễ tín hiệu truyền dẫn đa đường Đỗ Tiến Hướng – TKTT – K43 – MTA 2012 62 chiếm dụng hệ thống, tham số tính tốn trước sử dụng cơng cụ MatLab nạp cứng lên mạch FPGA với trình tổng hợp khối RSA Đối với chương trình xây dựng MatLab, máy tính khơng hỗ trợ tính tốn số lớn 64 bit số lớn 64 bit biểu diễn dạng mảng chiều n phần tử (n số bit) Trước thực thuật toán đây, cần phải xây dựng lại hàm cộng, nhân, chia với đầu vào mảng chiều n phần tử Hình 3.29 Kiến trúc hệ thống tạo khóa RSA Trong đó, tạo số ngẫu nhiên RNG (Random Number Generator) tạo số n/2 bit giả ngẫu nhiên (với n số bit khóa RSA) đưa đến khối kiểm tra số nguyên tố PT (Primality Tester) Quá trình tạo số ngẫu nhiên kiểm tra số nguyên tố dừng lại tìm số nguyên tố p q thỏa mãn yêu cầu mục 2.2.6 Ngoài ra, khối tạo số nguyên tố PNG (Prime Number Generator) tạo số nguyên tố phụ khác phục vụ cho thuật tốn tìm số E, D sau Đỗ Tiến Hướng – TKTT – K43 – MTA 2012 63 Sau có số nguyên tố p q (n/2 bit) chúng đưa qua khối tính số modul M giá trị Nr theo công thức sau : M = p*q (3.15) Nr = 22n mod M (3.16) Ngoài khối tín tốn giá trị hàm Ơle Φ(M) = (p-1)*(q-1) để đưa vào khối tìm số mũ E,D Khối tính E,D có nhiệm vụ tạo số mũ E,D thỏa mãn yêu cầu mục 2.2.6 công thức sau : GCD(E,Φ(M)) =1 (3.17) D*E ≡ (mod Φ(M)) (3.18) 3.3.1 Khối kiểm tra số nguyên tố Kiểm tra số nguyên tố phần quan trọng hệ mật mã khóa RSA Thuật tốn kiểm tra số nguyên tố thực dựa sở toán học thuật toán đưa Miller Rabin [7][9] Thuật toán khai thác định lý Fermat : An-1 mod n = n số nguyên tố Thuật toán kiểm tra số nguyên tố Miller Rabin trình bày [19] sau: Hình 3.30 Lưu đồ thuật tốn kiểm tra số nguyên tố Đỗ Tiến Hướng – TKTT – K43 – MTA 2012 64 Để có xác suất cao (lớn 0,999999), số ngẫu nhiên n tính số nguyên tố kết chương trình Test primality(n) trả liên tiếp 50 kết “inconclusive” [19] Theo phân bố số nguyên tố, trung bình 71 lần thử nghiệm (0.4*ln(2256)) tìm thấy số ngun tố Thuật tốn sử dụng thường xuyên phép tính lũy thừa modul, hàm tính lũy thừa modul xây dựng tương tự hàm MontAEM xây dựng mục 3.2.4 Chương trình PT.m , MontAEM.m trình bày phụ lục 3.3.2 Khối tính GCD Sau nhận Φ(M), cần tính tốn số mũ E thỏa mãn cơng thức (3.17) Sử dụng thuật tốn Euclid mở rộng ta tìm giá trị hàm GCD(E,Φ(M)), giá trị hàm GCD trả giá trị E D thỏa mãn công thức (3.18) Dạng rút gọn thuật toán Euclid mở rộng [19] trình bày sau: Hình 3.31 Lưu đồ thuật toán Euclid mở rộng dạng rút gọn Thuật toán tiếp tục tìm giá trị b tìm thấy giá trị b thỏa mãn GCD(m,b) = Sau hàm trả giá trị E = b giá trị nghịch đảo Đỗ Tiến Hướng – TKTT – K43 – MTA 2012 65 modul m b D = B2, với m giá trị hàm Euclid Φ(M) Trong thuật toán đơn giản, thay để T2

Ngày đăng: 18/08/2018, 08:11

TỪ KHÓA LIÊN QUAN

w