Tải bản đầy đủ (.pdf) (43 trang)

Phân tích cơ chế bảo mật rsa đa số nguyên tố (rsa crt) và cài đặt rsa crt trên fpga

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.04 MB, 43 trang )

Đại Học Quốc Gia Tp. Hồ Chí Minh
TRƯỜNG ĐẠI HỌC BÁCH KHOA
--------------------

PHẠM XUÂN KHÁNH

“PHÂN TÍCH CƠ CHẾ BẢO MẬT RSA
ĐA SỐ NGUYÊN TỐ (RSA CRT)
VÀ CÀI ĐẶT RSA CRT TRÊN FPGA”

Chuyên ngành : Kỹ thuật điện tử
Mã số ngành: 2.07.01

TÓM TẮT LUẬN VĂN THẠC SĨ

Tp. Hồ Chí Minh, tháng 7 năm 2007


Phân tích cơ chế bảo mật RSA đa số nguyên tố
và cài đặt thuật toán RSA CRT trên FPGA

THD: PGS-TS Lê Tiến Thường

ABSTRACT
In this project we present an hardware implementation of the RSA algorithm for
public-key cryptography. The RSA algorithm consists in the computation of
modular exponentials on large integers, that can be reduced to repeated modular
multiplications. 1024-bit RSA circuit is implemented in VHDL. It is a full-featured
RSA circuit including key generating and data encryption/decryption. In order to
speed up RSA cryptosystem, multi-prime RSA based on Chinese Remainder
Theorem (CRT) is used in this project to replace an RSA operation by several


paralell operations with smaller bases and exponents. These components are too big
to fit into a single Xilinx Virtex II Pro on the Field Programmable Port Extended
(FPX) platform, so that we are unable to test them in real hardware. However, each
sub-component was simulated in ModelSIM and proved functionally correct.
Although neither RSA key generation nor data encryption/decryption component
can be tested on FPX, we still implemented all testing related hardware, including
Control Packet Processor (CPP) and Output Packet Processor (OPP).

Abstract

ii

HVTH: KS. Phạm Xuân Khánh


Phân tích cơ chế bảo mật RSA đa số nguyên tố
và cài đặt thuật toán RSA CRT trên FPGA

THD: PGS-TS Lê Tiến Thường

TĨM TẮT NỘI DUNG
Trong đề tài này tơi trình bày việc cài đặt phần cứng thuật tốn RSA cho hệ thống
bảo mật khố cơng khai. Thuật tốn RSA bao gồm việc tính tốn phép mũ modulo
trên số ngun giá trị lớn, và có thể được tối ưu dựa vào phép nhân modulo. Hệ
thống RSA 1024 bit sẽ được cài đặt bằng ngôn ngữ VHDL. Đây là một mạch đầy
đủ tính năng bao gồm việc phát sinh khố và mã hoá/giải mã. Để tăng tốc hệ thống
bảo mật RSA, giải thuật RSA đa số nguyên tố dựa trên CRT (Chinese Remainder
Theorem) được sử dụng trong đề tài này để thay thế hoạt động RSA thông thường
bằng cách tiến hành các tiến trình song song với cơ số và số mũ nhỏ hơn. Những
thành phần này quá lớn để có thể đẩy xuống kit Xilinx Virtex II Pro thông qua FPX

(Field Programmable Port Extended), vì thế chúng ta khơng thể kiểm tra chúng trên
phần cứng. Tuy nhiên, mỗi thành phần có thể mơ phỏng trên phần mềm ModelSIM
và chứng minh được các khối chức năng hoạt động đúng. Mặc dù cả khối phát sinh
khố RSA và mã hố/giải mã khơng thể kiểm tra qua FPX, song chúng ta vẫn có thể
cài đặt các khối phần cứng liên quan thông qua CPP (Control Packet Processor) và
OPP (Output Packet Processor).

Tóm tắt nội dung

iii

HVTH: KS. Phạm Xuân Khánh


Phân tích cơ chế bảo mật RSA đa số nguyên tố
và cài đặt thuật toán RSA CRT trên FPGA

THD: PGS-TS Lê Tiến Thường

MỤC LỤC
ABSTRACT---------------------------------------------------------------------------------------------------------------- ii
TÓM TẮT NỘI DUNG ------------------------------------------------------------------------------------------------- iii
MỤC LỤC ----------------------------------------------------------------------------------------------------------------- iv
DANH SÁCH CÁC HÌNH --------------------------------------------------------------------------------------------- vi
CHƯƠNG 1:

GIỚI THIỆU ----------------------------------------------------------------------------------------- 1

1.1


Đặt vấn đề -------------------------------------------------------------------------------------------------------- 1

1.2

Tổng quan tình hình nghiên cứu ------------------------------------------------------------------------------- 1

1.3 Mục tiêu, đối tượng và phạm vi nghiên cứu ------------------------------------------------------------------ 4
1.3.1
Mục tiêu của đề tài --------------------------------------------------------------------------------------- 4
1.3.2
Đối tượng và phạm vi nghiên cứu ---------------------------------------------------------------------- 4
1.4

Nội dung nghiên cứu -------------------------------------------------------------------------------------------- 4

1.5

Bố cục tóm tắt luận văn ----------------------------------------------------------------------------------------- 5

1.6 Ý nghĩa đề tài----------------------------------------------------------------------------------------------------- 6
1.6.1
Ý nghĩa khoa học ----------------------------------------------------------------------------------------- 6
1.6.2
Ý nghĩa kinh tế xã hội------------------------------------------------------------------------------------ 6
CHƯƠNG 2:

CƠ BẢN VỀ CƠ CHẾ BẢO MẬT --------------------------------------------------------------- 7

2.1


Các dạng mã hoá ------------------------------------------------------------------------------------------------ 7

2.2

Thuật toán và khoá ---------------------------------------------------------------------------------------------- 7

2.3

Mã hoá dữ liệu --------------------------------------------------------------------------------------------------- 8

2.4 Thuật toán RSA và thủ thuật tăng tốc bằng phương pháp CRT-------------------------------------------10
2.4.1
Mô tả giải thuật RSA------------------------------------------------------------------------------------11
2.4.2
Thủ thuật tăng tốc cơ chế RSA bằng phương pháp CRT -------------------------------------------13
CHƯƠNG 3:

THỰC HIỆN THUẬT TOÁN RSA TRÊN PHẦN CỨNG FPGA ------------------------17

