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

Luận án tiến sĩ toán học nghiên cứu, phát triển một số thuật toán sinh khóa RSA chứa backdoor

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.3 MB, 126 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO

BỘ QUỐC PHÒNG

VIỆN KHOA HỌC VÀ CÔNG NGHỆ QUÂN SỰ
-------------------------------

LÊ QUANG HUY

NGHIÊN CỨU, PHÁT TRIỂN MỘT SỐ
THUẬT TOÁN SINH KHÓA RSA CHỨA BACKDOOR

LUẬN ÁN TIẾN SĨ TOÁN HỌC

HÀ NỘI – 2018


BỘ GIÁO DỤC VÀ ĐÀO TẠO

BỘ QUỐC PHÒNG

VIỆN KHOA HỌC VÀ CÔNG NGHỆ QUÂN SỰ
-------------------------------

LÊ QUANG HUY

NGHIÊN CỨU, PHÁT TRIỂN MỘT SỐ
THUẬT TOÁN SINH KHÓA RSA CHỨA BACKDOOR
Chuyên ngành: Cơ sở toán học cho tin học
Mã số: 9 46 01 10


LUẬN ÁN TIẾN SĨ TOÁN HỌC

NGƯỜI HƯỚNG DẪN KHOA HỌC:
1. PGS.TS BẠCH NHẬT HỒNG
2. TS TRẦN DUY LAI

HÀ NỘI – 2018


i

LỜI CAM ĐOAN

Tôi xin cam đoan, đây là công trình nghiên cứu của riêng tôi. Các nội
dung, số liệu, kết quả trình bày trong Luận án là hoàn toàn trung thực và chưa
từng được ai công bố trong bất cứ công trình nào khác, các dữ liệu tham khảo
được trích dẫn đầy đủ.

Người cam đoan

Lê Quang Huy


ii

MỤC LỤC

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT .................................. iv
DANH MỤC CÁC BẢNG............................................................................... vi
DANH MỤC CÁC HÌNH VẼ ........................................................................ vii

DANH MỤC CÁC THUẬT TOÁN .............................................................. viii
MỞ ĐẦU ........................................................................................................... 1
1. Tính cấp thiết ...................................................................................... 1
2. Mục đích, nhiệm vụ nghiên cứu ......................................................... 3
3. Đối tượng, phạm vi nghiên cứu .......................................................... 4
4. Cơ sở lý luận, thực tiễn và phương pháp nghiên cứu ......................... 4
5. Bố cục của Luận án ............................................................................. 5
CHƯƠNG 1. CƠ SỞ VỀ BACKDOOR TRONG SINH KHÓA ..................... 7
1.1. Giới thiệu về backdoor mật mã ........................................................ 7
1.2. Cơ sở về backdoor trong sinh cặp khóa ......................................... 12
1.3. Phương pháp phân tích nhân tử của Coppersmith ......................... 25
1.4. Một số kết quả về hệ mật RSA ...................................................... 31
1.5. Một số kết quả nghiên cứu backdoor trong sinh khóa RSA .......... 35
1.6. Những vấ n đề luâ ̣n án cầ n tâ ̣p trung nghiên cứu giải quyế t .......... 41
1.7. Kết luận chương 1 .......................................................................... 42
CHƯƠNG 2. ĐỀ XUẤT THUẬT TOÁN BACKDOOR BD1, BD2 ............ 43
2.1. Cơ sở cài và đánh giá backdoor ..................................................... 43
2.2. Đề xuất thuật toán backdoor BD1 ................................................. 49
2.3. Đề xuất thuật toán backdoor BD2 ................................................. 60
2.4. Thử nghiệm các thuật toán backdoor BD1, BD2 .......................... 71
2.5. Ứng dụng backdoor BD1, BD2 ..................................................... 78
2.6. Kết luận chương 2 .......................................................................... 80


iii

CHƯƠNG 3. ĐỀ XUẤT THUẬT TOÁN BACKDOOR BD3 ...................... 81
3.1. Thuật toán sinh khóa trung thực tuân thủ điều kiện “P2” ............. 81
3.2. Đề xuất thuật toán backdoor BD3 ................................................. 86
3.3. Thử nghiệm thuật toán backdoor BD3 .......................................... 98

3.4. Ứng dụng backdoor BD3 ............................................................. 102
3.5. Đánh giá các thuật toán backdoor đề xuất ................................... 102
3.6. Kết luận chương 3 ........................................................................ 105
KẾT LUẬN ................................................................................................... 106
A. Kết quả đạt được của Luận án ....................................................... 106
B. Những đóng góp mới của Luận án ................................................. 106
C. Hướng nghiên cứu tiếp theo ........................................................... 107
CÁC CÔNG TRÌNH KHOA HỌC ĐÃ CÔNG BỐ ..................................... 108
TÀI LIỆU THAM KHẢO ............................................................................. 109


iv

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
DG1

Khoảng cách thống kê giữa thống kê khóa công khai của
G1 và thống kê khóa công khai của G0

E

Hàm mã mật hóa thông tin backdoor

G0

Thuật toán sinh khóa trung thực

G1

Thuật toán sinh khóa chứa backdoor


I

Hàm trích thông tin từ khóa riêng

kpriv

Khóa riêng

kpub

Khóa công khai

𝐺

Khóa riêng của thuật toán sinh khóa trung thực

0
𝑘𝑝𝑢𝑏

𝐺

Khóa công khai của thuật toán sinh khóa trung thực

𝐺

Khóa riêng của thuật toán sinh khóa chứa backdoor

1
𝑘𝑝𝑢𝑏


