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

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

43 35 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 43
Dung lượng 2,04 MB

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

Nội dung

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 toán RSA cho hệ thống bảo mật khoá công khai.. Để tăng tốc hệ thống bảo mật RSA, giải thuật RSA đa số nguyên

Trang 1

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

Trang 2

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)

Trang 3

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 toán RSA cho hệ thống bảo mật khoá công khai Thuật toán RSA bao gồm việc tính toán phép mũ modulo trên số nguyên 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 khoá 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 khoá RSA và mã hoá/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)

Trang 4

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 toán RSA -17

3.1.1 Mô hình tổng quát -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

Trang 5

3.3.3 Khối mã hoá RSA -26

3.3.4 Khối giải mã RSA thông thường -26

3.3.5 Khối giải mã RSA CRT -27

3.4 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

Trang 6

DANH SÁCH CÁC HÌNH

Hình 2 1 Quá trình mã hoá đối xứng 8

Hình 2 2 Quá trình mã hoá bất đối xứng 9

Hình 2 3 Quá trình ký chữ ký số 10

Hình 2 4 Thuật toá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 khoá RSA 25

Hình 3 7 Kết quả mô phỏng khối phát sinh khoá RSA CRT 25

Hình 3 8 Kết quả mô phỏng khối mã hoá 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 Quá trình phát sinh cặp khoá public/ private 29

Hình 3 13 Quá trình mã hoá RSA 30

Hình 3 14 Quá trình giải mã RSA CRT 31

Trang 7

CÁC TỪ VIẾT TẮT

ASIC Application Specific Integrated Circuit

ASSP Application Specific Standard Package

CCITT Comité Consultatif International

LDAP Lightweight Directory Access Protocol

Trang 8

LUT Look Up Table

RISC Reduced Instruction Set Computer

SATA Serial Advanced Technology Attachment

VHDL VHSIC Hardware Description Language

VHSIC Very High Speed Integrated Circuits

Trang 9

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 toán số lớn để cung cấp các dịch vụ bảo mật Thuật toán RSA hoàn toàn có thể được tính toá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 toá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 toá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 hoàn chỉnh cho việc cài đặt thuật toá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 toán phức tạp được tính toá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 toá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 hoàn toà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, ngoà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á khoá công khai Đây

là thuật toá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