3.1 Sơ đồ khối phần cứng cho thuật tốn RSA ------------------------------------------------------------------17
3.1.1
Mơ hình tổng qt ---------------------------------------------------------------------------------------18
3.1.2
Khối KEYGENERATE---------------------------------------------------------------------------------18
3.1.3
Khối ENCRYPTION------------------------------------------------------------------------------------20
3.1.4
Khối DECRYPTION------------------------------------------------------------------------------------21
3.2 Kết quả tổng hợp phần cứng ----------------------------------------------------------------------------------22
3.2.1

Khối KEYGENERATE---------------------------------------------------------------------------------23
3.2.2
Khối ENCRYPTION------------------------------------------------------------------------------------23
3.2.3
Khối DECRYPTION------------------------------------------------------------------------------------24
3.2.4
Đánh giá kết quả thực thi phần cứng------------------------------------------------------------------24
3.3 Kết quả mô phỏng bằng ModelSIM --------------------------------------------------------------------------25
3.3.1
Khối phát sinh khoá RSA-------------------------------------------------------------------------------25
3.3.2
Khối phát sinh khoá RSA CRT ------------------------------------------------------------------------25

Mục lục

iv

HVTH: KS. Phạm Xuân Khánh


Phân tích cơ chế bảo mật RSA đa số nguyên tố
và cài đặt thuật toán RSA CRT trên FPGA
3.3.3
3.3.4
3.3.5
3.4

THD: PGS-TS Lê Tiến Thường

Khối mã hoá RSA ---------------------------------------------------------------------------------------26

Khối giải mã RSA thơng thường ----------------------------------------------------------------------26
Khối giải mã RSA CRT---------------------------------------------------------------------------------27

Chương trình RSA CRT và kết quả mô phỏng trên kit Xilinx Virtex II Pro -----------------------------27

CHƯƠNG 4:

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN------------------------------------------------------32

4.1

Kết quả của đề tài ----------------------------------------------------------------------------------------------32

4.2

Đánh giá kết quả và hướng phát triển của đề tài-----------------------------------------------------------32

TÀI LIỆU THAM KHẢO ------------------------------------------------------------------------------------------------I

Mục lục

v

HVTH: KS. Phạm Xuân Khánh


Phân tích cơ chế bảo mật RSA đa số nguyên tố
và cài đặt thuật toán RSA CRT trên FPGA

THD: PGS-TS Lê Tiến Thường


DANH SÁCH CÁC HÌNH
Hình 2. 1 Q trình mã hố đối xứng ............................................................................................................ 8
Hình 2. 2 Q trình mã hố bất đối xứng ...................................................................................................... 9
Hình 2. 3 Q trình ký chữ ký số ................................................................................................................. 10
Hình 2. 4 Thuật tốn RSA............................................................................................................................. 13
Hình 3. 1 Mơ hình thực hiện phần cứng ...................................................................................................... 17
Hình 3. 2 Sơ đồ khối của hệ thống................................................................................................................ 17
Hình 3. 3 Khối KEYGENERATE ................................................................................................................ 19
Hình 3. 4 Khối ENCRYPTION..................................................................................................................... 21
Hình 3. 5 Mơ hình kiến trúc của khối DECRYPTION............................................................................... 22
Hình 3. 6 Kết quả mơ phỏng khối phát sinh khố RSA.............................................................................. 25
Hình 3. 7 Kết quả mơ phỏng khối phát sinh khố RSA CRT .................................................................... 25
Hình 3. 8 Kết quả mơ phỏng khối mã hố RSA .......................................................................................... 26
Hình 3. 9 Kết quả mơ phỏng khối giả mã RSA thơng thường ................................................................... 26
Hình 3. 10 Kết quả mơ phỏng khối giả mã RSA CRT ................................................................................ 27
Hình 3. 11 Giao diện chính của chương trình mơ phỏng............................................................................ 28
Hình 3. 12 Q trình phát sinh cặp khố public/ private........................................................................... 29
Hình 3. 13 Q trình mã hố RSA ............................................................................................................... 30
Hình 3. 14 Quá trình giải mã RSA CRT ...................................................................................................... 31

Danh sách các hình

vi

HVTH: KS. Phạm Xuân Khánh


Phân tích cơ chế bảo mật RSA đa số nguyên tố
và cài đặt thuật toán RSA CRT trên FPGA


THD: PGS-TS Lê Tiến Thường

CÁC TỪ VIẾT TẮT

ACE

Advanced Configuration Environment

ASIC

Application Specific Integrated Circuit

ASSP

Application Specific Standard Package

BSR

Block Select RAM

CA

Certificate Authority

CAD

Computer Aided Design

CCITT


Comité Consultatif International
Téléphonique et Télégraphique

CD-ROM

Compact Disc-Read-Only Memory

CF

Compact Flash

CLB

Configurable Logic Block

CM

Confusion Matrix

CRL

Certificate Revocation List

DCI

Digitally Controlled Impedance

FPGA


Field Programmable Gate Array

FPX

Field Programmable port eXtender

HDL

Hardware Description Language

IC

Integrated Circuit

I/O

Input/Output

IOB

Input/Output Block

ISE

Integrated Software Environment

LC

logic cell


LDAP

Lightweight Directory Access Protocol

Các từ viết tắt

vii

HVTH: KS. Phạm Xuân Khánh


Phân tích cơ chế bảo mật RSA đa số nguyên tố
và cài đặt thuật toán RSA CRT trên FPGA

THD: PGS-TS Lê Tiến Thường

LUT

Look Up Table

MPGA

Mask Programmable Gate Array

MRC

Mixed-Radix Conversion

PGP


Pretty Good Privacy

PKI

Public Key Infrastructure

PLA

Programmable Logic Array

PLD

Programmable Logic Device

PROM

Programmable Read-Only Memory

RAM

Random Access Memory

RISC

Reduced Instruction Set Computer

ROM

Read-Only Memory


RSA

Rivest-Shamir-Adleman

RTL

Register Transfer Level

SATA

Serial Advanced Technology Attachment

SoC

Systems On Chip

SRAM

Static Random Access Memory

SRC

Single-Radix Conversion

SSL

Security Socket Layer

USB


Universal Serial Bus

VHDL

VHSIC Hardware Description Language

VHSIC

Very High Speed Integrated Circuits

VLSI

Very Lage Scale Integration

VPN

Virtual Private Network

XUP

Xilinx University Program

Các từ viết tắt

viii

HVTH: KS. Phạm Xuân Khánh


Phân tích cơ chế bảo mật RSA đa số nguyên tố

và cài đặt thuật toán RSA CRT trên FPGA

THD: PGS-TS Lê Tiến Thường

