Với tính năng của chữ ký số: “Bảo mật”; “Xác thực người dùng”, chúng tôi dự kiến sẽ nghiên cứu phát triển các ứng dụng sử dụng chữ ký số để nó đáp ứng các tính năng nhằm bước đầu tạo ra
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
- Nguyễn Quang Minh
TÊN ĐỀ TÀI LUẬN VĂN
Nghiên cứu và phát triển các ứng dụng chữ ký số trên các thiết bị Smartphone
Chuyên ngành : Kỹ thuật viễn thông
LUẬN VĂN THẠC SĨ KỸ THUẬT
NGƯỜI HƯỚNG DẪN KHOA HỌC :
1 TS Nguyễn Quốc Khương
Hà Nội – 09/2016
Trang 2DANH MỤC CÁC TỪ VIẾT TẮT 5
LỜI CAM ĐOAN 7
MỞ ĐẦU 8
1.1 LÝ DO LỰA CHỌN ĐỀ TÀI 8
1.2 MỤC TIÊU VÀ MỤC ĐÍCH CỦA NGHIÊN CỨU 8
1.3 NHIỆM VỤ NGHIÊN CỨU 9
1.4 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 9
Chương 1 TỔNG QUAN VỀ CHỮ KÝ SỐ 10
1.1 TÌNH HÌNH TRIỂN KHAI CHỮ KÝ SỐ 10
1.1.1 Tình hình triển khai chữ ký số trên thế giới 10
1.1.2 Tình hình triển khai chữ ký số tại Việt Nam 10
1.2 CÁC KHÁI NIỆM VỀ CHỮ KÝ SỐ 12
1.3 CHỮ KÝ SỐ TRÊN THIẾT BỊ DI ĐỘNG 14
1.3.1 Nhu cầu thực tiễn 14
1.3.2 Tình hình triển khai trên thế giới 15
1.3.3 Các vấn đề về kỹ thuật công nghệ 16
Chương 2 LÝ THUYẾT VỀ CHỮ KÝ SỐ 17
2.1 CƠ SỞ LÝ THUYẾT 17
2.1.1 Khái niệm Chữ ký số 17
2.1.2 Cơ sở toán học của chữ ký số 18
2.1.3 Phân loại Chữ ký số 21
2.2 HỆ MÃ HÓA KHÓA CÔNG KHAI RSA 23
2.2.1 Mô tả sơ lược về mã hóa RSA 23
2.2.2 Phương pháp tạo mã và giải mã trong mã hóa công khai RSA 23
2.2.3 Đặc trưng của mã hóa công khai RSA 24
2.2.4 Độ an toàn của mã hóa RSA 25
2.2.5 Các hình thức tấn công đối với mã hóa RSA 26
2.3 CHỮ KÝ SỐ RSA 27
2.3.1 Đặt vấn đề 27
2.3.2 Các biểu tượng 28
Trang 32.3.3 Các loại khóa 31
2.3.4 Các nguyên hàm mật mã 33
2.3.5 Các lược đồ mã hóa 38
3.3.6 Các lược đồ chữ ký 42
2.4 CHUẨN PKCS#11 45
2.4.1 Giới thiệu 45
2.4.2 Mục tiêu thiết kế 46
2.4.3 Mô hình chung 46
2.4.4 Khung nhìn logic của một token 48
2.4.5 Người dùng 50
2.4.6 Các ứng dụng sử dụng Cryptoki 51
2.4.7 Một số vấn đề an ninh cần xem xét 51
Chương 3 PHÂN TÍCH THIẾT KẾ CÁC ỨNG DỤNG TRIỂN KHAI CHỮ KÝ SỐ TRÊN MOBILE 53
3.1 THÀNH PHẦN KIẾN TRÚC ỨNG DỤNG 53
3.2 THIẾT KẾ CÁC MÔ HÌNH MẬT MÃ VÀ CHỮ KÝ SỐ 55
3.2.1 Mật mã bất đối xứng và đối xứng kế hợp 55
3.2.2 Mô hình sử dụng hạ tầng mã khóa công khai để đăng nhập hệ thống 57 3.2.3 Ký dữ liệu 58
3.2.4 Mô hình xác thực chữ ký số 59
3.3 THIẾT KẾ CHỨC NĂNG 60
3.3.1 Thiết kế chức năng cho Soft Token 60
3.3.2 Thiết kế chức năng cho Secured SMS 61
3.3.3 Thiết kế chức năn cho Secured Email Client 61
3.3.4 Thiết kế chức năng cho Signing App 61
3.4 THIẾT KẾ KIẾN TRÚC 62
3.4.1 Kiến trúc Mobile PKI Soft Token App 62
3.4.2 Kiến trúc Secured SMS App 63
3.4.3 Kiến trúc Secured Email Client App 65
3.4.4 Kiến trúc Signing Apps 67
Trang 4KẾT LUẬN 69 5.1 NHỮNG CÔNG VIỆC MÀ LUẬN VĂN ĐÃ ĐẠT ĐƯỢC 69 5.2 KHẢ NĂNG PHÁT TRIỂN CỦA LUẬN VĂN 69
Trang 5DANH MỤC CÁC TỪ VIẾT TẮT
STT Chữ viết tắt Nghĩa chữ viết tắt
2 CRL Danh sách số serial của các chứng thư số bị
thu hồi, danh sách này được các nhà cung cấp
dịch vụ chữ ký số cung cấp
3 OCSP Giao thức kiểm tra chữ ký số trực tuyến
khóa công khai và mã hóa đối xứng để áp
dụng bảo mật kênh truyền tin
7 PIN Mật khẩu để truy xuất vào một thiết bị chữ ký
số
hóa Dữ liệu)
mã hóa tiên tiến)
16 MIME chuẩn định dạng cho thư điện tử khi truyền
qua Internet
17 S/MIME chuẩn mã hóa và ký số cho thư điện tử MIME
18 SMTP Simple Mail Transfer Protocol - giao thức
truyền tải thư tín đơn giản
Trang 619 IMAP Internet Message Access Protocol
Trang 7LỜI CAM ĐOAN
Tôi xin cam đoan số liệu và kết quả nghiên cứu trong luận văn này là trung thực Mọi
sự giúp đỡ cho việc thực hiện luận văn này đã được cảm ơn và các thông tin trích dẫn trong luận văn đã được chỉ rõ nguồn gốc rõ ràng và được phép công bố
Hà Nội, ngày 30 tháng 09 năm 2016
Nguyễn Quang Minh
Trang 8MỞ ĐẦU 1.1 LÝ DO LỰA CHỌN ĐỀ TÀI
Việc giao dịch điện từ càng ngày trở nên càng mặc nhiên, trước đây mọi thông tin trao đổi qua giấy tờ, giờ đây hầu hết qua các cuộc gọi, tin nhắn, mạng xã hội và Email Các vấn đề thương mại điện tử đã và đang phát triển mạnh mẽ, giờ rất nhiều giao dịch đã thực hiện hoàn toàn qua mạng, thanh toán qua mạng tuy nhiên có thể nói chưa triệt để
Một xu hướng mọi giao dịch thông qua kênh điện tử ngày càng cao, xu hướng tất yếu
sẽ triển khai và có lẽ cả thế giới của bạn nằm trong một chiếu smartphone Có thể nói một xu hướng phát triển như thế nhưng càng ngày chúng ta càng thấy các vấn đề xác thực và bảo mật chưa được thực sự quan tâm một cách chính đáng cho các sản phẩm dịch vụ
Trên thế giới việc phát triển các ứng dụng chữ ký số cho nền tảng thiết bị Mobile chưa thực sự được triển khai rộng rãi về mặt ứng dụng tương tự như máy tính Với tính năng của chữ ký số: “Bảo mật”; “Xác thực người dùng”, chúng tôi dự kiến sẽ nghiên cứu phát triển các ứng dụng sử dụng chữ ký số để nó đáp ứng các tính năng nhằm bước đầu tạo ra nền tảng “Bảo mật” và “Xác thực” cho người dùng sử dụng smartphone trong các giao dịch điển tử để nhằm mở toang cánh cửa giao dịch điện tử
ra để mọi người hoàn toàn tự tin giao dịch các giao dịch điện tử như giao dịch trực tiếp Chính vậy chúng tôi quyết định lựa chọn đề tài “Nghiên cứu và phát triển ứng dụng chữ ký số trên thiết bị Smartphone”
o Mục đích
- Nghiên cứu tình hình bảo mật, xác thực cá nhân để trên nền điện thoại di động trong nước và quốc tế
- Nghiên cứu các tiêu chuẩn về kỹ thuật và công nghệ liên quan đến chữ ký số để
áp dụng và các giải pháp bảo mật, xác thực cá nhân
Trang 9- Nghiên cứu phát triển các ứng dụng để quản lý, bảo mật và xác thực người dùng
cá nhân trong các giao dịch
- Ứng dụng tích hợp phục vụ cho xác thực, bảo mật các giao dịch thương mại điện
tử, ngân hàng, chứng khoán, thanh toán trực tuyến
1.3 NHIỆM VỤ NGHIÊN CỨU
- Nghiên cứu, hệ thống hóa cơ sở lý thuyết, các chuẩn công nghiệp, về chữ ký số
để áp dụng vào phát triển các ứng dụng chữ ký số trên nền Mobile
- Mô tả, đánh giá thực trạng, nhu cầu triển khai triển khai áp dụng chữ ký số, các lĩnh vực áp dụng chữ ký số và khả năng mở của nó
- Đề xuất và phát triển các ứng dụng, giải pháp đáp ứng các yêu cầu
o Đối tượng nghiên cứu
- Các vấn đề bảo mật và xác thực thông tin cá nhân
- Các ứng dụng và giải pháp đáp ứng nhu cầu bảo mật và xác thực của cá nhân
o Phạm vi nghiên cứu
- Nghiên cứu tình hình chung trên thế giới và Việt Nam
- Thời gian trong khoảng từ 2014-2016
Trang 10Chương 1 TỔNG QUAN VỀ CHỮ KÝ SỐ 1.1 TÌNH HÌNH TRIỂN KHAI CHỮ KÝ SỐ
1.1.1 Tình hình triển khai chữ ký số trên thế giới
Chữ ký số đang được ứng dụng vào trong các giao dịch điện tử ngày càng phổ biến ở các nước trên thế giới Đặc biệt là ở các nước có nền công nghệ tiên tiến như
Mỹ, Canada, Anh, Nhật Bản, Hàn Quốc, Malaysia, Singapore, Trung Quốc,…Các giải pháp chính phủ điện tử và Thương mại điện tử đều được ứng dụng kỹ thuật chữ
ký số
Tại các cường quốc công nghệ thông tin, việc ứng dụng chữ ký số đang được phát triển mạnh mẽ trong các dịch vụ hành chính công Trong đó, các nước châu Âu rất tích cực trong triển khai áp dụng chữ ký số trong Chính phủ điện tử Một số nước như Estonia, việc sử dụng chứng minh thư điện tử đã bắt đầu được cấp cho người dân năm
2002, năm 2005, tiến hành bầu cử điện tử Tại Ý, việc triển khai chứng minh điện tử cho người dân cũng được thực hiện từ 2009 Một số nước sử dụng chữ ký số trong hầu hết các giao dịch điện tử và tiến đến một thị trường hoàn toàn không tiền mặt trong tương lại như Thụy Điển
Các nước có nền công nghệ thông tin phát triển ở châu Á cũng đã bắt đầu triển khai
áp dụng chữ ký số vào Chính Phủ Điện tử Thậm chí Hàn Quốc vượt lên đứng đầu thế giới trong Chính phủ điện tử, hầu hết các giao dịch điện tử của Hàn Quốc đều sử dụng chữ ký số Đối với Trung Quốc, lượng chữ ký số được cấp ra hàng năm cho người dùng đến hàng trăm triệu chữ ký số phục vụ các giao dịch hành chính công và giao dịch điện tử
1.1.2 Tình hình triển khai chữ ký số tại Việt Nam
Các portal, website của các ngân hàng, doanh nghiệp thương mại điện tử, các bộ ban ngành phần lớn đã sử dụng chứng thư số SSL để áp dụng bảo mật kênh truyền dữ liệu giữa người dùng và khách hàng
Tại Việt Nam, việc tổ chức triển khai và áp dụng chữ ký số được phân tách ra làm hai lĩnh vực, thứ nhất là chữ ký số công cộng, thứ hai là chữ ký số chuyên dùng Theo
Trang 11luật quy định chữ ký số công cộng sẽ được áp dụng cho giao dịch giữa các tổ chức,
cá nhân dân sự với nhau và với cơ quan nhà nước Chữ ký số chuyên dùng được cấp phát và sử dụng cho khối cơ quan chính phủ sẽ được cấp riêng cho cơ quan ban ngành trong hệ thống của chính phủ Chữ ký số chuyên dùng trong các tổ chức doanh nghiệp thì sẽ dùng riêng nội bộ trong các doanh nghiệp mà không dùng với giao tiếp bên ngoài
Hiện tại ở Việt Nam có 9 nhà cung cấp dịch vụ chứng thực chữ ký số công cộng được
Bộ Thông Tin và Truyền Thông cấp phép dưới hệ thống RootCA quốc gia Với khoảng 450 nghìn doanh nghiệp sử dụng chữ ký số vào trong các giao dịch như khai thuế, hải quan và chứng khoán Với khoảng 50 nghìn chữ ký số được cấp cho cá nhân phục vụ các giao dịch ngân hàng và chứng khoán với lĩnh vực chữ ký số công cộng
Hệ thống cung cấp dịch vụ chữ ký số chuyên dùng phục vụ các cơ quan thuộc hệ thống chính trị của Ban Cơ yếu Chính phủ đã triển khai cung cấp chứng thư số cho các Bộ, ngành, địa phương Tính đến tháng 7/2013, Ban Cơ yếu Chính phủ đã cung cấp khoảng 15.000 chứng thư số cho 11 Bộ, cơ quan ngang Bộ và 15 địa phương Việc cung cấp, quản lý, sử dụng chứng thư số đã đáp ứng kịp thời nhu cầu cấp thiết của cơ quan nhà nước các cấp trong việc đảm bảo xác thực và bảo mật thông tin phục
vụ lãnh đạo, điều hành Tuy nhiên, việc triển khai chữ ký số còn chưa được rộng khắp, nhiều cơ quan, đơn vị chưa ứng dụng chữ ký số trong hoạt động tác nghiệp Trong khi đó, để phát huy hiệu quả các hoạt động giao dịch qua mạng và điện tử hóa quy trình làm việc của cơ quan nhà nước thì chữ ký số phải được triển khai rộng rãi theo hướng mở rộng đối tượng và quy mô sử dụng
Một số lĩnh vực cũng được áp dụng chữ ký số một cách mạnh mẽ tại thị trường Việt Nam là dùng trong các giao dịch liên ngân hàng giữa các ngân hàng thương mại và Ngân hàng nhà nước, trong việc xử lý các giao dịch nội bộ của các nhân viên trong các hệ thống ngân hàng và một số khách hàng lớn của ngân hàng cũng được ưu tiên
sử dụng dịch vụ chữ ký số để ký các giao dịch
Trang 121.2 CÁC KHÁI NIỆM VỀ CHỮ KÝ SỐ
Mật mã đối xứng: Mật mã đối xứng là mật mã dùng một khóa để mã hóa và dùng
chính khóa đó để giải mã hoặc khóa dễ dàng tìm thấy từ khóa đó để giải mã Một số thuật toán của mật mã đối xứng như DES, RC2, RC4,RC5, RC6, 3-DES, IDEA, AES, CAST−128…
Mật mã bất đối xứng:Mật mã bất đối xứng là mật mã dùng một khóa để mã hóa và
dùng một khóa để giải mã Việc biết được khóa này để tìm được khóa kia thì vô cùng khó khăn Một số thuật toán mật mã bất đối xứng như RSA, ECC, DSA
Hàm băm: Hàm băm là hàm dùng thuật toán băm để biến biến một khối lượng dữ
liệu lớn thành một khối dữ liệu nhỏ và duy nhất đại diện cho khối dữ liệu lớn trước khi băm qua hàm băm, dữ liệu băm là kết quả của hàm băm cũng không thể nào tính ngược lại được dữ liệu trước khi băm
Khóa riêng (Private-key): Khóa riêng hay được gọi là khóa bí mật (Private-key),
được tạo ra tại chính thiết bị lưu trữ khóa (USB token, HSM vv ) do nhà cung cấp dịch vụ CA cấp Khóa này sẽ được người dùng mã hóa dữ liệu đã băm của dữ liệu gốc để tạo ra chữ ký số, khóa bí mật chỉ có duy nhất người dùng để tạo chữ ký số biết Khóa riêng là một khóa trong mật mã bất đối xứng
Khóa công khai (public-key): Khóa công khai (public-key) được tạo tại chính thiết
bị lưu trữ khóa (USB token, HSM vv ) do nhà cung cấp dịch vụ CA cấp Khóa này
sẽ được người ký số tạo rà và công khai cho người nhận, người nhận dùng khóa này
để giải mã chữ ký số và kiểm tra chữ ký số xem có đúng người cần gửi gửi cho mình không (xác thực chữ ký số)
Chữ ký số: Chữ ký số là việc sử dụng khóa Bí mật của cá nhân hoặc tổ chức để thực
hiện mã hóa chuỗi dữ liệu đại diện, dữ liệu này là kết quả của một hàm băm của dữ liệu nào đó như các file hoặc khối dữ liệu Sau đó dữ liệu mã hóa đó được đóng gói thành chuẩn Chữ ký số cùng với Chứng thư sốđính kèm các file hoặc khối dữ liệu để tạo thành Chữ ký số của một ai đó trên file hoặc khối dữ liệu
Trang 13USB Token: USB token là thiết bị phần cứng dùng để tạo cặp khóa bí mật, công khai
và Chứng thư số, được nhà cung cấp dịch vụ chữ ký số giao cho khách hàng để khách hàng có thể tạo cặp khóa và ký lên dữ liệu cần ký
Dịch vụ chứng thực chữ ký số:Là một loại hình dịch vụ chứng thực chữ ký điện tử
do tổ chức cung cấp dịch vụ chứng thực chữ ký số cấp Tổ chức dịch vụ chứng thực chữ ký số là đơn vị phải được phép của nhà nước, tuân theo hệ thống và quy trình pháp lý để cung cấp dịch vụ chứng thực chữ ký số Nhiệm vụ của nhà cung cấp dịch
o Cung cấp dịch vụ gia hạn, tạm dừng, thu hồi chứng thư số cho khách hàng
o Duy trì dịch vụ xác thực chứngthư số trực tuyến để những người tham gia giao dịch đảm bảo tin cậy đúng các đối tượng được chứng nhận tham gia các giao dịch điện tử
Danh sách chứng thư số bị thu hồi CRL: Danh sách chứng thư số do một lý do nào
đó như mất khóa bí mật, bị lộ khóa bí mật, hoặc bị hỏng, hoặc người sử dụng rời khỏi một vị trí chức danh nào đấy…khi đó chứng thư số sẽ được thông báo cho nhà cung cấp thu hồi Thông tin chứng thư số bị thu hồi sẽ được đưa vào danh sách CRL để cung cấp rộng rãi cho môi trường mạng, như thế một ai đó có lợi dụng chữ ký số và chứng thư số tham gia một giao dịch nào đó thì cũng không thể thực hiện được CRL thông thường sẽ được cập nhật một ngày một lần
Giao thức xác thực chữ ký số trực tuyến OCSP: Giao này cho phép người dùng
kiểm tra được trạng thái chữ ký số còn được phép sử dụng trong thời điểm thực hiện giao dịch hay không Như trường hợp CRL, thì việc cập nhật sẽ được thực hiện trong
24 giờ, vì thế sẽ có độ trễ về thời gian, trong trường hợp dùng dịch vụ OCSP thì không
có độ trễ về thời gian
Trang 141.3 CHỮ KÝ SỐ TRÊN THIẾT BỊ DI ĐỘNG
1.3.1 Nhu cầu thực tiễn
o Ứng dụng xử lý chữ ký số như trên máy tính
Với nền máy tính chúng ta dễ dàng thấy rằng các ứng dụng và thiết bị lưu trữ và xử
lý chữ ký số trên máy tính rất dễ dàng như thiết bị Token cứng và các ứng dụng Soft Token.Tuy nhiên với nền thiết bị di động như Smarphone và Tablet, muốn triển khai được ứng dụng chữ ký số trên đó thì chúng ta cần phải tìm kiếm hoặc đặt hàng các nhà sản xuất thiết bị chữ ký số chuyên biệt cung cấp thiết bị để lưu trữ chữ ký số trên thiết bị di động và giao tiếp và làm việc được với thiết bị di động Một mặt chúng ta cũng có thể xây dựng ứng dụng và coi thiết bị di động chính là Token luôn để lưu trữ chữ ký số trên đó để đảm bảo hoàn toàn bảo mật Chính vì vậy trong phạm vi của đề tài này chúng tôi cũng nghiên cứu và phát triển ứng dụng để lưu trữ, xử lý, giao tiếp với ứng dụng lưu trữ chữ ký số hoặc thiết bị lưu trữ chữ ký số để làm cơ sở phát triển các ứng dụng chữ ký số khác
o Secured Email
Hiện tại một số ứng dụng sử dụng để duyệt Email trên các máy tính phần lớn đã hỗ trợ các tính năng ký số và mã hóa nội dung Mục tiêu của chúng là để tránh giả mạo email và bảo mật các nội dung email dùng chữ ký số và chứng thư số Tuy nhiên có thể nói một cách chính thống trên thế giới chưa cho một ứng dụng nào chính thức cung cấp các ứng dụng ký và mã hóa Email trên các thiết bị cầm tay phổ biến hiện tại Chính vì thế trong phạm vi của đề tài này, chúng tôi cũng sẽ tiến hành nghiên cứu phát triển ứng dụng để tiến hành ký số và mã hóa được với một ứng dụng email và nhằm cung cấp dịch vụ ra thị trường
o Secured SMS
Trong một môi trường làm ăn kinh doanh phức tạp, trong một môi trường do thám các thông tin của nhau, nghe nén các thông tin của nhau, rất cần thiết một kênh phải đảm bảo bảo mật Việc đảm bảo bảo mật không đơn thuần bảo mật cho cá nhân, bảo mật cho doanh nghiệp và thậm chí bảo mật cho quốc gia Chính vì vậy việc trao đổi
Trang 15SMS trong làm ăn kinh doanh, thông tin mang tính chất riêng tư cá nhân, các trao đổi nội dung chính trị nên được đảm bảo bảo mật tính riêng tư cho các cá nhân, doanh nghiệp và nhà nước Hiện nay đã có một số ứng dụng dùng, nhưng dùng chủ yếu kênh
mã hóa đối xứng Vậy đảm bảo ứng dụng bảo mật tính riêng tư hoàn toàn chúng tôi phát triển kênh mã hóa SMS dùng chữ ký số để cung cấp đến người dùng một ứng dụng chữ ký số thật sự tiện lợi và bảo mật
o Signing Apps
Trên nền ứng dụng mobile, hiện tại chưa có chính thức một sản phẩm nào ký số trên Mobile, các giao dịch điện tử đang ngày trở nên phổ biến, các giao dịch không đơn thuần trên máy tính, mà có lẽ các giao dịch điện tử sẽ giảm dần trên máy tính mà được thực hiện chủ yếu trên nền Mobile Chính vì vậy cần thiết phải phát triển ứng dụng chữ ký số trên nền Mobile
1.3.2 Tình hình triển khai trên thế giới
Hiện tại các quốc gia trên thế giới đã và đang triển khai các ứng dụng chữ ký số trên thiết bị di động Tuy nhiên việc triển khai chưa thực sự rộng rãi, việc triển khai trên nền tảng di động trên thế giới có thể nói dựa chính trên các giải pháp của Valimo phục vụ chính để giao dịch với ngân hàng và tích hợp vào các sim điện thoại, nhưng giải pháp này là giải pháp phụ thuộc hoàn toàn vào các nhà mạng viễn thông, đồng thời giải pháp này tập trung vào ký các dạng dữ liệu còn ở mức nguyên thủy là mức binary, và mức dữ liệu này sẽ không tiếp cận được với người dùng cuối
Như vậy cần phải ký số các văn bản giấy tờ để đưa ra các xác nhận và quyết định điện tử triển khai trên Mobile trên toàn cầu dường như chưa hoặc rất hiếm và không được công bố rộng rãi Đồng thời các Email trao đổi với nhau của các sản phẩm Email trên nền mobile của toàn cấu hầu như chưa có chức năng ký và mã hóa dữ liệu Như vậy có thể nói trên nền tảng di động, một thiết bị thiết yêu của hầu hết mọi người dân trên toàn cầu còn thiếu khả năng xác thực và bảo mật Email, văn bản, giao dịch nếu thực hiện trên mobile có thể nói là còn rất yếu
Trang 16Hiện tại một số quốc gia cũng đang đẩy rất mạnh việc phát triển chữ ký số trên nền tảng Mobile, nhưng việc đẩy hẳn thành một trào lưu mang tính toàn cầu thì chắc chắn cũng sẽ được diễn ra trong vài năm tới Và trong quá trình nghiên cứu và phát triển này, chúng tôi cũng đặt đặt vấn đề của rất nhiều đơn vị trên thế giới là phát triển một thành phần nào đó trong bộ ứng dụng của chúng tôi
1.3.3 Các vấn đề về kỹ thuật công nghệ
Về kỹ thuật công nghệ, có thể nói nền tảng chữ ký số trên các thiết bị di động cũng
đã được xây dựng trên các nền tảng chính:
- Các nền tảng kỹ thuật và công nghệ để tích hợp chíp xử lý chữ ký số trên Sim của thiết bị di động
- Các nền tảng kỹ thuật và công nghệ để triển khai một thiết bị lưu trữ và xử lý chữ
ký số và thực hiện kết nối vào thiết bị di động qua các kênh đầu cắm Audio, qua kênh Blutooth
- Một số nền tảng sử dụng thuần thiết bị chính là Token, và ứng dụng phần mềm lưu trữ và quản lý chữ ký số được cài đạt trên các thiết bị
Về chuẩn, hiện tại các chuẩn đối với các thiết bị công nghệ là thiết bị phần cứng có thể nó nó tuân theo các chuẩn công nghiệp sẵn có của các thiết bị phần cứng và phần mềm chuẩn chữ ký số p như PKCS#11, PKCS#1, PKCS#15 Với thiết bị mobile khi giao tiếp một số chuẩn cũng cần phải kiểm soát được tuân theo như chuẩn giao tiếp của thiết bị tương ứng như chuẩn Audio, chuẩn Bluetooth
Về cơ bản các chuẩn cũng được hiệp hội các nhà viễn thông toàn cầu họp và chấp nhận để tạo thành một chuẩn chung để phục vụ trong mọi giao tiếp viễn thông trên toàn cầu
Trang 17Chương 2 LÝ THUYẾT VỀ CHỮ KÝ SỐ 2.1 CƠ SỞ LÝ THUYẾT
2.1.1 Khái niệm Chữ ký số
Giới thiệu
Để chứng thực nguồn gốc hay hiệu lực của một tài liệu (ví dụ: đơn xin học, giấy báo nhập học, ), lâu nay người ta dùng chữ ký “tay”, ghi vào phía dưới của mỗi tài liệu Như vậy người ký phải trực tiếp “ký tay“ vào tài liệu
Ngày nay các tài liệu được số hóa, người ta cũng có nhu cầu chứng thực nguồn gốc hay hiệu lực của các tài liệu này Rõ ràng không thể “ký tay“ vào tài liệu, vì chúng không được in ấn trên giấy Tài liệu “số” ( hay tài liệu “điện tử”) là một xâu các bit (0 hay 1), xâu bít có thể rất dài (nếu in trên giấy có thể hàng nghìn trang) “Chữ ký”
để chứng thực một xâu bít tài liệu cũng không thể là một xâu bit nhỏ đặt phía dưới xâu bit tài liệu Một “chữ ký” như vậy chắc chắn sẽ bị kẻ gian sao chép để đặt dưới một tài liệu khác bất hợp pháp
Để có được những đặc tính như trên, giao thức “ký trong thế giới điện tử” cần phải
có sự hỗ trợ của công nghệ mã hóa Sơ đồ chữ ký số là phương pháp ký một thông báo được lưu dưới dạng điện tử Giao thức cơ bản của chữ ký số dựa trên ý tưởng của Diffie và Hellman :
- Người gửi (chủ nhân của văn bản) ký văn bản bằng cách mã hóa nó với khóa
bí mật của mình
- Người gửi chuyển văn bản đã ký cho người nhận
- Người nhận văn bản kiểm tra chữ ký bằng việc sử dụng chìa khóa công khai của người gửi để giải mã văn bản
Trang 18qua chứng thực khóa công khai Quá trình sử dụng chữ ký số bao gồm 2 quá trình: tạo chữ ký và kiểm tra chữ ký
Các thuật toán chữ ký số cho phép xác định nguồn gốc, bảo đảm tính toàn vẹn của dữ liệu được truyền đi, đồng thời nó cũng bảo đảm tính không thể phủ nhận của thực thế
2.1.2 Cơ sở toán học của chữ ký số
2.1.2.1 Sinh số nguyên tố và phân tích thừa số nguyên tố
Hai hệ quả và một ước lượng trong thuyết số học là tiền đề cho hệ thống khóa công khai RSA ngày nay
Hệ quả 1 : Sinh số nguyên tố thì dễ Việc tìm ra một số nguyên tố ngẫu nhiên với kích
cỡ cho trước là dễ dàng
Nó là kết quả của hai điểm khác : Số nguyên tố với kích thước bất kỳ thì rất phổ biến
và việc kiểm tra số nguyên tố thì không khó – thậm chí với cả số nguyên tố rất lớn
Để sinh số nguyên tố ngẫu nhiên, đơn giản nhất là chỉ việc sinh ra một số nguyên ngẫu nhiên với độ lớn đã cho và kiểm tra tính nguyên tố cho đến khi một số nguyên
tố được tìm thấy Dựa vào điều kiện số nguyên tố, một số kỳ vọng được kiểm tra dựa vào thứ tự của lnx( thuật toán tự nhiên của x) khi mà x là một số điển hình với độ lớn mong muốn
Việc kiểm tra một số là số nguyên tố là không dễ Trong thực tế, dường như việc kiểm tra tính nguyên tố sẽ yêu cầu một số khác ngoài chính số đó và số 1 là ước của
số nguyên cần kiểm tra Hầu hết các hệ mã hóa khóa công khai ngày nay đề phụ thuộc vào việc sinh số nguyên tố
Trang 19Cho p, và q là 2 số nguyên tố lớn được sinh ngẫu nhiên.(kích cỡ trung bình trong các
hệ mã hóa thường là 512 bits hoặc lớn hơn)
Hệ quả 2 : Phép tính nhân là dễ : Với p và q cho trước, việc tính kết quả của phép nhân n = pxq là dễ dàng
Ước lượng 3 : Phân tích thừa số là khó : Với một số nguyên n là kết quả của phép nhân số nguyên tố lớn, việc tìm lại các số nguyên tố thừa số p, q là rất khó
Bất chấp hàng trăm năm nghiên cứu trong vấn đề này, việc phân tích ra thừa số của một số nguyên lớn vẫn mất rất một thời gian dài Phương pháp nhanh nhất gần đây
đã nhanh hơn rất nhiều so với những cách đơn giản là tìm tất cả các thừa số ở cùng một thời điểm Tuy nhiên, chúng vẫn rất đắt Cho ví dụ, việc phân tích ra thừa số nguyên tố cua một số 1024 bit mất một năm với một máy giá 10 triệu USD Với một
số 2048 bit thì thời gian để hoàn thành còn gấp vài tỉ lần
2.1.2.2 Phép mũ hóa và khai căn modul
Như ở trên ta đã khai báo n là kết quả của phép nhân hai số nguyên tố lớn được sinh ngẫu nhiên Cho m và c là những số nguyên nằm trong khoảng (0,n-1) và e là một số nguyên lẻ trong khoảng (3,n-1) và nguyên tố cùng nhau với p-1 và q-1
Thao tác mã hóa và giải mã trong hệ mã hóa khóa công khai RSA được thực hiện dựa trên 2 hệ quả và 1 ước lượng sau :
Hệ quả 4: Phép tính mũ hóa modul là dễ : Cho n,m và e Việc tính c = me mod n là
dễ dàng
Giá trị me mod n chính thức là kết quả của nâng lũy thừa e của m, chia cho n và lấy phần dư Điều này có thể là một phép tính toán phức tạp liên quan tới việc nhân (e-1)
số m và kết quả trả về là một số nguyên lớn, trước khi việc thực hiện phép chia cho
n Tuy nhiên hai cách tối ưu hóa sau làm cho việc tính toán trở nên dễ dàng :
Trang 20- Nhân với một trình tự thích hợp của các giá trị trung gian trước đó, thay vì hơn chỉ bằng m, có thể giảm số lượng các phép nhân để không quá hai lần kích thước của e trong hệ nhị phân
- Chia và lấy phần dư sau khi mỗi phép nhân giữ kết quả trung gian có cùng kích thước như n
Hệ quả 5 : Phép khai căn module – nghịch đảo của phép lũy thừa module
Cho n,e,c và những thừa số nguyên tố p, q, việc khôi phục lại giái trị m sao cho c =
me mod n là dễ dàng
Giá trị m có thể khôi phục từ c bởi thao tác mũ hóa modul với một số nguyên lẻ d nằm trong khoảng (3,n-1) Đặc biệt, với số d này, biểu thức sau thể hiện cho tất cả m : m = (me)d mod n
Số nguyên d này thì dễ dàng tính với e, p, q cho trước
Ước lượng 6: Phép khai căn modul lại khó ở một hoàn cảnh khác
Cho n,e, và nhưng không biết những thừa số nguyên tố, việc khôi phục lại m là khó khăn
Phương pháp nhanh nhất thì có sẵn trong việc tính toán khai căn modul dưới điều kiện dựa là n và e là phân tích thừa số n và áp dụng hệ quả 5 để quyết định d Thực
sự, bất kỳ phương thức nào quyết định d đều bị chuyển về một cách khác của việc phân tích thừa số n Đúng là có thể khi mà tồn tại một phương pháp mà tính toán khai căn modul mà không cần phân tích n hoặc quyết định d Nhưng cho đến nay chưa phương phàp nào có thể làm như vậy nhanh hơn việc phân tích thừa số n
2.1.2.3 Hàm băm
Hàm băm tiếp nhận các đầu vào với kích thước bất kỳ, và đầu ra là một khối dữ liệu
có kích thước cố định Từ văn bản M, ta có thể dễ dàng tính ra bản băm của M là H(M), nhưng từ H(M) không thể tìm ra M Và một tính chất quan trọng nhất của hàm băm là với những văn bản khác biệt nhau dù là rất nhỏ, thì sau khi qua hàm băm kết
Trang 21quả nhận được cũng phải khác nhau, ta có thể gọi là độ nhạy cảm của hàm băm với
sự thay đổi của văn bản
Hình 2.1 mô tả cơ chế của 1 hàm băm, với dữ liệu đầu vào và đầu ra tương ứng
Hình 2.1 Minh họa cách làm việc của 1 hàm băm
Một số tính chất cơ bản của hàm băm :
- (i) Có thể áp dụng với thông báo đầu vào có độ dài bất kỳ
- (ii) Tạo ra giá trị băm y = h(x) có độ dài cố định
- (iii) h(x) dễ dàng tính được với bất kỳ x nào
- (iv) Tính một chiều : Với mọi đầu ra y cho trước không thể tìm được x’ sao cho
h(x’) bằng giá trị y cho trước
- (v) Tính chống xung đột yếu : Với mọi dữ liệu đầu vào x1 cho trước không thể tìm được bất kỳ giá trị x2 nào (x2 khác x1) mà h(x2) = h(x1)
- (vi) Tính chống xung đột mạnh : Không thể tính toán để tìm được hai dữ liệu đầu vào x1 và x2 phân biệt sao cho chúng có cùng giá trị băm (h(x1) = h(x2))
2.1.3 Phân loại Chữ ký số
Có nhiều loại chữ ký tùy theo cách phân loại, sau đây xin giới thiệu một số cách
Trang 222.1.3.1 Phân loại chữ ký theo khả năng khôi phục thông điệp gốc
Chữ ký có thể khôi phục thông điệp gốc
Là loại chữ ký, trong đó người nhận có thể khôi phục lại được thông điệp gốc, đã
được “ký” bởi “chữ ký” này
Ví dụ: Chữ ký RSA là chữ ký khôi phục thông điệp, sẽ trình bày trong mục sau
Chữ ký không thể khôi phục thông điệp gốc
Là loại chữ ký, trong đó người nhận không thể khôi phục lại được thông điệp gốc, đã được “ký” bởi “chữ ký” này
Ví dụ: Chữ ký Elgamal là chữ ký không thể khôi phục, sẽ trình bày trong mục sau
2.1.3.2 Phân loại chữ ký theo mức an toàn
Chữ ký “không thể phủ nhận”:
Để tránh việc chối bỏ chữ ký hay nhân bản chữ ký để sử dụng nhiều lần, người gửi chữ ký cũng tham gia trực tiếp vào việc kiểm thử chữ ký Điều đó được thực hiện bằng một giao thức kiểm thử, dưới dạng một giao thức mời hỏi và trả lời
Ví dụ: Chữ ký không phủ định (Chaum - van Antverpen), trình bày trong mục sau
Chữ ký “một lần”
Để bảo đảm an toàn, “Khóa ký” chỉ dùng 1 lần (one- time) trên 1 tài liệu
Ví dụ: Chữ ký một lần Lamport Chữ ký Fail - Stop (Van Heyst & Pedersen)
2.1.3.3 Phân loại chữ ký theo ứng dụng đặc trưng
Chữ ký “mù” (Blind Signature)
Chữ ký “nhóm” (Group Signature)
Chữ ký “bội” (Multy Signature)
Chữ ký “mù nhóm” (Blind Group Signature)
Chữ ký “mù bội” (Blind Multy Signature)
Trang 232.2 HỆ MÃ HÓA KHÓA CÔNG KHAI RSA
2.2.1 Mô tả sơ lược về mã hóa RSA
Bài toán: A muốn gửi cho B một thông tin mật mà A muốn duy nhất B có thể đọc
được Để làm được điều này, B gửi cho A một chiếc hộp có khoá đã mở và giữ lại chìa khoá A nhận chiếc hộp, cho vào đó một tờ giấy viết thư bình thường và khoá lại (lúc này ngay cả A cũng không thể đọc lại hay sửa thông tin trong thư được nữa) Sau
đó A gửi chiếc hộp lại cho B B mở hộp với chìa khoá của mình và đọc thông tin trong thư
Trong ví dụ này, chiếc hộp với khoá mở đóng vai trò khoá công khai, chiếc chìa khoá chính là khoá riêng
Độ mật của RSA được dựa trên cơ sở là hầu như không có khả năng khôi phục hai số nguyên tố p và q từ tích n = p.q của chúng ít nhất là theo với các thuật toán phân tích
ra thừa số hiện đã biết Mặt khác, các số nguyên tố lớn ngẫu nhiên có thể được tạo sinh nhanh chóng
Thuật toán RSA có hai khóa: khóa công khai (hay khóa công cộng) và khóa bí mật (hay khóa cá nhân) Mỗi khóa là những số cố định sử dụng trong quá trình mã hóa và giải mã Khóa công khai được công bố rộng rãi cho mọi người và được dùng để mã hóa Những thông tin được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa bí mật tương ứng Nói cách khác, mọi người đều có thể mã hóa nhưng chỉ có người biết khóa cá nhân (bí mật) mới có thể giải mã được
2.2.2 Phương pháp tạo mã và giải mã trong mã hóa công khai RSA
Trang 24iv) Tìm số d thoả mãn: e.d (mod ϕ(n)) = 1, 1<d< ϕ(n) bằng giải thuật
Euclidean mở rộng
Bộ ba (n; e; d) là chìa khoá của hệ mã, với khoá công khai của B là (n; e) và khoá riêng của B là (n; d)
b Mã hóa
i) Sử dụng khoá công khai của B là (n, e)
ii) Biểu diễn thông điệp dưới dạng số, giả sử là số nguyên m sao cho: m ∈
[0, n-1]
iii) Tính C = m e mod n iv)
Gửi bản mã C cho B
c Giải mã
i) Dùng khoá riêng d của B tính m = C d mod n
ii) Khôi phục thông điệp từ hàm ngược của hàm số hoá để có P
2.2.3 Đặc trưng của mã hóa công khai RSA
Đặc trưng của hệ mã hóa công khai RSA:
- Không cần phải thiết lập một kênh bảo vệ phức tạp để truyền khoá như trong
hệ mã bí mật
- Cặp khoá công khai được tạo ra theo một phương pháp đặc biệt có quan hệ với nhau và được chọn trong nhiều khoá có thể (trong đó nếu khoá này dùng để
mã hoá thì khoá kia dùng để giải mã)
- Ứng với một cặp p, q có thể chọn được nhiều bộ khoá công khai (n; e; d)
- Mọi người trong hệ thống nếu nhận được bản mật C thì cũng không thể biết được bản rõ P Với việc chỉ biết khoá mã hoá ke và căn cứ vào các thông tin
về thuật toán thì không thể tìm ra khó giải mã kd trong thời gian chấp nhận được (kể cả dùng hệ thống hiện đại nhất để tính toán)
Hình 2.2 mô tả quá trình mã hóa và giải mã giữa A và B sử dụng thuật toán mã hóa công khai RSA
Trang 25Hình 2.2 Quá trình mã hóa và giải mã bằng thuật toán RSA
2.2.4 Độ an toàn của mã hóa RSA
Độ an toàn của hệ mật RSA thể hiện qua hai yếu tố:
- Tính bảo mật của mã hóa RSA, chủ yếu dựa vào việc bảo vệ khoá riêng d và giữ bí mật các số nguyên tố p và q
- Tính an toàn của hệ RSA dựa vào độ khó của bài toán RSA và độ phức tạp của bài toán phân tích một số thành các thừa số nguyên tố
Với việc phân tích thừa số nguyên tố, giả sử khóa có độ dài128 bit là một số giữa 1
và một số rất lớn : 340.282.366.920.938.000.000.000.000.000.000.000.000 Có khoảng ≈ n / ln(n) = 2128 / ln(2128) ≈
3.835.341.275.459.350.000.000.000.000.000.000.000 số nguyên tố giữa 1 và số này Giả sử nếu mỗi giây có thể tính được 1012 số Cần hơn
121,617,874,031,562,000 năm (khoảng 10 triệu lần tuổi của vũ trụ) để tìm ra khóa
Các cách thức tấn công mã hóa RSA:
- Phương pháp vét cạn : Thử tất cả các khóa riêng có thể Phụ thuộc vào độ dài khóa và gần như không thể
- Phương pháp phân tích toán học : Phân tích n thành 2 thừa số nguyên tố p và
q Như trên ta đã nói việc phân tích một số ra số nguyên tố là rất khó khăn, với tốc độ của máy tính hiện nay cũng không thể đáp ứng được việc phân tích số nguyên tố lớn trong thời gian đa thức nếu các số p, q được chọn là lớn
Trang 26- Xác định trực tiếp (n) không thông qua p và q
- Xác định trực tiếp d không thông qua (n)
- Phương pháp phân tích thời gian : Dựa trên việc đo thời gian giải mã Đây là một cách dựa vào thời gian giải mã Phương pháp phân tích thời gian có thể loại bỏ bằng cách làm nhiễu bằng cách cho thời gian giải mã của thông báo bất kỳ là gần như không đổi
2.2.5 Các hình thức tấn công đối với mã hóa RSA
2.2.5.1 Tấn công trong quá trình tạo khó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 và p và q 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
2.2.5.2 Tấn công liên quan đến tốc độ
RSA có tốc độ thực hiện chậm hơn đáng kể so với DES và các thuật toán mã hóa đối xứng khác Trên thực tế, Bob sử dụng một thuật toán mã hóa đối xứng nào đó để mã hóa văn bản cần gửi và chỉ sử dụng RSA để mã hóa khóa để giải mã (thông thường khóa ngắn hơn nhiều so với văn bản)
2.2.5.3 Tấn công vào quá trình phân phối khoá
Quá trình phân phối khóa cần chống lại được tấn công đứng giữa (man-in-the-middle attack) Giả sử Eve có thể gửi cho Bob một khóa bất kỳ và khiến Bob tin rằng đó là khóa (công khai) của Alice Đồng thời Eve có khả năng đọc được thông tin trao đổi giữa Bob và Alice Khi đó, Eve sẽ gửi cho Bob khóa công khai của chính mình (mà Bob nghĩ rằng đó là khóa của Alice) Sau đó, Eve đọc tất cả văn bản mã hóa do Bob gửi, giải mã với khóa bí mật của mình, giữ 1 bản copy đồng thời mã hóa bằng khóa công khai của Alice và gửi cho Alice Về nguyên tắc, cả Bob và Alice đều không phát hiện ra sự can thiệp của người thứ ba Các phương pháp chống lại dạng tấn công này
Trang 27thường dựa trên các chứng thực khóa công khai (digital certificate) hoặc các thành phần của hạ tầng khóa công khai (public key infrastructure - PKI)
2.2.5.4 Tấn công dựa trên thời gian
Nếu kẻ tấn công nắm đủ thông tin về phần cứng thực hiện mã hóa và xác định được thời gian giải mã đối với một số bản mã lựa chọn thì có thể nhanh chóng tìm ra khóa
d Dạng tấn công này có thể áp dụng đối với hệ thống chữ ký điện tử sử dụng RSA Một dạng tấn công thực tế: phân tích thừa số RSA dùng mạng máy tính (Máy chủ web dùng SSL)
Để chống lại tấn công dựa trên thời gian là đảm bảo quá trình giải mã luôn diễn ra trong thời gian không đổi bất kể văn bản mã
2.2.5.5 Tấn công lựa chọn thích nghi bản mã
Dạng tấn công lựa chọn thích nghi bản mã (adaptive chosen ciphertext attack) có thể thực hiện trên thực tế đối với một văn bản mã hóa bằng RSA Văn bản này được mã hóa dựa trên tiêu chuẩn PKCS #1 v1, một tiêu chuẩn chuyển đổi bản rõ có khả năng kiểm tra tính hợp lệ của văn bản sau khi giải mã Do những khiếm khuyết của PKCS
#1, Bleichenbacher có thể thực hiện một tấn công lên bản RSA dùng cho giao thức SSL (tìm được khóa phiên) Do phát hiện này, các mô hình chuyển đổi an toàn hơn như chuyển đổi mã hóa bất đối xứng tối ưu (Optimal Asymmetric Encryption Padding) được khuyến cáo sử dụng Đồng thời phòng nghiên cứu của RSA cũng đưa
ra phiên bản mới của
PKCS #1 có khả năng chống lại dạng tấn công nói trên
2.3 CHỮ KÝ SỐ RSA
2.3.1 Đặt vấn đề
Trong trao đổi thông tin, thông điệp được truyền đi giữa bên gửi và bên nhận cần có các tiêu chuẩn cần xác minh, đó chính là xác thực Xác thực thông báo là một kỹ thuật trong mật mã học để xác minh tính đúng đắn của thông báo đuợc gửi Một thông báo đuợc xác thực khi thỏa mãn các yêu cầu :
Trang 28- Thông báo có nguồn gốc rõ ràng, chính xác
- Nội dung thông báo toàn vẹn không bị thay đổi
- Thông báo được gửi đúng trình tự và thời điểm
Xác thực thông báo bảo vệ hai bên tham gia trong quá trình trao đổi thông tin từ kẻ thứ ba Tuy nhiên, xác thực thông báo không có tác dụng khi bên gửi và bên nhận muốn gây hại cho nhau:
- Bên nhận giả mạo thông báo của bên gửi
- Bên gửi chối là đã gửi thông báo đến bên nhận
Chữ ký số không những giúp xác thực thông báo mà còn bảo vệ mỗi bên khỏi bên kia
Ở phần này cung cấp những đề xuất để triển khai mật mã khóa công khai dựa trên thuật toán RSA:
2.3.2 Các biểu tượng
c – Đại diện dữ liệu mã hóa, một số giữa 0 và n-1
C – Dữ liệu mã hóa, một chuỗi số hệ 8
d – Số mũ khóa riêng RSA
di– Số mũ hàm CRT của thừa số cộng ri, một số nguyên dương
e*di≡ 1 (mod(ri-1)), i=3, …, u
dP – Số mũ hàm CRT của p, môt số nguyên dương
Trang 29e*dP≡1(mod(p-1))
dQ – Số mũ hàm CRT của q, một số nguyên dương
e*dQ≡1(mod(q-1))
e – Số mũ công khai RSA
EM – Thông điệp được mã hóa, một xâu hệ 8
emBits – Chiều dai theo bits của thông điệp được mã hóa EM
emLen – Chiều dài theo hệ 8 của thông điệp được mã hóa EM
GCD ( , ) – Hàm ước số chung lớn nhất của hai số không âm
Hash – Hàm băm
hLen – Chiều dài dữ liệu đầu ra theo hệ 8 của hàm băm Hash
k – Chiều dài theo hệ 8 của số modulus RSA n
K – Khóa riêng RSA
L – Nhãn RSAES-OAEP tùy chọn, một chuỗi hệ 8
LCM – Hàm bội số chung nhỏ nhất của một danh sách số nguyên không âm
m – Đại diện thông điệp, một số nguyên dương giữa 0 và n-1
M – Thông điệp, một chuỗi hệ 8
mask – Dữ liệu ra hàm MGF, một xâu hệ 8
maskLen – Chiều dài của xâu hệ 8 mask
MGF – Hàm sinh mask
mgfSeed – Nhân, từ đó mask được sinh, một xâu hệ 8
mLen – Chiền dài theo hệ 8 của một thông điệp M
n – Số modulus RSA, n= r1*r2*…*ru, u>2
Trang 30(n, e) – Khóa công khai RSA
p, q – Hai thừa số nguyên tố của số modulus n RSA
qInv – Hệ số CRT, một số nguyên dương nhỏ hơn p
sLen – Chiều dài hệ 8 của khóa biến thiên (salt) EMSA-PSS
ti – Hệ số CRT của thừa số nguyên tố cộng ri, một số nguyên dương nhỏ hơn ri
r1*r2*….*ri-1*ti≡1(mod ri), i=3, …, u
u – Số của các Thừa số nguyên tố của hàm modulus RSA, u>2
x – Một số nguyên không âm
X– Một chuỗi hệ 8 phù hợp với x
xLen – chiều dài của chuỗi hệ 8 X
0x – Dấu chỉ đại diện hệ hexa của một số hệ 8 hoặc một chuỗi hệ 8; “0x48” biểu thị một số hệ 8 với giá trị hexa 48; “(0x)48 09 0e” biểu thị một chuỗi ba số hệ 8 liên tiếp với giá trị hexa theo trình tự 48, 09 và 0e
Trang 312.3.3 Các loại khóa
Hai loại khóa được sử dụng trong các số nguyên tố và lược đồ được định nghĩa trong
tài liệu này là Khóa công khai RSA và Khóa riêng RSA Khóa công khai RSA và
khóa bí mật RSA tạo nên cặp khóa RSA
Đặc tả này hỗ trợ cái gọi là RSA đa nguyên tố ở đó số modulus có thể có nhiều hơn hai thừa số nguyên tố Lợi ích của RSA đa nguyên tố là chi phí tính toán thấp hơn cho giải mã và kiểm tra chữ ký số, được cung cấp mà thuật toán CRT được sử dụng Hiệu năng có thể đạt được trên các nền tảng bộ xử lý đơn tốt hơn, nhưng mở tộng rất lớn trên các nền tảng đa bộ xử lý, nơi mà các số mũ modulus bao gồm có thể dược
xử lý song song
2.3.3.1 Khóa công khai RSA
Khóa công khai RSA gồm 2 thành phần:
- n – Số modulus RSA, một số nguyên dương
- e – Số mũ công khai RSA, một số nguyên dương
Một khóa công khai hợp lệ, số Modulus n RSA là kết quả của ri các số nguyên tố riêng biệt u, i=1, 2, …, u ở đó u>=2, và số mũ công khai e RSA là một số nguyên giữa 3 và n-1 thỏa mãn GCD(e, λ(n))≡1, ở đó λ(n)≡LCM(r1-1, …, ru-1) Theo quy ước, hai số nguyên tố đầu tiên r1 và r2 cũng có thể ám chỉ p và q theo trình tự
2.3.3.2 Khóa riêng RSA
Khóa riêng RSA có thể có một trong hai đại diện
- Đại diện đầu tiên bao gồm một cặp (n, d), ở đó các thành phần có nghĩa sau đây:
n – số modulus RSA, một số nguyên dương
d – số mũ riêng RSA, một số nguyên dương
- Đại diện thứ 2 bao gồm bộ năm (p, q, dP, dQ, qInv) và một chuỗi ba số (ri, di, ti), i= 3, …, u, mot cho mỗi số nguyên tố không trong bộ năm, ở đó các thành phần có ý nghĩa sau đây:
Trang 32 p – Thừa số đầu tiên, một số nguyên dương
q – Thừa số thứ hai, một số nguyên dương
dP – Số mũ CRT của thừa số đầu tiên, một số nguyên dương
dQ – Số mũ CRT của thừa số thứ 2, một số nguyên dươn
qInv – Hệ số CRT đầu tiên, một số nguyên dương
ri– thừa số thứ i, một số nguyên dương
di– Số mũ CRT của thừa số thứi, một số nguyên dương
ti– hệ số CRT của thừa số thứ i, một số nguyên dương
Trong một khóa riêng RSA hợp lệ với biểu diện thứ nhât, số modulus n RSA là giống như trong khóa công khai RSA tương ứng và là kết quả của ri các số nguyên tố u, i=1, 2, …, u, ở đó u>2 Số mũ khóa riêng d RSA là một số nguyên dương nhỏ hơn n thỏa mãn: e*d ≡ 1 (mod , λ(n)) (2.1)
Ở đó e phù hợp với số mũ công khai RSA và λ(n) được định nghĩa như trên
Trong một khóa riêng RSA hợp lệ với biểu diễn thứ 2, hai thừa số p và q là hai thừa
số đầu tiên của số Modulus n RSA (tức là, r1 và r2), số mũ dP và dQ CRT là hai số nguyên dương nhỏ hơn p và q thỏa mãn theo trình tự:
e*dP ≡ 1 (mod (p-1)) (2.2) e*dQ ≡ 1 (mod (q-1)) (2.3)
và hệ số qInv hàm CRT là một số nguyên dương nhỏ hơn p thỏa mãn:
q*qInv ≡ 1 (mod p) (2.4) Nếu u >2, biếu diễn này sẽ bao gồm một hoặc nhiều bộ ba (ri, di, ti), i=3, …, u Hệ
số ri là các thừa số nguyên tố bổ xung của số Modulus n RSA Mỗi số mũ di CRT (i=3, …, u) thỏa mãn:
e*di≡ 1 (mod(ri-1)) (2.5) Mỗi hệ số CRT ti (i=3, …, u) là một số nguyên dương nhỏ hơn ri thỏa mãn
Trang 33Ri*ti≡ 1(mod ri) trong đó Ri=r1*r2*…ri-1 (2.6)
2.3.4 Các nguyên hàm mật mã
Các nguyên hàm mật mã là các toán tử toán học cơ bản ở đó các lược đồ mật mã có thể được xây dựng Chúng được sử dụng triển khai trong phần cứng cũng như các module phần mềm
Bốn loại nguyên hàm được chỉ ra trong tài liệu này, được tổ chức theo cặp: Mã hóa
và giải mã; ký và kiểm tra chữ ký
Đặc tả về các nguyên hàm thừa nhận rằng các điều kiện cụ thể nào có thể đạt bằng các đầu vào, trong trường hợp này là khóa các Khóa riêng và khóa công khai hợp lệ
2.3.4.1 Các nguyên hàm mã hóa và giải mã
Một nguyên hàm mã hóa tạo ra một đại diện mã hóa từ một đại diện thông điệp qua một khóa công khai, và một nguyên hàm giải mã phục hồi lại thông điệm đại diện từ đại diện mã hóa qua khóa riêng phù hợp
Một cặp nguyên hàm mã hóa và giải mã được sử dụng trong các lược đồ mã hóa được định nghĩa trong tài liệu này: RSAEP/RSADP RSAEP và RSADP có toán tử giống hệt nhau, với các khóa khác nhau đầu vào
RSAEP
Đầu vào: (n e) – Khóa công khai RSA
m – Đại diện thông điệm, một số nguyên giữa 0 và n-1
Đầu ra: c – Đại diện mã hóa, một số nguyên giữa 0 và n-1
Lỗi: “Đại diện thông điệp ngoài phạm vi”
Giả định: Khóa công khai RSA (n, e) hợp lệ
Các bước:
Trang 341 Nếu đại diện thông điệp m không nằm giữa 0 và n-1, kết quả “đại diện thông điệp ngoài phạm vị” và dừng lại
• Một bộ năm (p, q, dP, dQ, qInv) và một chỗi ba rỗng (ri, di,ti), i=3, …, u)
c – Đại diện bản mã, một số nguyên giữa 0 và n-1
Đầu ra: m – Đại diện bản thông điệp, một số giữa 0 và n-1
Lỗi: “Đại diện thông điệp ngoài phạm vi”
Giả định: Khóa riêng RSA K hợp lệ
Các bước:
1 Nếu đại diện bản mã c không nằm giữa 0 và n-1, kết quả “Đại diện bản mã ngoài phạm vi” và dừng thuật toán
2 Đại diện thông điệm m được tính toán như sau:
Nếu bộ đầu tiên (n, d) của K được sử dụng, để m≡cd modn
Nếu bộ thứ 2 (d, p, dP, dQ, qInv) và (ri, di, ti) của K được sử dụng, xử lý như sau:
Để m1≡ cdP mod p và m2≡ cdQ mod q
Nếu u>2, cho mi≡ cdi mod ri, i=3, …, u
Cho h = m1-m2*qInv mod p
Cho m=m2+q*h
Trang 35 Nếu u>2, cho R=ri và For i=3
Cho R=R*ri-1
Cho h=(mi-m)*ti(mod ri)
Cho m = m+R*h
Kết quả m
3.3.4.2 Các nguyên hàm ký số và kiểm tra chữ ký
Một nguyên hàm ký tạo ra một đại diện ký từ một thông điệp qua khóa riêng, và một nguyên hàm kiểm tra ký số phục hồi thông điệp từ một đại diện ký số qua khóa công khai tương ứng Một cặp nguyên hàm ký và kiểm tra chữ ký được sử dụng trong lược
đồ ký số được định nghĩa trong tài liệu này và được đặc tả ở đây: RSASP1/RSAVP1 Các toán tử toán hoạc chính trong mỗi nguyên hàm là việc mũ hóa như trong các nguyên hàm mã hóa và giải mã ở các phần trên RSASP1 và RSAVP1 giống như RSADP và RSAEP ngoại trừ tên của các đối số đầu vào đầu ra; Chúng được phân biệt do chúng được sử dụng trong các mục tiêu khác nhau
RSASP1
RSASP1 (K,m)
Đầu vào: K – Khóa riêng RSA, ở đó K có một trong các dạng sau đây
• Một cặp (n, d)
• Một bộ năm (p, q, dP, dQ, qInv) và một chỗi ba rỗng (ri, di,ti), i=3, …, u)
m – Đại diện thông điệp, một số nguyên giữa 0 và n-1
Đầu ra: s – Đại diện chữ ký, một số giữa 0 và n-1
Lỗi: “Đại diện thông điệp ngoài phạm vi”
Giả định: Khóa riêng RSA K hợp lệ