𝐺

Khóa công khai của thuật toán sinh khóa chứa backdoor

nlen

Độ dài theo bit của số modulus n

NG1()

Số lượng khóa (lực lượng khóa) của thuật toán G1

M

Hàm nhúng thông tin backdoor vào trong khóa công khai

p⌉k

k bit cao của p

RG1 ()

Tỷ lệ lực lượng khóa giữa thuật toán G1 và thuật toán G0

T(G0)

Độ phức tạp của thuật toán G0

t(n)


Độ phức tạp của hàm tính n

‖𝑓‖2

Chuẩn Euclide của đa thức f

#{p}

Lực lượng tập các phần tử p

0
𝑘𝑝𝑟𝑖𝑣

1
𝑘𝑝𝑟𝑖𝑣


v

AES

Chuẩn mã mật tiên tiến (Advanced
Standard)

API

Giao diện lập trình ứng dụng (Application
Programming Interface)


CRT

Định lý phần dư Trung Hoa Chinese Remainder
Theorem

Encryption

Dual_EC_DRBG Bộ tạo bit ngẫu nhiên xác định dựa trên đường cong
Elip kép (Dual Elliptic Curve Deterministic Random
Bit Generator)
ECIES

Lược đồ mã mật tích hợp đường cong Elip (Elliptic
Curve Integrated Encryption Scheme)

ECDH

Trao đổi khóa Diffie-Hellman dựa trên đường cong
Elip (Elliptic Curve Diffie-Hellman)

FIPS

Chuẩn xử lý thông tin liên bang (Federal Information
Processing Standard)

HSM

Module an toàn phần cứng (Hardware Security
Module)


LCM

Bội số chung nhỏ nhất (Least Common Multiple)

LLL

Lenstra, Lenstra, Lovasz (Tên người)

NM

Bộ nhớ không mất dữ liệu (Non-volatile Memory)

PAP

Sự riêng tư lớn hay (Pretty Awful Privacy)

PKCS

Chuẩn mật mã khóa công khai (Public Key
Cryptography Standards)

PKI

Hạ tầng mật mã khóa công khai (Public Key
Infrastructure)

RSA

Rivest - Shamir - Adleman (tên người)


SETUP

(Bẫy được nhúng bí mật với bảo vệ toàn cục) Secretly
Embedded Trapdoor with Universal Protection

SSH

Vỏ an toàn (Secure Shell)

SSL

Lớp ổ cắm an toàn (Secure Sockets Layer)

TLS

An toàn lớp giao vận (Transport Layer Security)

VM

Bộ nhớ mất dữ liệu khi mất điện (Volatile Memory)


vi

DANH MỤC CÁC BẢNG

Bảng 1.1. Tổng hợp các tiêu chí đánh giá thuật toán sinh khóa chứa backdoor
......................................................................................................... 25
Bảng 1.2. So sánh chiều dài khóa của các hệ mật............................................... 31
Bảng 1.3. Chiều dài tối thiểu và tối đa của các số nguyên tố phụ ...................... 33

Bảng 1.4. Các phương thức sinh số nguyên tố được phép .................................. 33
Bảng 2.1. Các điểm khác biệt giữa thuật toán BD1 với thuật toán PAP và PHP 58
Bảng 2.2. Các điểm khác biệt giữa thuật toán BD2 với Hidden Prime Factor ... 69
Bảng 2.3. Kịch bản thử nghiệm các thuật toán backdoor BD1, BD2 ................. 73
Bảng 2.4. Kết quả thử nghiệm độ phức tạp thuật toán backdoor BD1 ............... 75
Bảng 2.5. Kết quả thử nghiệm độ phức tạp thuật toán backdoor BD2 ............... 76
Bảng 3.1. Kịch bản thử nghiệm thuật toán backdoor BD3 ................................. 97
Bảng 3.2. Kết quả thử nghiệm độ phức tạp thuật toán backdoor BD3 ............... 98
Bảng 3.3. Các điểm khác nhau giữa 03 thuật toán backdoor đề xuất ............... 101


vii

DANH MỤC CÁC HÌNH VẼ

Hình 1.1. Quá trình phát triển của backdoor mật mã .......................................... 9
Hình 1.2. Mô hình phân tích backdoor ............................................................. 14
Hình 2.1. Sơ đồ khối thuật toán sinh khóa trung thực tuân thủ điều kiện ........ 44
Hình 2.2. Sơ đồ khối thuật toán sinh khóa trung thực tuân thủ điều kiện “P1” 46
Hình 2.3. Sơ đồ khối phần thuật toán sinh khóa của backdoor BD1 ................ 51
Hình 2.4. Sơ đồ khối phần thuật toán khôi phục khóa của backdoor BD1....... 53
Hình 2.5. Sơ đồ khối phần thuật toán sinh khóa của backdoor BD2 ................ 63
Hình 2.6. Sơ đồ khối phần thuật toán khôi phục khóa của backdoor BD2 ....... 65
Hình 2.7. Thiết bị T-Token ............................................................................... 71
Hình 2.8. Biểu đồ kết quả thử nghiệm độ phức tạp thuật toán backdoor BD1. 75
Hình 2.9. Biểu đồ kết quả thử nghiệm độ phức tạp thuật toán backdoor BD2. 76
Hình 3.1. Sơ đồ khối thuật toán sinh khóa trung thực tuân thủ điều kiện “P2” 83
Hình 3.2. Sơ đồ khối phần thuật toán sinh khóa của backdoor BD3 ................ 90
Hình 3.3. Sơ đồ khối phần thuật toán khôi phục khóa của backdoor BD3....... 92
Hình 3.4. Biểu đồ kết quả thử nghiệm độ phức tạp thuật toán backdoor BD3