CHƯƠNG 1: GIỚI THIỆU
1.1

Đặt vấn đề

Với sự phát triển liên tục và mạnh mẽ của mạng internet và mạng mở wireless, nên
có một nhu cầu cấp thiết là bảo vệ dữ liệu truyền tải trên mạng. RSA là một kỹ thuật
mã hoá đã được sử dụng rộng rãi trong các ứng dụng bảo vệ dữ liệu.
RSA dựa trên độ khó của các phép tốn số lớn để cung cấp các dịch vụ bảo mật.
Thuật tốn RSA hồn tồn có thể được tính tốn trên software, song đối với một số
ứng dụng thời gian thực, chẳng hạn như ứng dụng VPN, thì các tính tốn RSA trên
software khơng đáp ứng đầy đủ các yêu cầu đó. Việc này có thể hoàn toàn được
khắc phục bằng cách tăng tốc thuật tốn trên cơng nghệ ASIC hoặc ASSPs, song
các giải pháp này thường rất tốn kém và không mềm dẻo về mặt giải pháp. Kết hợp
giữa vấn đề về giá cả và tốc độ, thì việc cài đặt RSA trên FPGA là hợp lý nhất. Với
ly do trên, đã có rất nhiều cơng trình nghiên cứu đề nghị nhiều giải pháp khác nhau,
và cũng chưa có giải pháp nào hồn chỉnh cho việc cài đặt thuật tốn RSA trên
FPGA.
Để có thể cài đặt phần cứng cho RSA, một số giảp pháp có một số tính tốn phức
tạp được tính tốn chẳng hạn như kỹ thuật nhân Montgomery. Kỹ thuật
Montgomery cho phép cài đặt thuật tiện cho hệ thống mã hoá RSA trên FPGA. Các
tính tốn Montgomery dựa trên việc tái sử dụng các phép cộng.
Trong đề tài này có cách tiếp cận hồn tồn khác. Đó là sử dụng phương pháp nhị
phân cho các phép modulo, và sử dụng XilinxCoreLib, bộ cộng 32 bit sử dụng bảng
tra LUT 4 ngõ vào để làm hạt nhân cho phép cộng, nhằm tận dụng tài nguyên và
giải quyết vấn đề tốc độ cho phép cộng, yếu tố quan trọng ảnh hưởng đến tốc độ

toàn hệ thống. Trong hệ thống mã hoá RSA, vấn đề tốc độ của khối giải mã đóng
một vai trị tối quan trọng vì hệ số public exponent e thường được lựa chọn là môt
số nguyên tố rất nhỏ nên tốc độ mã hoá sẽ rất nhanh, gây ảnh hưởng đến tốc độ giải
mã. Trong đề tài này sẽ áp dụng giải pháp CRT cho việc giải mã, với giải thuật CRT
hai số nguyên tố sẽ đẩy nhanh tốc độ giải mã lên bốn lần. Kết quả so sánh giữa
phuơng pháp RSA thông thường và RSA CRT sẽ được thấy rõ trong các mơ phỏng
ModelSIM, ngồi ra đề tài sẽ tổng hợp giải thuật RSA CRT lên board XUP Virtex
II Pro Development System.

1.2

Tổng quan tình hình nghiên cứu

Về khía cạnh mã hoá, RSA là giải thuật cho hệ thống mã hoá khố cơng khai. Đây
là thuật tốn đầu tiên phù hợp cho việc ký và mã hoá, và là một trong bước cải tiến

Chương 1

1

HVTH: KS. Phạm Xuân Khánh


Phân tích cơ chế bảo mật RSA đa số nguyên tố
và cài đặt thuật toán RSA CRT trên FPGA

THD: PGS-TS Lê Tiến Thường

quan trọng trong hệ thống mã hoá khoá công khai. RSA đã được sử dụng rộng rãi
trong các giao thức thương mại điện tử và đã được chứng minh về độ tin cậy trong

thực tế.
Thuật toán được Ron Rivest, Adi Shamir và Len Adleman mô tả lần đầu tiên vào
năm 1977 tại Học viện Công nghệ Massachusetts (MIT). Tên của thuật toán lấy từ 3
chữ cái đầu của tên 3 tác giả.
Trước đó, vào năm 1973, Clifford Cocks, một nhà toán học người Anh làm việc tại
GCHQ, đã mơ tả một thuật tốn tương tự. Với khả năng tính tốn tại thời điểm đó
thì thuật tốn này khơng khả thi và chưa bao giờ được thực nghiệm. Tuy nhiên, phát
minh này chỉ được công bố vào năm 1997 vì được xếp vào loại tuyệt mật.
Thuật tốn RSA được MIT đăng ký bằng sáng chế tại Hoa Kỳ vào năm 1983 (số
đăng ký 4,405,829). Bằng sáng chế này hết hạn vào ngày 21 tháng 9 năm 2000. Tuy
nhiên, do thuật tốn đã được cơng bố trước khi có đăng ký bảo hộ nên sự bảo hộ
hầu như khơng có giá trị bên ngoài Hoa Kỳ. Ngoài ra, nếu như cơng trình của
Clifford Cocks đã được cơng bố trước đó thì bằng sáng chế RSA đã khơng thể được
đăng ký.
Độ an toàn của hệ thống RSA dựa trên 2 vấn đề của tốn học: bài tốn phân tích ra
thừa số nguyên tố các số nguyên lớn và bài toán RSA. Nếu 2 bài tốn trên là khó
(khơng tìm được thuật tốn hiệu quả để giải chúng) thì khơng thể thực hiện được
việc phá mã toàn bộ đối với RSA. Phá mã một phần phải được ngăn chặn bằng các
phương pháp chuyển đổi bản rõ an tồn.
Bài tốn RSA là bài tốn tính căn bậc e mơđun n (với n là hợp số): tìm số m sao cho
me = c mod n, trong đó (e, n) chính là khóa cơng khai và c là bản mã. Hiện nay
phương pháp triển vọng nhất giải bài tốn này là phân tích n ra thừa số nguyên tố.
Khi thực hiện được điều này, kẻ tấn cơng sẽ tìm ra số mũ bí mật d từ khóa cơng
khai và có thể giải mã theo đúng quy trình của thuật tốn. Nếu kẻ tấn cơng tìm được
2 số nguyên tố p và q sao cho: n = pq thì có thể dễ dàng tìm được giá trị (p-1)(q-1)
và qua đó xác định d từ e. Chưa có một phương pháp nào được tìm ra trên máy tính
để giải bài tốn này trong thời gian đa thức (polynomial-time). Tuy nhiên người ta
cũng chưa chứng minh được điều ngược lại (sự khơng tồn tại của thuật tốn).
Tại thời điểm năm 2005, số lớn nhất có thể được phân tích ra thừa số ngun tố có
độ dài 663 bít với phương pháp phân tán trong khi khóa của RSA có độ dài từ 1024