Trang 10

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 toán tương tự Với khả năng tính toán tại thời điểm đó thì thuật toá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 toá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 toá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 toán học: bài toá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 toán trên là khó (không tìm được thuật toá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 toàn

Bài toán RSA là bài toá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 toá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 toá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 toá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 toá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ố nguyên 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ố chuyên 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,

Trang 11

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 toà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 toán Shor chỉ ra rằng: máy tính lượng tử (trên

lý thuyết) có thể giải bài toá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 quá 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 Ngoài ra, nếu p-1 hoặc q-1 có thừa số nguyên

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ự đoán được Đây là các yê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ự đoán được dù chỉ một phần thì an ninh của thuật toá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 đoá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

Trang 12

hợp xuất hiện số âm gây khó khăn cho việc tính toá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 toán RSA trong hạ tầng khoá 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 khoá 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 hoàn toà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ì quá 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 toá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 khoá công khai PKI

• Nghiên cứu sâu về giải thuật mã hoá RSA và giải mã RSA CRT

Trang 13

• 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ề quá 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 toà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 toán mã hoá 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 toà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 hoà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

Trang 14

1.6 Ý 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ã hoá khoá công khai, hạ tầng khoá 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ã hoá 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 khoá công khai PKI tại Việt Nam, trong đó thuật toá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ể hoá phần nào vào việc triển khai hạ tầng khoá 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

Trang 15

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ã hoá

• Mã hoá đối xứng: cặp khoá giống nhau được dùng cho quá trình mã

hoá/giải mã Khoá 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ã hoá bất đối xứng: cặp khoá có quan hệ toán học với nhau, bao gồm

khoá public và private, được sử dụng cho quá trình mã hoá/giải mã

o Nếu khoá public được sử dụng cho quá trình mã hoá thì khoá private được sử dụng cho quá trình giải mã

o Nếu khoá private được sử dụng cho quá trình mã hoá thì khoá public được sử dụng cho quá 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 toán

và khóa

• Thuật toán: thuật toá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

toá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 quá trình mã hoá, các ứng dụng PKI phải làm các việc sau:

• Xác định thuật toá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ã hoá phù hợp nhất

Trang 16

• Phát sinh khoá để 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 quá trình mã hoá/giải mã Khi khoá đượ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 khoá đóng vai trò rất quan trọng

2.3 Mã hoá dữ liệu

Quá trình mã hóa chống lại sự can thiệp của những yếu tố bên ngoài Phần này mô

tả cách hoạt động của quá trình mã hoá đố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 quá trình mã hoá/giải mã Các thuật toán kết hợp với quá trình mã hoá đối xứng có thể mã hoá 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ã hoá bất đối xứng

Hình 2 1 Quá trình mã hoá đố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 khoá đố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ã hoá 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ã hoá bất đối xứng:

Trang 17

Mã hoá bất đối xứng tăng độ bảo mật bởi việc sử dụng hai khoá riêng biệt nhưng có quan hệ toán học với nhau được gọi là khoá public và private Quá trình mã hoá sẽ bảo mật hơn vì khoá private chỉ thuộc quyền sở hữu của mỗi

cá nhân khi phát sinh cặp khóa Khoá 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 quá trình mã hoá

sẽ làm cho tốc độ mã hoá chậm hơn Một số nghiên cứu cho thấy quá trình

mã hoá đối xứng chạy nhanh hơn khoảng 100 lần so với quá trình mã hoá 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 khoá private

Hình 2 2 Quá trình mã hoá bất đối xứng

o Bên gửi phải có khoá public của bên nhận Có thể truy cập được khoá 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

Trang 18

o Chuỗi ciphertext sẽ được chuyển đến nơi nhận Không cần có sự trao đổi khoá vì bên nhận đẫ có khoá 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 toán mã hoá bất đối xứng cũng được sử dụng để bảo vệ tính toà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 Khoá 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 hoàn toàn mới về giải thuật mã hoá, rất nhiều nhà giải thuật tiến hành xây dựng các giải thuật

Trang 19

cụ thể để có thể đáp ứng các yêu cầu của hệ thống mã hoá khoá 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 khoá 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ố nguyên 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 toán, thực hiện các tính toán và phân tích cách cài đặt thuật toá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ã hoá thành các khối, mỗi khối có giá trị nhị phân nhỏ hơn

thước mỗi khối là i bit, thì 2 i-1 <n≤2 i Quá trình mã hoá và giải mã sẽ theo dạng sau,

với khối plaintext là M và khối ciphertext là C

C=M e mod n M=C d mod n = (M e ) d mod n = M ed 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ã hoá khoá công khai với khoá 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ã hoá khoá công khai, thì có các yêu cầu sau:

• Có thể tìm được các giá trị e, d, n sao cho M ed 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 M e mod n và C d 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

Trang 20

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ể hoàn toà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ì hoàn toà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 toán RSA Các thành phần như sau:

• Hai số nguyên tố p và q (bảo mật và được lựa chọn)

• n = pq (công khai và được tính toán)

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

• d ≡ e -1 mod ф(n) (bảo mật và được tính toán)

Khoá private bao gồm {d, n} và khoá public bao gồm {e, n} Giả sử client muốn công bố khoá 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 toán C = M e 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 toán M = C d mod n

Hình 1.4 sẽ tóm tắt thuật toán RSA

Trang 21

Hình 2 4 Thuật toá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 toán như sau:

M = C d mod n

Quá 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(p i , p j ) = 1 với i ≠ j

Với ui Є [0,p i-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 = p 1 p 2 p k để cho:

Ngày đăng: 04/04/2021, 00:41

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Sung-Ming Yen Seungjoo Kim Seongan Lim Sang-Jae Moon, “RSA Speedup with Chinese Remainder Theorem Immune against Hardware Fault Cryptanalysis”, IEEE Transactions on computers, vol.52, pp.461-472, Apr 2003 Sách, tạp chí
Tiêu đề: RSA Speedup with Chinese Remainder Theorem Immune against Hardware Fault Cryptanalysis
[2]. R. Rivest, A. Shamir, L. Adleman, “A method for obtaining digital signatures and public key cryptoystems”, Communications of the ACM , vol.21 , pp.120-126 , Feb 1978 Sách, tạp chí
Tiêu đề: A method for obtaining digital signatures and public key cryptoystems
[3]. “PKCS # 1 v2.1: RSA Encryption Standard” , RSA Laboratories , June 2002. ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-1/pkcs-1v2-1.pdf Sách, tạp chí
Tiêu đề: PKCS # 1 v2.1: RSA Encryption Standard
[6]. R.L. Rivest, A. Shamir, and L. Adleman, “A Method for Obtaining Digital Signatures and Public-Key Cryptosystems”, MIT Laboratory for Computer Science and Department of Mathematics Sách, tạp chí
Tiêu đề: A Method for Obtaining Digital Signatures and Public-Key Cryptosystems
[7]. A. Mazzeo, L. Romano, “FPGA-based Implementation of a serial RSA processor”, G. P. Saggese - Universita’ degli Studi di Napoli “Federico II”, N.Mazzocca - Seconda Universita’ degli Studi di Napoli Sách, tạp chí
Tiêu đề: FPGA-based Implementation of a serial RSA processor”, G. P. Saggese - Universita’ degli Studi di Napoli “Federico II
[8]. Cetin Kaya Koc, “High Speed RSA Implement”, RSA Laboratories, RSA Data Security, Inc Sách, tạp chí
Tiêu đề: High Speed RSA Implement
[9]. Mathieu Ciet, Michael Neve, Eric Peeters &amp; Jean-Jacques Quisquater, “Parallel FPGA Implementation of RSA with Residue Number Systems” Sách, tạp chí
Tiêu đề: Parallel FPGA Implementation of RSA with Residue Number Systems
[10]. William Stallings, “Cryptography and Network Security Principles and Practices, Fourth Edition”, Prentice Hall, November 16, 2005 Sách, tạp chí
Tiêu đề: Cryptography and Network Security Principles and Practices, Fourth Edition
[12]. Boneh, D. "Twenty Years of Attacks on the RSA Cryptosystem." Notices of the American Mathematical Society, February 1999 Sách, tạp chí
Tiêu đề: Twenty Years of Attacks on the RSA Cryptosystem
[13]. Boneh, D., and Shacham, H. "Fast Variants of RSA." CryptoBytes, Winter/Spring 2002. http://www.rsasecurity.com/rsalabs Sách, tạp chí
Tiêu đề: Fast Variants of RSA
[14]. Denning, D. "Protecting Public Keys and Signature Keys." Computer, February 1983 Sách, tạp chí
Tiêu đề: Protecting Public Keys and Signature Keys
[15]. Diffie, W. "The First Ten Years of Public-Key Cryptography." Proceedings of the IEEE, May 1988. Reprinted in [SIMM92] Sách, tạp chí
Tiêu đề: The First Ten Years of Public-Key Cryptography
[16]. ElGamal, T. "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms." IEEE Transactions on Information Theory, July 1985 Sách, tạp chí
Tiêu đề: A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms
[17]. Ford, W. "Advances in Public-Key Certificate Standards." ACM SIGSAC Review, July 1995 Sách, tạp chí
Tiêu đề: Advances in Public-Key Certificate Standards
[18]. Hellman, M. "An Overview of Public Key Cryptography." IEEE Communications Magazine, November 1978 Sách, tạp chí
Tiêu đề: An Overview of Public Key Cryptography
[19]. Kaliski, B., and Robshaw, M. "The Secure Use of RSA." CryptoBytes, Autumn 1995 Sách, tạp chí
Tiêu đề: The Secure Use of RSA
[20]. Mitchell, C.; Piper, F.; and Wild, P. "Digital Signatures." In [SIMM92] Sách, tạp chí
Tiêu đề: Digital Signatures
[21]. Nechvatal, J. "Public Key Cryptography." In [SIMM92] Sách, tạp chí
Tiêu đề: Public Key Cryptography
[22]. Perlman, R. "An Overview of PKI Trust Models." IEEE Network, November/December 1999 Sách, tạp chí
Tiêu đề: An Overview of PKI Trust Models
[23]. Pointcheval, D. "How to Encrypt Properly with RSA." CryptoBytes, Winter/Spring 2002.http://www.rsasecurity.com/rsalabs Sách, tạp chí
Tiêu đề: How to Encrypt Properly with RSA

TỪ KHÓA LIÊN QUAN

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