....................................................................................................... 102


viii

DANH MỤC CÁC THUẬT TOÁN

Thuật toán 2.1. Thuật toán sinh khóa RSA tuân thủ điều kiện “P1”……….. 47
Thuật toán 2.2. Phần thuật toán sinh khóa của backdoor BD1 ....................... 53
Thuật toán 2.3. Phần thuật toán khôi phục khóa của backdoor BD1.............. 54
Thuật toán 2.4. Phần thuật toán sinh khóa của backdoor BD2 ....................... 64
Thuật toán 2.5. Phần thuật toán khôi phục khóa của backdoor BD2.............. 65
Thuật toán 3.1. Thuật toán sinh khóa RSA tuân thủ điều kiện “P2”…………82
Thuật toán 3.2. Phần thuật toán sinh khóa của backdoor BD3 ....................... 90
Thuật toán 3.3. Phần thuật toán khôi phục khóa của backdoor BD3.............. 91


1

MỞ ĐẦU
1. Tính cấp thiết
Mạng Internet ra đời và phát triển đã đẩy mạnh việc tạo, lưu trữ, truyền
và trao đổi thông tin (gọi chung là các giao dịch điện tử). Sự phát triển của các
giao dịch điện tử cũng kéo theo các vấn đề gây mất an toàn thông tin. Giải pháp
tốt nhất được ứng dụng trong giai đoạn hiện nay là sử dụng mật mã, mật mã
khóa công khai (PKI) để đảm bảo an toàn cho các giao dịch điện tử. Tuy nhiên
khi ứng dụng mật mã, mật mã khóa công khai để đảm bảo an toàn cho các giao
dịch điện tử (thông qua hạ tầng PKI [16]) thì xuất hiện các sự kiện sử dụng mật
mã để thực hiện các hành vi trái pháp luật, tội phạm [25]. Các hoạt động tội
phạm trực tiếp có sử dụng mật mã gồm: tạo virus, mã độc tấn công các hệ thống

thông tin lớn như: các hệ thống điều khiển nhà máy điện hạt nhân, hệ thống vệ
tinh, hệ thống vũ khí quân sự, hệ thống truyền tải điện, hệ thống viễn thông,
Internet quốc gia, hệ thống điều khiển không lưu, điều khiển giao thông công
cộng. Các hoạt động tội phạm gián tiếp: giữ bí mật cho việc trao đổi thông tin
phục vụ các hoạt động: khủng bố [25], chế tạo vật liệu nổ, tống tiền [30], buôn
bán vũ khí, ma túy, giết người…[7]). Từ các sự kiện nêu trên nảy sinh nhu cầu
cần có biện pháp để từ bản mã, khôi phục, giải mã lấy được bản rõ (phá vỡ tính
bảo mật trong điều kiện không có khóa) để đảm bảo an ninh cho cộng đồng.
Nhu cầu đảm bảo an ninh cho cộng đồng nêu trên là chính đáng và được pháp
luật bảo vệ, cho phép thực hiện.
Hiện tại có 03 cách phổ biến nhất để phá vỡ được tính bảo mật (lấy được
bản rõ từ bản mã):
1. Lấy khóa mã thông qua con người: ăn cắp/mua chuộc/hối lộ…
2. Khai thác các lỗ hổng có sẵn trên các sản phẩm mật mã do vô ý tạo ra
(sử dụng khóa dễ đoán, gửi khóa cùng với bản mã) hoặc do cố ý tạo ra (nhà sản


2
xuất chủ động cài đặt backdoor).
3. Thám mã (phá vỡ hệ mật bằng các phương pháp toán học).
Ưu, nhược điểm của các phương pháp phá vỡ tính bảo mật:
- Phương pháp lấy khóa mã thông qua con người hoặc khai thác các lỗ
hổng sẵn có trên sản phẩm mật mã do vô ý tạo ra chỉ thực hiện được với một
số trường hợp xác định và mang tính ngẫu nhiên.
- Phương pháp thám mã đã đạt được những kết quả nhất định. Tuy nhiên
với sự phát triển của các hệ mật mã hiện đại được cài đặt theo các chuẩn xác
định thì việc thám mã để khôi phục lại bản rõ trở nên ngày càng khó và không
khả thi cả về chi phí, công sức và thời gian (vì vậy các hệ mật an toàn mới được
sử dụng rộng rãi như hiện nay).
- Phương pháp sử dụng backdoor có nhược điểm làm giảm không gian

khóa nhưng có ưu điểm khôi phục lại bản mã nhanh, tất định, chi phí triển khai
thấp, khó bị phát hiện khi cài đặt trong những sản phẩm mật mã dạng hộp đen.
Trong những năm gần đây, đã phát hiện được một số doanh nghiệp, cơ
quan chính phủ cài backdoor vào trong các sản phẩm mật mã [50], [52] và vào
trong các chuẩn về mật mã [21]. Bên cạnh đó nhiều nghiên cứu về backdoor
mật mã đã được công bố. Các nghiên cứu về backdoor mật mã trải rộng từ các
hệ mật (mục 1.1.2.2), giao thức mật mã [22], [39], đến bộ sinh số giả ngẫu
nhiên [21]. Đối với backdoor trong các hệ mật bất đối xứng, các nghiên cứu tập
trung nhiều vào hệ mật RSA (mục 1.5). Ngoài ra một số công trình nghiên cứu
về backdoor cũng được thực hiện trên các hệ mật bất đối xứng khác như
Elgamal [60], [61], EC [64]. Đến nay, các nghiên cứu về backdoor mật mã đã
công bố (mục 1.5) hoặc đã bị phát hiện với số lượng ít và chất lượng còn cần
nhiều nỗ lực cải tiến hơn nữa (mục 1.5.4).
Như vậy khi sử dụng mật mã luôn có hai nhu cầu đồng thời tồn tại: thứ