tới 2048 bít. Một số chun gia cho rằng khóa 1024 bít có thể sớm bị phá vỡ (cũng
có nhiều người phản đối việc này). Với khóa 4096 bít thì hầu như khơng có khả
năng bị phá vỡ trong tương lai gần. Do đó, người ta thường cho rằng RSA đảm bảo
an toàn với điều kiện n được chọn đủ lớn. Nếu n có độ dài 256 bít hoặc ngắn hơn,

Chương 1

2

HVTH: KS. Phạm Xuân Khánh


Phân tích cơ chế bảo mật RSA đa số nguyên tố
và cài đặt thuật toán RSA CRT trên FPGA

THD: PGS-TS Lê Tiến Thường

nó có thể bị phân tích trong vài giờ với máy tính cá nhân dùng các phần mềm có
sẵn. Nếu n có độ dài 512 bít, nó có thể bị phân tích bởi vài trăm máy tính tại thời
điểm năm 1999. Một thiết bị lý thuyết có tên là TWIRL do Shamir và Tromer mô tả
năm 2003 đã đặt ra câu hỏi về độ an tồn của khóa 1024 bít. Vì vậy hiện nay người
ta khuyến cáo sử dụng khóa có độ dài tối thiểu 2048 bít.
Năm 1993, Peter Shor cơng bố thuật tốn Shor chỉ ra rằng: máy tính lượng tử (trên
lý thuyết) có thể giải bài tốn phân tích ra thừa số trong thời gian đa thức. Tuy
nhiên, máy tính lượng tử vẫn chưa thể phát triển được tới mức độ này trong nhiều
năm nữa.
Việc tìm ra 2 số nguyên tố đủ lớn p và q thường được thực hiện bằng cách thử xác
suất các số ngẫu nhiên có độ lớn phù hợp (dùng phép kiểm tra nguyên tố cho phép
loại bỏ hầu hết các hợp số).
p và q cịn cần được chọn khơng q gần nhau để phịng trường hợp phân tích n

bằng phương pháp phân tích Fermat. Ngồi ra, nếu p-1 hoặc q-1 có thừa số ngun
tố nhỏ thì n cũng có thể dễ dàng bị phân tích và vì thế p và q cũng cần được thử để
tránh khả năng này.
Bên cạnh đó, cần tránh sử dụng các phương pháp tìm số ngẫu nhiên mà kẻ tấn cơng
có thể lợi dụng để biết thêm thông tin về việc lựa chọn (cần dùng các bộ tạo số ngẫu
nhiên tốt). Yêu cầu ở đây là các số được lựa chọn cần đồng thời ngẫu nhiên và
khơng dự đốn được. Đây là các u cầu khác nhau: một số có thể được lựa chọn
ngẫu nhiên (khơng có kiểu mẫu trong kết quả) nhưng nếu có thể dự đốn được dù
chỉ một phần thì an ninh của thuật tốn cũng khơng được đảm bảo. Một ví dụ là
bảng các số ngẫu nhiên do tập đoàn Rand xuất bản vào những năm 1950 có thể rất
thực sự ngẫu nhiên nhưng kẻ tấn cơng cũng có bảng này. Nếu kẻ tấn cơng đốn
được một nửa chữ số của p hay q thì chúng có thể dễ dàng tìm ra nửa còn lại (theo
nghiên cứu của Donald Coppersmith vào năm 1997)
Một điểm nữa cần nhấn mạnh là khóa bí mật d phải đủ lớn. Năm 1990, Wiener chỉ
ra rằng nếu giá trị của p nằm trong khoảng q và 2q (khá phổ biến) và d < n1/4/3 thì
có thể tìm ra được d từ n và e.
Mặc dù e đã từng có giá trị là 3 nhưng hiện nay các số mũ nhỏ khơng cịn được sử
dụng do có thể tạo nên những lỗ hổng (đã đề cập ở phần chuyển đổi văn bản rõ).
Giá trị thường dùng hiện nay là 65537 vì được xem là đủ lớn và cũng không quá lớn
ảnh hưởng tới việc thực hiện hàm mũ.
Trong phần tiếp theo của luận văn, tôi sẽ giới thiệu về phương pháp cài đặt thuật
toán RSA CRT lên FPGA. Trong lý thuyết về giải mã RSA CRT, có nhiều trường

Chương 1

3

HVTH: KS. Phạm Xuân Khánh



Phân tích cơ chế bảo mật RSA đa số nguyên tố
và cài đặt thuật toán RSA CRT trên FPGA

THD: PGS-TS Lê Tiến Thường

hợp xuất hiện số âm gây khó khăn cho việc tính tốn. Sử dụng lại một số
component của dự án CS502 vào năm 2006 của Jing Lu và Qian Wan (đại học
Washington ở St.Louis), với các cải tiến về giải thuật Euclide mở rộng và giải thuật
giải mã RSA CRT sao cho thuận tiện cho việc cài đặt toàn bộ giải thuật RSA CRT
lên kit FPGA. Cuối cùng là phần đánh giá độ tin cậy của giải thuật, so sánh tốc độ
giải mã giữa hai thuật toán RSA và RSA CRT bằng phần mềm mô phỏng
ModelSIM của hãng Mentor Graphics.

1.3

Mục tiêu, đối tượng và phạm vi nghiên cứu

1.3.1

Mục tiêu của đề tài

Mục tiêu của đề tài là nghiên cứu vai trị của thuật tốn RSA trong hạ tầng khố
cơng khai PKI, phân tích vai trị của việc giải mã RSA CRT trong việc đẩy nhanh
tốc độ giải mã. Từ đó thực hiên mơ phỏng trên phần mềm ModelSIM để kiểm
chứng lý thuyết và thực hiện toàn bộ thuật thuật toán RSA CRT trên phần cứng
FPGA.
1.3.2

Đối tượng và phạm vi nghiên cứu


Đề tài chỉ giới hạn trong phạm vi nghiên cứu và mô phỏng giải thuật RSA CRT, kết
hợp với việc tìm hiểu về hạ tầng khố cơng khai PKI, đây là một lĩnh vực vẫn còn
khá mới mẽ ở Việt Nam mà trong đó giải thuật RSA đóng một vai trò tối quan
trọng.
Trong phần thiết kế phần cứng FPGA, đề tài có thể tổng hợp hồn tồn giải thuật
RSA (mã hoá/giải mã và phát sinh khoá), song nếu kết hợp cả ba component thì q
lớn để có thể cài đặt trên một kit Xilinx Virtex II Pro trên platform FPX, nên chúng
ta không thể kiểm tra chúng trên phần cứng thực tế. Tuy nhiên, chúng ta có thể sử
dụng phần mềm ModelSIM để kiểm tra các chức năng của các component và chỉ cài
đặt một số subcomponent quan trọng lên kit Virtex II Pro và phần còn lại sẽ được
tính tốn trên phần mềm RSA CRT FPGA Controller được viết bằng ngơn ngữ
Visual C#.

1.4

Nội dung nghiên cứu
• Tìm hiểu cơ bản về hệ thống bảo mật.
• Tìm hiểu về hạ tầng khố cơng khai PKI.
• Nghiên cứu sâu về giải thuật mã hoá RSA và giải mã RSA CRT.

Chương 1

4

HVTH: KS. Phạm Xuân Khánh


Phân tích cơ chế bảo mật RSA đa số nguyên tố
và cài đặt thuật toán RSA CRT trên FPGA


THD: PGS-TS Lê Tiến Thường

• Cải tiến một số giải thuật Euclide mở rộng, phép cộng modulo Omura, khử
phép trừ trong phần giải mã RSA CRT.
• Nghiên cứu về q trình thiết kế phần cứng: ngôn ngữ VHDL, phần mềm
Xilinx ISE, board lập trình XUP Development System (FPGA Virtex-II Pro).
• Hiện thực hóa tồn bộ giải thuật RSA CRT trên chip FPGA Virtex - II Pro.
• Nghiên cứu dùng Visual C# để giao tiếp và xử lý kết quả của việc tổng hợp
giải thuật RSA CRT trên phần cứng FPGA.

1.5

Bố cục tóm tắt luận văn

Nội dung của tóm tắt luận văn được chia thành 4 chương như sau:
Chương 1: Giới thiệu
Chương này trình bày lí do thực hiện đề tài, mục tiêu, đối tượng và phạm vi nghiên
cứu; giới thiệu tổng quan tình hình nghiên cứu liên quan đến đề tài, nội dung nghiên
cứu cũng như ý nghĩa khoa học và ý nghĩa thực tiễn của đề tài.
Chương 2: Cơ bản về cơ chế bảo mật
Chương 2 trình bày các lý thuyết cơ sở liên quan đến việc thực hiện đề tài bao gồm
các lý thuyết về hệ thống mã hóa khóa cơng khai, lý thuyết cơ bản về thuật tốn mã
hố RSA và lý thuyết về việc tăng tốc giải mã của giải thuật RSA CRT, trong đó
trình bày hai phương pháp SRC và MRC của quá trình giải mã RSA CRT.
Chương 3: Thực hiện phần cứng
Nội dung chương 3 bao gồm các phần liên quan đến việc thực hiện một mơ hình
phần cứng cụ thể cho tồn bộ hệ thống mã hóa RSA trên nền FPGA. Trình bày mơ
hình tổng quát của hệ thống, chi tiết thiết kế của các khối trong hệ thống, và kết quả
tổng hợp các thiết kế thành hệ thống hồn chỉnh. Sau đó trình bày các kết quả mô
phỏng đã được thực hiện trên phần mềm ModelSIM của hãng Mentor Graphics và

trên kit FPGA Virtex II Pro thơng qua chương trình RSA CRT FPGA Controller
được viết bằng Visual C#.NET.
Chương 4: Kết luận
Chương 4 trình bày tóm tắt các kết quả đạt được của luận văn cũng như đánh giá
những kết quả đạt được và đề xuất hướng phát triển tiếp theo cho hệ thống mã hoá
RSA.

Chương 1

5

HVTH: KS. Phạm Xuân Khánh


Phân tích cơ chế bảo mật RSA đa số nguyên tố
và cài đặt thuật toán RSA CRT trên FPGA

1.6

THD: PGS-TS Lê Tiến Thường

Ý nghĩa đề tài

1.6.1

Ý nghĩa khoa học

Đề tài đã nghiên cứu các lý thuyết về hệ thống mã hố khố cơng khai, hạ tầng khố
cơng khai PKI, chữ ký điện tử và phân tích về tốc độ giải mã của giải thuật RSA
CRT.

Ý nghĩa tiếp theo của luận văn là hướng đến việc hiện thực hóa bộ mã hố RSA trên
phần cứng sử dụng cơng nghệ SoC (System On Chip) mà cụ thể là trên cơng nghệ
FPGA, góp phần làm phát triển việc nghiên cứu phát triển công nghệ thiết kế chip
tại trường Đại học.
1.6.2

Ý nghĩa kinh tế xã hội

Hiện nay, thương mại điện tử, chính phủ điện tử chưa thể thực hiện một cách triệt
để tại Việt Nam. Chỉ có một lý do duy nhất đó là chưa thể triên khai được hạ tầng
khố cơng khai PKI tại Việt Nam, trong đó thuật tốn RSA đóng một vai trị khơng
thể thay thế. Những nghiên cứu của đề tài là một đóng góp vào việc cụ thể hố phần
nào vào việc triển khai hạ tầng khố cơng khai PKI tại Việt Nam.
Hệ thống mã hoá được hiện thực trên công nghệ thiết kế chip tiên tiến. Với thiết kế
này, kết quả của đề tài có thể dễ dàng được thương mại hóa. Hiện tại đang có một
số dự án của các cộng ty nước ngoài đầu tư vào thiết kế chip ở Việt Nam, nổi bật
trong đó là của Intel vào khu Công nghệ cao Thành phố Hồ Chí Minh. Do đó đề tài
sẽ góp phần vào việc tiếp cận công nghệ thiết kế chip tại Việt Nam.

Chương 1

6

HVTH: KS. Phạm Xuân Khánh


Phân tích cơ chế bảo mật RSA đa số nguyên tố
và cài đặt thuật toán RSA CRT trên FPGA

THD: PGS-TS Lê Tiến Thường


CHƯƠNG 2: CƠ BẢN VỀ CƠ CHẾ BẢO MẬT
Chương này sẽ trình bày một số cơ bản về cơ chế bảo mật và cung cấp một số kiến
thức cơ bản về các dạng mã hoá và chữ ký điện tử trong các ứng dụng PKI.

2.1

Các dạng mã hoá