3
nhất là nhu cầu bảo vệ thông tin bằng các hệ mật mã; thứ hai là nhu cầu phá vỡ
tính bảo mật, (khôi phục lại bản rõ từ bản mã của người dùng), để đảm bảo an
ninh cho cộng đồng. Vì vậy bên cạnh hướng tăng cường độ an toàn cho các
giao dịch điện tử thông qua việc đảm bảo an toàn cho thuật toán mật mã, việc
cài đặt hệ mật, thông tin kênh bên, các hệ thống thông tin sử dụng mật mã (hạ
tầng PKI) cũng cần được đảm bảo an ninh, an toàn, chống lại việc sử dụng mật
mã, sử dụng PKI để thực hiện các hành vi, hành động tội phạm.
Mật mã dùng để bảo vệ thông tin càng được sử dụng rộng rãi thì nhu cầu
đảm bảo an ninh khi sử dụng mật mã ngày càng tăng. Hiện tại việc sử dụng các
sản phẩm mật mã (dạng hộp đen) để đảm bảo an toàn cho các giao dịch điện tử
trên thế giới và ở Việt Nam diễn ra ngày càng nhiều, kéo theo nhu cầu đảm bảo
an ninh cho cộng đồng khi sử dụng mật mã diễn ra ngày càng cấp thiết.
Từ thực tế ứng dụng, nhu cầu và hiện trạng nghiên cứu, triển khai

backdoor mật mã như trên, NCS lựa chọn đề tài “Nghiên cứu, phát triển một số
thuật toán sinh khóa RSA chứa backdoor” nhằm nghiên cứu vấn đề đảm bảo an
ninh cho việc ứng dụng mật mã khóa công khai (PKI), chống lại việc sử dụng
hệ thống PKI để thực hiện các hành vi, hành động tội phạm. Cụ thể, Luận án
tập trung nghiên cứu một vấn đề hẹp của hệ mật RSA được sử dụng phổ biến
trong PKI là thuật toán sinh khóa trên hệ mật RSA có chứa backdoor, ứng dụng
để đảm bảo an ninh cho các hạ tầng PKI có sử dụng hệ mật RSA.
2. Mục đích, nhiệm vụ nghiên cứu
2.1. Mục đích nghiên cứu
Nghiên cứu, tìm kiếm các thuật toán sinh khóa chứa backdoor hiệu quả
để có thể ứng dụng nhằm đảm bảo an ninh cho một hạ tầng PKI cụ thể.
2.2. Nhiệm vụ nghiên cứu
- Nghiên cứu các mô hình, công cụ hình thức hiệu quả để phân tích và


4
đánh giá backdoor.
- Tìm kiếm phương pháp tạo backdoor, phương pháp khôi phục khóa
riêng tất định từ khóa công khai chứa backdoor.
- Đề xuất một số thuật toán sinh khóa chứa backdoor tuân thủ chuẩn an
toàn xác định (ví dụ chuẩn FIPS 186-4 [27]).
- Cài đặt, thử nghiệm các thuật toán sinh khóa chứa backdoor trong các
module mật mã tạo khóa dạng hộp đen.
3. Đối tượng, phạm vi nghiên cứu
3.1. Đối tượng nghiên cứu
- Mô hình lý thuyết, công cụ hình thức, tiêu chí đánh giá các thuật toán
về backdoor trong các hệ mật.
- Phương pháp tạo (trích, nhúng thông tin) backdoor.
- Phương pháp khôi phục khóa riêng từ khóa công khai có chứa backdoor.
3.2. Phạm vi nghiên cứu

Đến nay hai hệ mật khóa công khai RSA và EC được đánh giá an toàn
nên được sử dụng rộng rãi. Do được nghiên cứu và công bố sớm hơn nên hiện
tại, hệ mật RSA được sử dụng phổ biến trong các sản phẩm mật mã. Để kết quả
nghiên cứu có thể ứng dụng ngay, trực tiếp vào thực tiễn, luận án giới hạn phạm
vi nghiên cứu: sinh khóa, khôi phục khóa chứa backdoor trên hệ mật RSA.
4. Cơ sở lý luận, thực tiễn và phương pháp nghiên cứu
4.1. Cơ sở lý luận
Để thực hiện được mục đích nghiên cứu, Luận án cần dựa trên cơ sở:
- Lý thuyết về backdoor trong các hệ mật: nhằm tập hợp các kiến thức
về phân tích và đánh giá backdoor mật mã.
- Hệ mật mã khóa công khai RSA: nhằm nghiên cứu các kiến thức tổng