Cơ chế bảo mật hỗ trợ mã hoá đối xứng và bất đối xứng cho chức năng mã hố.
• Mã hố đối xứng: cặp khoá giống nhau được dùng cho quá trình mã
hố/giải mã. Khố này phải được trao đổi để bên gửi và bên nhận có thể truy
cập được dữ liệu plaintext.
• Mã hố bất đối xứng: cặp khố có quan hệ toán học với nhau, bao gồm
khoá public và private, được sử dụng cho q trình mã hố/giải mã.
o Nếu khố public được sử dụng cho q trình mã hố thì khố private
được sử dụng cho q trình giải mã.
o Nếu khố private được sử dụng cho q trình mã hố thì khố public
được sử dụng cho q trình giải mã.

2.2

Thuật toán và khoá

Khi dữ liệu được mã hoá với cơ chế bảo mật, hai yếu tố cần xác định là thuật tốn
và khóa.
• Thuật tốn: thuật tốn định nghĩa cách thức dữ liệu được chuyển đổi tử
dạng plaintext sang ciphertext. Cả hai bên gửi và nhận cần phải biết thuật
tốn được sử dụng để chuyển đổi dữ liệu.
• Khoá: khoá được xem là input của thuật toán để thuật toán biến đổi plaintext

thành ciphertext và ngược lại.
Tất cả các ứng dụng đều phải xác định các input được phân bố giữa bên gửi và
nhận.
Để có thể kích hoạt q trình mã hố, các ứng dụng PKI phải làm các việc sau:
• Xác định thuật tốn được hỗ trợ bởi ứng dụng: trong một số trường hợp,
ứng dụng cần phải cho phép sự thoả thuận về thuật toán để bên gửi và nhận
đạt được hình thức mã hố phù hợp nhất.

Chương 1

7

HVTH: KS. Phạm Xuân Khánh


Phân tích cơ chế bảo mật RSA đa số nguyên tố
và cài đặt thuật toán RSA CRT trên FPGA

THD: PGS-TS Lê Tiến Thường

• Phát sinh khố để sử dụng cho thuật toán: Trong trường hợp tốt nhất,
khoá nên sử dụng là khóa one-time, có nghĩa là nó chỉ được sử dụng duy
nhất một lần cho q trình mã hố/giải mã. Khi khố được sử dụng nhiều lần,
nó trở nên dễ bị tấn cơng.
• Xác định phương pháp phân phối khóa: khoá cần được chuyển một cách
bảo mật từ bên gửi đến bên nhận, do đó phương phsp phân phối khố đóng
vai trị rất quan trọng.

2.3


Mã hố dữ liệu

Q trình mã hóa chống lại sự can thiệp của những yếu tố bên ngồi. Phần này mơ
tả cách hoạt động của q trình mã hố đối xứng và bất đối xứng.
• Mã hoá đối xứng:
Như đã đề cập ở trên, mã hoá đối xứng sử dụng cùng cặp khoá cho cả hai q
trình mã hố/giải mã. Các thuật tốn kết hợp với q trình mã hố đối xứng có
thể mã hố lượng thông tin lớn trong thời gian ngắn nhờ vào việc chỉ sử dụng
một khoá đơn và thuật toán mã hoá đối xứng đơn giản hơn nhiều so với thuật
toán mã hố bất đối xứng.

Hình 2. 1 Q trình mã hố đối xứng
Khi dữ liệu được mã hoá với thuật toán mã hoá đối xứng, bên gửi sẽ phát
ngẫu nhiên một khố đối xứng ngẫu nhiên. Chiều dài của khóa, tính theo đơn
vị bit, được xác định bởi thuật toán và ứng dụng sử dụng thuật toán đối xứng.
Mỗi khi khoá đối xứng được phát sinh, khoá được sử dụng để mã hố dữ liệu
plaintext thành ciphertext. Sau đó ciphertext được chuyển đến bên nhận. Bên
nhận sẽ nhận chuỗi dữ liệu ciphertext và sử dụng khoá đối xứng để giải mã
ngược lại chuỗi dữ liệu plaintext.
Một số giải thuật mã hoá đối xứng được các ứng dụng PKI sử dụng là DES,
DESX, RC2, RC4, Triple DES và AES.
• Mã hố bất đối xứng:

Chương 1

8

HVTH: KS. Phạm Xuân Khánh



Phân tích cơ chế bảo mật RSA đa số nguyên tố
và cài đặt thuật toán RSA CRT trên FPGA

THD: PGS-TS Lê Tiến Thường

Mã hoá bất đối xứng tăng độ bảo mật bởi việc sử dụng hai khố riêng biệt
nhưng có quan hệ toán học với nhau được gọi là khoá public và private. Q
trình mã hố sẽ bảo mật hơn vì khố private chỉ thuộc quyền sở hữu của mỗi
cá nhân khi phát sinh cặp khóa. Khố public có thể phân tán đến bất kỳ cá
nhân nào muốn gửi bản tin mã hoá đến người sở hữu khoá private.
Mã hoá bất đối xứng sử dụng hai khoá và độ phức tạp của q trình mã hố
sẽ làm cho tốc độ mã hoá chậm hơn. Một số nghiên cứu cho thấy q trình
mã hố đối xứng chạy nhanh hơn khoảng 100 lần so với q trình mã hố bất
đối xứng khi sử dụng phần mềm và khoảng 10000 lần khi sử dụng phần
cứng.
Khi dữ liệu được mã hoá với thuật toán bất đối xứng, cặp khóa được sử dụng
thuộc quyền sở hữu của bên nhận. Việc sử dụng cặp khó này đảm bảo bên
nhận mới có khả năng giải mã bản tin ciphertext với khố private.

Hình 2. 2 Q trình mã hố bất đối xứng
o Bên gửi phải có khố public của bên nhận. Có thể truy cập được khố
public thơng qua Active Directory.
o Chuỗi plaintext tham gia vào quá trình mã hoá với khoá public của
bên nhận. Thuật toán mã hoá sẽ tạo ra chuỗi ciphertext.

Chương 1

9

HVTH: KS. Phạm Xuân Khánh



Phân tích cơ chế bảo mật RSA đa số nguyên tố
và cài đặt thuật toán RSA CRT trên FPGA

THD: PGS-TS Lê Tiến Thường

o Chuỗi ciphertext sẽ được chuyển đến nơi nhận. Khơng cần có sự trao
đổi khố vì bên nhận đẫ có khố private để giải mã dữ liệu.
o Bên nhận sẽ giải mã bản tin ciphertext bằng khoá private của mình.
Thuật tốn mã hố bất đối xứng cũng được sử dụng để bảo vệ tính tồn vẹn
dữ liệu và chứng thực.

Hình 2. 3 Quá trình ký chữ ký số
o Dữ liệu plaintext được chuyển đến hàm mã hoá bất đối xứng sử dụng
khoá private của bên gửi. Kết quả của việc ký là chuỗi ciphertext.
o Chuỗi ciphertext được chuyển đến bên nhận.
o Bên nhận thu được chữ ký bên gửi. Khố public có thể được gửi kèm
theo ciphertext hoặc lấy từ Active Directory.
o Bên nhận sẽ giải mã ciphertext với khoá public của bên gửi, việc giải
mã này sẽ chứng minh được bên gửi là ai.
Một số thuật toán mã hoá bất đối xứng được sử dụng trong các ứng dụng PKI
là Diffie – Hellman, RSA, DSA.

2.4

Thuật toán RSA và thủ thuật tăng tốc bằng phương pháp CRT

Với sự tiên phong của Diffie và Hellman trong việc tìm kiếm một hướng hồn tồn
mới về giải thuật mã hố, rất nhiều nhà giải thuật tiến hành xây dựng các giải thuật


Chương 1

10

HVTH: KS. Phạm Xuân Khánh


Phân tích cơ chế bảo mật RSA đa số nguyên tố
và cài đặt thuật toán RSA CRT trên FPGA

THD: PGS-TS Lê Tiến Thường

cụ thể để có thể đáp ứng các u cầu của hệ thống mã hố khố cơng khai. Một
trong những thành tựu đầu tiên được phát triển vào năm 1977 bởi Ron Rivest, Adi
Shamir và Len Adleman tại trường MIT và được công bố vào năm 1978. Thuật toán
Rivest-Shamir-Adleman (RSA) đã được chứng minh và chấp nhận trong các ứng
dụng sử dụng hạ tầng khố cơng khai PKI (Public Key Infrastructure).
Thuật toán RSA là thuật toán mã hoá khối trong đó chuỗi plaintext và ciphertext là
các số nguyên nằm giữa 1 và n với n là một số ngun nào đó, với kích thước thơng
thường của n là 1024 bit hay là một số thập phân có 309 chữ số. Vì thế, n sẽ nhỏ
hơn 1024. Chúng ta sẽ kiểm tra chi tiết thuật toán RSA trong phần này bắt đầu
bằng việc mơ tả thuật tốn, thực hiện các tính tốn và phân tích cách cài đặt thuật
tốn.
2.4.1

Mơ tả giải thuật RSA

Thuật toán này được phát triển bởi Rivest, Shamir và Adleman sử dụng biểu thức có
số mũ. Plaintext được mã hố thành các khối, mỗi khối có giá trị nhị phân nhỏ hơn

n, vì thế kích thước mỗi khối sẽ nhỏ hơn hoặc bằng log2(n), trong thực tế, kích
thước mỗi khối là i bit, thì 2i-1với khối plaintext là M và khối ciphertext là C.
C=Me mod n
M=Cd mod n = (Me)d mod n = Med mod n
Cả hai bên gửi và nhận đều biết giá trị n. Ngoài ra bên gửi biết giá trị e, và chỉ bên
nhận biết giá trị d. Vì thế, đây là giải thuật mã hố khố cơng khai với khố public
là PU = {e, n} và khoá private PR = {d, n}. Để giải thuật này thoả mãn các điều
kiện của hệ thống mã hố khố cơng khai, thì có các u cầu sau:
• Có thể tìm được các giá trị e, d, n sao cho Med mod n = M với mọi giá trị M
< n.
• Dễ dàng phân tích được mối liên quan giữa Me mod n và Cd mod n.
• Khơng thể xác định được giá trị d từ các giá trị e và n.
Bây giờ chúng ta phân tích điều kiện thứ nhất. Chúng ta cần tìm được liên hệ của
biểu thức sau.
Med mod n = M

Chương 1

11

HVTH: KS. Phạm Xuân Khánh


Phân tích cơ chế bảo mật RSA đa số nguyên tố
và cài đặt thuật toán RSA CRT trên FPGA

THD: PGS-TS Lê Tiến Thường

Biểu thức trên có thể thoả mãn nếu e và d là các hệ số nhân modulo ngược của

ф(n),với ф(n) là hệ số Euler. Với p, q là hai số nguyên tố, thì ф(n)=(p-1)(q-1). Mỗi
liên hệ giữa e và d có thể được diễn đạt như sau.
ed mod ф(n) = 1
Biểu thức này có thể hồn tồn tương đương với các biểu thức sau.
ed ≡ 1 mod ф(n)
d ≡ e-1 mod ф(n)
Chú ý theo định luật về modulo thì hồn tồn đúng khi phát biểu d (và vì thế cả e)
có quan hệ nguyên tố với hệ số ф(n). Điều này hoàn toàn tương đương với
gcd(ф(n), d) = 1.
Bây giờ chúng ta phân tích sâu hơn về thuật tốn RSA. Các thành phần như sau:
• Hai số ngun tố p và q

(bảo mật và được lựa chọn)

• n = pq

(cơng khai và được tính tốn)

• e với đk gcd(ф(n), e) = 1; 1
(cơng khai và được lựa chọn)

• d ≡ e-1 mod ф(n)

(bảo mật và được tính tốn)

Khố private bao gồm {d, n} và khoá public bao gồm {e, n}. Giả sử client muốn
cơng bố khố public của mình và client B muốn gửi một tin nhắn M đến client A.
Thì client B sẽ tính tốn C = Me mod n và truyền đi chuỗi dữ liệu C. Khi nhận chuỗi
dữ liệu ciphertext C, client A giải mã bản tin C bằng cách tính tốn M = Cd mod n.

Hình 1.4 sẽ tóm tắt thuật tốn RSA.

Chương 1

12

HVTH: KS. Phạm Xuân Khánh


Phân tích cơ chế bảo mật RSA đa số nguyên tố
và cài đặt thuật toán RSA CRT trên FPGA

THD: PGS-TS Lê Tiến Thường

Hình 2. 4 Thuật tốn RSA
2.4.2

Thủ thuật tăng tốc cơ chế RSA bằng phương pháp CRT