5
quan về hệ mật, các tham số của hệ mật, các chuẩn có liên quan và thuật toán
sinh khóa của hệ mật.
- Phương pháp phân tích nhân tử: nhằm nghiên cứu các phương pháp tìm
nghiệm nguyên của phương trình đa thức modulo một biến phục vụ cho việc
phân tích nhân tử nguyên tố p, của số modulus RSA.
4.2. Thực tiễn
Nhu cầu của nhà cung cấp hạ tầng khóa công khai (PKI) tạo cặp khóa
mã cho người dùng để khi cần có thể cung cấp lại khóa riêng của người dùng
(cho người dùng khi bị mất khóa, cho cơ quan quản lý nhà nước khi được yêu
cầu) mà không phải duy trì CSDL khóa riêng tương ứng.
Nhu cầu của các cơ quan quản lý nhà nước (quốc phòng, an ninh) ứng
dụng cho module sinh khóa của người dùng (thiết bị phần cứng PKI-Token) để
có thể khôi phục lại các khóa dùng để mã (khôi phục bản rõ từ bản mã) khi có
yêu cầu nhằm đảm bảo an ninh cho cộng đồng.
Cung cấp cho người dùng những hiểu biết để phân tích, nhận biết và
phòng chống backdoor khi sử dụng những sản phẩm mật mã dạng hộp đen.

4.3. Phương pháp nghiên cứu
Phương pháp nghiên cứu: mô hình hóa, thực nghiệm.
5. Bố cục của Luận án
Bên cạnh các phần mở đầu, kết luận, các công trình khoa học đã công
bố, tài liệu tham khảo, trọng tâm của Luận án tập trung vào 03 chương:
Chương 1: Cơ sở về Backdoor trong sinh khóa
Chương này trình bày tổng quan các kiến thức cơ sở về Backdoor mật
mã; công cụ mô hình hóa, các tiêu chí phân tích, đánh giá backdoor của Arboit;
phương pháp phân tích nhân tử của Coppersmith; chuẩn FIPS 186-4 về hệ mật


6
RSA và một số kết quả nghiên cứu về backdoor trong sinh khóa RSA.
Chương 2: Đề xuất thuật toán backdoor BD1, BD2
Chương này trình bày đề xuất 02 thuật toán sinh khóa RSA chứa backdoor,
BD1, BD2, với các tham số tuân thủ điều kiện “P1” theo chuẩn FIPS 186-4.
Các thuật toán backdoor BD1, BD2 được phân tích, đánh giá chi tiết theo mô
hình hình thức của Arboit và được thử nghiệm trên thiết bị tự chế tạo T-Token
có các kết quả phù hợp với đánh giá.
Chương 3: Đề xuất thuật toán backdoor BD3
Chương này trình bày đề xuất về 01 thuật toán sinh khóa RSA chứa
backdoor, BD3, với các tham số tuân thủ điều kiện “P2” theo chuẩn FIPS 1864. Thuật toán backdoor BD3 được phân tích, đánh giá chi tiết theo mô hình hình
thức của Arboit và được thử nghiệm trên thiết bị tự chế tạo T-Token có các kết
quả phù hợp với đánh giá.


7

CHƯƠNG 1. CƠ SỞ VỀ BACKDOOR TRONG SINH KHÓA
Chương này trình bày cơ sở về backdoor trong sinh cặp khóa của hệ mật

khóa công khai. Ngoài phần trình bày tổng quan về backdoor mật mã, nội dung
của chương tập trung trình bày công cụ hình thức của Arboit để phân tích và
đánh giá backdoor, phương pháp phân tích nhân tử của Coppersmith để khôi
phục lại khóa riêng từ khóa công khai tương ứng, chuẩn FIPS 186-4 để áp dụng
cho các tham số (vào/ra) của thuật toán sinh khóa và một số kết quả nghiên cứu
về backdoor trong sinh khóa RSA. Dựa trên cơ sở về backdoor và các phân
tích, đánh giá về kết quả nghiên cứu backdoor của các tác giả đi trước, chương
1 nêu vấn đề cần nghiên cứu, giải quyết của luận án.
1.1. Giới thiệu về backdoor mật mã
1.1.1. Backdoor mật mã
1.1.1.1. Khái niệm Backdoor
Backdoor hay trapdoor, hiểu theo nghĩa chung nhất là “cửa hậu” hay lối
vào phía sau. Đối với một hệ thống máy tính backdoor [40] có thể là:
- Lối vào ẩn (bí mật) hoặc một cách vào hệ thống mà không phải thực
hiện các thủ tục xác thực, hay vượt qua các kỹ thuật bảo vệ thông
thường. Backdoor ở dạng này thường đóng vai trò là một công cụ quản trị.
- Là một (đoạn) chương trình độc hại được cài vào một hệ thống (đối
tượng bị nhiễm, mục tiêu) để có thể truy nhập được vào hệ thống đó về sau
nhằm thực hiện một hành động gây hại tới đối tượng bị nhiễm. Đặc trưng của
loại backdoor này là không để lại dấu vết và khó phát hiện.
Đối tượng của backdoor thường là một hệ thống máy tính, một hệ thống
mật mã, một thuật toán, một hệ thống được bảo vệ vv. Backdoor cho phép người
dùng (hoặc kẻ tấn công) truy cập tới đối tượng bị nhiễm cục bộ hoặc từ xa.


8
Backdoor có thể có dạng một phần ẩn của một chương trình, một chương trình
riêng biệt, hoặc có thể là một tính năng phần cứng. Thông thường, backdoor
được lén lút cài đặt, nhưng trong một số trường hợp việc cài đặt backdoor là có
chủ ý, được biết rộng rãi và có thể hợp pháp. Ví dụ nếu người dùng quên mật