Trong quá trình giải mã hoặc ký, với dữ liệu là C thì phải tính tốn như sau:
M = Cd mod n
Q trinh này có thể được đẩy nhanh hơn bằng giải thuật CRT bởi client biết hệ số
n = p.q. Phương pháp được đề nghị bởi Quisquater và Couvreur, và dựa trên giải
thuật CRT và một số lý thuyết về số học chẳng hạn như số nhị phân. Với pi, i =
1,2,...,k nguyên tố tương quan với nhau:
gcd(pi, pj) = 1 với i ≠ j
Với ui Є [0,pi-1]i = 1,2,...,k lý thuyết CRT phát biểu rằng chỉ tồn tại một số nguyên
duy nhất u trong giới hạn [0,P-1] với P = p1p2...pk để cho:

Chương 1


13

HVTH: KS. Phạm Xuân Khánh


Phân tích cơ chế bảo mật RSA đa số nguyên tố
và cài đặt thuật toán RSA CRT trên FPGA

THD: PGS-TS Lê Tiến Thường

u = ui mod pi
Lý thuyết có tính toán sau:
M = Cd mod (p.q)
thành hai thành phần như sau:
M1 = Cd mod (p)
M2 = Cd mod (q)
Sau đó giá trị M được tính theo giải thuật CRT. Có hai phương pháp để tính tốn,
phương pháp đầu tiên là giải thuật SRC và giải thuật MRC. Trở lại với ví dụ chung,
chúng ta sẽ quan sát giải thuật SRC hoặc MRC tính tốn giá trị u với các giá trị
u1u2... uk và p1p2...pk. Giải thuật SRC sẽ tính tốn giá trị u như sau:
k

u = ∑ u i ci Pi (mod P )
i =1

với
Pi = p1 p 2 ... pi −1 p i +1 ... p k =

P

pi

và ci có cơng thức như sau:
ci Pi = 1(mod pi )

Vì thế, áp dụng giải thuật SRC vào giải mã RSA, đầu tiên ta tính tốn:
M 1 = C d (mod p)
M 2 = C d (mod q )

Tuy nhiên, áp dụng lý thuyết Fermat với các phép mũ, chúng ta chỉ cần tính tốn:
M 1 = C d1 (mod p )
M 2 = C d 2 (mod q)

với
d1 = d mod( p − 1)
d 2 = d mod(q − 1)

Chương 1

14

HVTH: KS. Phạm Xuân Khánh


Phân tích cơ chế bảo mật RSA đa số nguyên tố
và cài đặt thuật toán RSA CRT trên FPGA

THD: PGS-TS Lê Tiến Thường

Giải pháp trên sẽ tiết kiệm được khá nhiều thời gian tính tốn vì d1, d2 < d, và thực

tế kích thước của d1d2 chỉ bằng nữa kích thước của d. Tiếp tục giải thuật SRC,
chúng ta sẽ tính tốn M bằng tổng:
M = M 1c1

pq
pq
+ M 2 c2
(mod n) = M 1c1 q + M 2 c 2 p(mod n)
p
q

−1
−1
với c1 = q (mod p) và c 2 = p (mod q) . Và ta có:

M = M 1 (q −1 mod p )q + M 2 ( p −1 mod q) p(mod n)

Để chứng minh công thức trên, đơn giản như sau:
M (mod p ) = M q .1 + 0 = M 1

M (mod q) = 0 + M 2 .1 = M 2

Giải thuật MRC, theo một cách khác, tính tốn kết quả cuối cùng u bằng bảng tam
giác giá trị sau:
u11
u21

u22

u31


u32

u31

u41

u42

u43

u44

uk1

uk2

uk3

....

ukk

đầu tiên tính toán cột đầu tiên với các giá trị ui1 từ các giá trị cho trước ui, với ui1=ui.
Giá trị của các cột cịn lại cũng được tính tốn tuần tự bằng cách sử dụng giá trị cột
phía trước theo phương pháp hồi quy như sau:
ui,j+1=(uịj - ujj)cji(mod pi)
với giá trị cji như sau:
cjipj=1(mod pi)
Ví dụ, u32 được tính tốn như sau:

u32 = (u31-u11)mod p3
Cuối cùng, giá trị giá trị u được tính tốn theo tổng sau:

Chương 1

15

HVTH: KS. Phạm Xn Khánh


Phân tích cơ chế bảo mật RSA đa số nguyên tố
và cài đặt thuật toán RSA CRT trên FPGA

THD: PGS-TS Lê Tiến Thường

u = u11+u22p1+u33p1p2+...ukkp1p2...pk-1
Áp dụng giải thuật MRC để tính tốn giải mã MRC, đầu tiên ta tính tốn:
M 1 = C d1 (mod p )
M 2 = C d 2 (mod q)

với các giá trị d1d2 đã được tính tốn ở trên. Sử dụng bảng tam giác trong trường
hợp này rất nhỏ, chỉ gồm:
M11
M21

M22

với M11=M1, M21=M2 và
M22=(M21-M11)(p-1mod q) (mod q)
Vì thế, M được sử dụng như sau:

M = M1+[(M2-M1)(p-1mod q)mod q].p
Biểu thức trên đúng vì:
M(mod p) = M1+0=M1
M(mod q) = M1+(M2-M1).1=M2
Giải thuật MRC có nhiều thuận tiên hơn giải thuật SRC bởi hai lý do sau:
• Chỉ địi hỏi một tính tốn p-1mod q.
• Khơng địi hỏi phải cắt giảm giá trị modulo n.

Chương 1

16

HVTH: KS. Phạm Xuân Khánh


Phân tích cơ chế bảo mật RSA đa số nguyên tố
và cài đặt thuật toán RSA CRT trên FPGA

THD: PGS-TS Lê Tiến Thường

CHƯƠNG 3: THỰC HIỆN THUẬT TOÁN RSA TRÊN
PHẦN CỨNG FPGA
3.1

Sơ đồ khối phần cứng cho thuật tốn RSA

Hình 3. 1 Mơ hình thực hiện phần cứng
Mục tiêu chính của chương này là thiết kế một hệ thống tổng thể (mã hoá/giải mã
và phát sinh khoá) về thuật toán RSA trên board XUP Virtex II Pro Development
System. Hệ thống sẽ nhận dữ liệu từ máy tính truyền xuống thơng qua cổng giao

tiếp nối tiếp RS-232, thực hiện quá trình phân loại và gửi kết quả về cũng thông qua
cổng RS-232.
Hệ thống được thiết kế dựa trên phương pháp top-down và được chia thành 6 khối
cơ bản. Tất cả các khối được thiết kế bằng ngôn ngữ VHDL và được kết nối thơng
qua chương trình Graphic Editor để tạo thành hệ thống hồn chỉnh.

Hình 3. 2 Sơ đồ khối của hệ thống

Chương 2

17

HVTH: KS. Phạm Xuân Khánh


×