khẩu, các nhà sản xuất phải có một cách giúp người dùng lấy lại mật khẩu.
1.1.1.2. Backdoor mật mã
Backdoor mật mã là một cơ chế thay đổi (làm yếu đi) thuật toán mật mã
xác định, cung cấp cho người tạo backdoor một cách để phá vỡ các bản mã
trong khoảng thời gian nhỏ hơn nhiều so với phương pháp thám mã tốt nhất
(mục abstract trong [17]). Trong ứng dụng thực tế, sự hiện diện (tồn tại) của
backdoor mật mã cho thấy các thông điệp dữ liệu đã mã mật (bản mã) dễ bị
thám mã (phá vỡ) hơn.
Đối tượng cụ thể của backdoor mật mã là các thuật toán, các giao thức
mật mã và các bộ sinh số giả ngẫu nhiên. Mật mã được sử dụng trong Backdoor
mật mã bao gồm hệ mật đối xứng và hệ mật bất đối xứng (mục 12.9 trong [62]).
Backdoor mật mã sau đây gọi tắt là backdoor và tùy theo hệ mật sử dụng nên
được gọi là backdoor đối xứng hoặc backdoor bất đối xứng. Với backdoor đối
xứng, người tìm thấy backdoor có thể sử dụng được nó. Backdoor bất đối xứng
thì chỉ được sử dụng bởi kẻ tấn công (người thiết kế backdoor) ngay cả khi toàn
bộ cài đặt của nó được công bố công khai. Backdoor có thể được cài đặt bằng
phần mềm hoặc phần cứng hoặc kết hợp cả hai.
1.1.1.3. Sự phát triển của backdoor mật mã
Backdoors mật mã là một trường hợp đặc biệt của kênh ngầm, được
nghiên cứu từ những năm 1980 bởi Gus Simmons. Năm 1984, Simmons [54],
đã giới thiệu khái niệm về kênh ngầm (vụng trộm), trong đó thông tin được trao
đổi bí mật trong các thông điệp dữ liệu thông thường. Năm 1988, Desmedt [23]
khái quát hóa về các kênh ngầm và gọi chúng là “lạm dụng” hệ mật, hay sử


9
dụng hệ mật theo cách mà nó không được chủ định. Ví dụ, khóa công khai RSA
có thể được sử dụng để lưu trữ thông tin mà người tạo ra nó muốn truyền tải tới
người khác.
Backdoor mật mã là một dạng đặc biệt của lạm dụng hệ mật, trong đó

khóa công khai được tạo ra có khả năng cung cấp cho người thiết kế backdoor
mật mã cách truy cập (tính toán) được khóa riêng tương ứng. Backdoor mật mã
được đặt vào trong khóa công khai và hình thành kênh truyền từ người thiết kế
(thông qua bộ tạo khóa) đến người dùng và quay trở lại người thiết kế. Đặc
điểm của kênh truyền này là không sử dụng bất kỳ giao thức bổ sung nào vì
khóa công khai được công bố rộng rãi trên kho (thư mục công cộng) chứa khóa.
Ở góc độ khác backdoor mật mã được xem là một loại tấn công gián tiếp đặc
biệt hay tấn công khóa yếu trong đó người thiết kế tạo ra các khóa chứa
backdoor ẩn. Nói chung, khóa yếu làm cho hệ mật hoạt động theo cách không
mong muốn, khóa yếu tạo thành điểm yếu của hệ mật [14]. Quá trình phát triển
của backdoor mật mã được minh họa tại hình 1.1.
Các backdoor chưa công bố

1983

1988

Simmons Desmedt

Các kênh ngầm
(Subliminal channels)

1993

1996 1997

2001

2003


2005

Anderson Young Young Howgrave- Crepeau& Young
&Yung &Yung Graham Slakmon &Yung

2016

Stefan

Wüller

backdoors

Đã bị phá vỡ
(broken)

Đối xứng
(symmetric)

Bất đối xứng
(asymmetric)

Hình 1.1. Quá trình phát triển của backdoor mật mã [4]
1.1.1.4. Đặc trưng chung của backdoor mật mã
Các backdoor mật mã có một số đặc trưng chung sau (mục general
conceps trong [17]):


10
- Không khác biệt đầu ra: khi so sánh đầu ra của hệ thống trung thực

(không chứa backdoor) với đầu ra của hệ thống chứa backdoor, thì không có sự
khác biệt nào. Nếu đầu ra có thể phân biệt được, thì có thể so sánh kết quả đầu
ra của hệ thống nghi ngờ với hệ thống trung thực để phát hiện ra sự tồn tại của
backdoor.
- Bí mật: nhìn chung backdoor không làm giảm sự an toàn của hệ mật.
Việc sử dụng backdoor chỉ dành riêng cho người tạo ra nó.
- Khả năng gây hại: backdoor cung cấp cách để người tạo ra backdoor có
thể gây hại tới hệ mật. Đây là mục đích chính của backdoor mật mã.
Bruce Schneier [13] mô tả ba tiêu chí bổ sung của backdoor mật mã:
- Khả năng bị phát hiện thấp: Backdoor càng ít (lý tưởng nhất là không)
gây ảnh hưởng đến hoạt động bình thường của hệ thống, thì càng tốt. Kích
thước backdoor càng nhỏ càng tốt, lý tưởng nhất là giống như các đoạn mã
thông thường.
- Khả năng chối bỏ cao: Nếu bị phát hiện, backdoor cần làm cho người
khác tin rằng đó là một sai lầm, một lỗi, một sự vô tình hay một tai nạn.
- Thông đồng tối thiểu: Càng nhiều người biết về backdoor, thì khả năng
giữ bí mật càng thấp. Vì vậy, backdoor càng được ít người biết càng tốt.
Nhìn chung một backdoor mật mã cần: thứ nhất cho phép kẻ tấn công
phá vỡ sự an toàn của bản mã, thứ hai nó phải tương đối dễ sử dụng, thứ ba nó
sẽ gây hại cho một số lượng lớn các bản mã.
1.1.2. Phạm vi sử dụng của backdoor mật mã
1.1.2.1. Backdoor trong các hệ mật, giao thức
Hiện nay nhiều công trình nghiên cứu về backdoor trong các hệ mật,
trong các giao thức mật mã và trong các bộ sinh số giả ngẫu nhiên đã được công


11
bố. Backdoor trong các hệ mật mã được nghiên cứu trên các hệ mật RSA [60],
[63], [64], Elgamal [60], [61], EC [64] và được cài đặt trên các thuật toán như
sinh khóa (key generation), mã mật (encryption), chữ ký số (digital signature),

trao đổi khóa (key exchange). Backdoor trong các giao thức mật mã được
nghiên cứu cho các giao thức SSL/TLS, SSH [22], biểu quyết điện tử (E-Vote
scheme) [39], lược đồ chia sẻ (Secret Sharing Schemes) [51] ... Backdoor trong
các bộ sinh số giả ngẫu nhiên đã được cài đặt như: Dual_EC_DRBG [21].
1.1.2.2. Backdoor trong các hệ mật
Mục tiêu của backdoor là gây hại tới bản mã (đánh cắp được thông tin bí
mật) của người dùng với số lượng lớn và ổn định trong một thời gian xác định.
Các thông tin bí mật này thường được mã mật bởi hệ mật đối xứng hoặc hệ mật
bất đối xứng. Đối với hệ mật đối xứng, thời gian sử dụng khóa của người dùng
thường là ngắn hay sử dụng tạm (khóa phiên) nên đối tượng của backdoor trong
hệ mật đối xứng thường tập trung thuật toán mã mật (encryption backdoor).
Đối với hệ mật bất đối xứng, thời gian sử dụng khóa của người dùng thường ổn
định và được duy trì trong một khoảng thời gian nhất định nên đối tượng của
backdoor trong hệ mật bất đối xứng thường tập trung vào khóa của người dùng,
cụ thể hơn là tập trung vào thuật toán sinh khóa (key generation backdoor).
Một lĩnh vực nghiên cứu về backdoor bất đối xứng được khởi xướng lần
đầu tiên năm 1996, bởi Adam Young và Moti Yung [59] gọi là Kleptography.
Kleptography là lĩnh vực nghiên cứu về backdoor bất đối xứng cho các hệ mật
và được xem là một kỹ thuật tấn công mật mã sử dụng các phương pháp mật
mã. Các tấn công kleptographic đã được thiết kế cho các thuật toán sinh khóa
RSA [59], [60], [61], [63], [64], trao đổi khóa Diffie-Hellman [59], thuật toán
ký số DSA [59], và cho các giao thức mật mã như SSL, SSH [22]. Một số biện
pháp, kỹ thuật phòng chống tấn công kleptographic được trình bày trong mục
Counter Measures [6], [17].


12
1.2. Cơ sở về backdoor trong sinh cặp khóa
Mô hình phân tích backdoor, định nghĩa backdoor an toàn và các tiêu chí
đánh giá thuật toán sinh khóa chứa backdoor được trích dẫn trong [4].

1.2.1. Vấn đề khi cung cấp, sử dụng sản phẩm mật mã hộp đen
Mật mã khóa công khai đang được ứng dụng rộng rãi, để đảm bảo an
toàn cho các giao dịch điện tử. Các sản phẩm ứng dụng mật mã xuất hiện ngày
càng nhiều theo hướng sản phẩm chuyên dụng và sản phẩm đa năng, dưới dạng
module phần mềm hoặc thiết bị phần cứng. Đặc trưng của các sản phẩm mật
mã này là được cung cấp dưới dạng hộp đen (nhà sản xuất công bố đặc tả sản
phẩm, khi sử dụng, người dùng chỉ truy nhập được đầu vào và đầu ra chứ không
nắm được chi tiết cấu trúc và hoạt động nội tại). Khi được cài đặt ở dạng hộp
đen, một hệ mật mã có thể được thiết kế để làm rò rỉ thông tin của người dùng,
để nhà sản xuất (người thiết kế) có thể tấn công người dùng bằng cách khôi
phục thông tin bí mật của người dùng từ đầu ra của hệ thống mật mã.
Tấn công backdoor trong sinh khóa: Người dùng cuối nhận được một
module mật mã hộp đen có dạng phần cứng hoặc phần mềm tạo ra cặp khóa
công khai và riêng của một hệ mật xác định. Module tạo khóa này có chứa
backdoor được thiết kế theo cách để người thiết kế có thể tính toán được khoá
riêng từ khoá công khai tương ứng. Những module sinh khóa như vậy được gọi
là bộ sinh khóa có chứa backdoor và nó tạo ra các khóa ẩn yếu.
Với lý do bảo vệ tài sản trí tuệ, các nhà sản xuất sản phẩm mật mã không
muốn công bố cấu trúc và hoạt động nội tại (thiết kế, mã nguồn) của sản phẩm
mật mã hộp đen. Do đó khi sử dụng một sản phẩm mật mã hộp đen, người dùng
có thể nghi ngờ và cần xác định xem các thuật toán bên trong các sản phẩm mật
mã dạng hộp đen (hệ mật mục tiêu) là trung thực hay có chứa backdoor? Vậy
khi cung cấp sản phẩm mật mã dạng hộp đen, nhà cung cấp (người thiết kế),


13
cần tạo ra sản phẩm mật mã chứa backdoor sao cho các tham số đầu vào, đầu
ra, các thông tin kênh bên càng gần với sản phẩm mật mã trung thực càng tốt.
1.2.2. Mô hình phân tích backdoor
Hệ mật hộp đen (mục tiêu) được cài đặt thuật toán sinh khóa chứa

backdoor khi được sử dụng có sự tham gia của 03 đối tượng (người): người
thiết kế, người dùng và kẻ tấn công. Hệ mật hộp đen được xem như là một tiên
tri vật lý, sao cho với mỗi yêu cầu ở đầu vào, nó sẽ tạo ra một cặp khóa ở đầu
ra; và với số lượng cặp khóa được tạo ra không bị giới hạn nên có thể phân tích
được các đặc trưng thống kê của các cặp khóa được tạo bởi hệ mật hộp đen.
Mục tiêu người dùng là xác định được tính đúng đắn của các thuật toán
được cài đặt bên trong hệ mật hộp đen (mục tiêu), hay liệu một hệ mật hộp đen
(mục tiêu) được cài đặt các thuật toán trung thực hay được cài đặt thuật toán
chứa backdoor? Người dùng hay người sử dụng hệ mật hộp đen có quyền yêu
cầu hệ mật hộp đen tạo ra các cặp khóa (đầu ra) bằng cách cung cấp các tham
số (đầu vào). Để giải quyết vấn đề xác định hệ mật trong hộp đen trung thực
hay chứa backdoor, người dùng có thể sử dụng phương pháp so sánh các thông
tin thu thập được giữa hệ mật trung thực với hệ mật hộp đen mục tiêu. Nhóm
thông tin thứ nhất là các tham số đầu vào và kết quả đầu ra của hộp đen (các
khóa). Vì hệ mật hộp đen mục tiêu là một hệ mật vật lý cụ thể nên nhóm thông
tin thứ hai có thể thu thập được là các thông tin kênh bên như việc sử dụng tài
nguyên: thời gian sinh khóa, nhu cầu sử dụng bộ nhớ, năng lượng tiêu thụ...vv
Mục tiêu kẻ tấn công là nhằm phá vỡ backdoor, kẻ tấn công với tri thức
chuyên gia của mình tìm cách phân tích khóa công khai của người dùng để khôi
phục được khóa riêng tương ứng. Kẻ tấn công không thể yêu cầu hệ mật hộp
đen tạo khóa nên chỉ có thể phân tích khóa công khai của người dùng và kẻ tấn
công có thể thu thập được các thông tin kênh bên của hộp đen.


14
Người thiết kế khi cài đặt thuật toán sinh khóa chứa backdoor vào trong
hệ mật hộp đen với mục tiêu:
- Tạo ra các cặp khóa với các tính chất, tiêu chí càng giống như các cặp
khóa được tạo bởi thuật toán trung thực càng tốt, để khi so sánh với các cặp
khóa được tạo bởi thuật toán trung thực, người dùng khó có thể phát hiện (phân

biệt) được cặp khóa được tạo bởi thuật toán trung thực hay thuật toán có chứa
backdoor.
Đầu vào: Các tham số

Yêu cầu tạo khóa

Hệ mật mã
hộp đen
Người thiết kế
Người dùng

Khôi phục khóa riêng
Kết quả đầu ra
Đầu ra: cặp khóa

Kpub

Kpriv

Tìm cách
khám phá
khóa riêng

Kẻ tấn công

Hình 1.2. Mô hình phân tích backdoor


15
- Với các cặp khóa được tạo ra bởi hệ mật hộp đen có chứa backdoor, từ

khóa công khai người dùng, kẻ tấn công không thể tính toán được khóa riêng
tương ứng từ khóa công khai trong khi người thiết kế khôi phục được khóa
riêng từ khóa công khai tương ứng.
Khả năng của người thiết kế: có thể cài đặt thuật toán sinh khóa trung
thực hoặc thuật toán sinh khóa chứa backdoor vào hệ mật hộp đen. Khi cài
backdoor vào hệ mật hộp đen, người thiết kế có thể khôi phục được khóa riêng
của người dùng từ khóa công khai tương ứng được tạo bởi hệ mật hộp đen.
1.2.3. Định nghĩa backdoor an toàn
1.2.3.1. Định nghĩa tổng quát
Định nghĩa 1.1. Định nghĩa tổng quát backdoor an toàn: (mục 4.2.1
trong [4]) Từ mục đích và khả năng của 3 đối tượng (người thiết kế, người dùng
và kẻ tấn công), thuật toán sinh khóa chứa backdoor được gọi là an toàn khi nó
tạo ra các cặp khóa với các khả năng sau:
- Khả năng đảm bảo ổn định: thông tin backdoor được người thiết kế bảo
mật, sao cho kẻ tấn công không thể tính toán được thông tin backdoor (phá vỡ
tính bảo mật của người thiết kế), nhưng từ khóa công khai của người dùng,
người thiết kế luôn khôi phục (tính toán) được khóa riêng tương ứng.
- Khả năng che giấu, ẩn giấu (không thể phân biệt được): người dùng
không thể phân biệt được các cặp khóa được sinh bởi thuật toán sinh khóa chứa
backdoor với các cặp khóa được sinh bởi thuật toán sinh khóa trung thực.
Khả năng đảm bảo ổn định: được phân tích dựa trên hai tiêu chí là tính
bảo mật và tính hoàn chỉnh. Tính bảo mật chỉ khả năng giữ bí mật thông tin
backdoor của người thiết kế sao cho kẻ tấn công không thể khôi phục được
thông tin backdoor hay cụ thể hơn kẻ tấn công không thể tính toán được khóa
riêng của người dùng từ khóa công khai tương ứng. Tính hoàn chỉnh là khả


×