Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vnLỜI CAM ĐOAN Tôi xin cam đoan Những nội dung trong luận văn “HẠ TẦNG KHÓA CÔNG KHAI, XÂY DỰNG CỔNG TRUYỀN THÔ
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
VÀ TRUYỀN THÔNG
ĐÀO QUANG HUYNH
HẠ TẦNG KHÓA CÔNG KHAI, XÂY DỰNG CỔNG TRUYỀN THÔNG THANH TOÁN
SONG PHƯƠNG ỨNG DỤNG CHỮ KÝ SỐ
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên, 2012
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
VÀ TRUYỀN THÔNG
ĐÀO QUANG HUYNH
HẠ TẦNG KHÓA CÔNG KHAI, XÂY DỰNG CỔNG TRUYỀN THÔNG THANH TOÁN
Thái Nguyên, 2012
Trang 3Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
LỜI CAM ĐOAN
Tôi xin cam đoan Những nội dung trong luận văn “HẠ TẦNG KHÓA CÔNG KHAI, XÂY DỰNG CỔNG TRUYỀN THÔNG THANH TOÁN SONG PHƯƠNG ỨNG DỤNG CHỮ KÝ SỐ” là do tôi thực hiện dưới sự hướng dẫn trực tiếp của Thầy TSKH Nguyễn Minh Hải
Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố
Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu trách nhiệm hoàn toàn
Thái Nguyên, tháng 10 năm 2012
Đào Quang Huynh
Trang 4Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn chân thành nhất tới TSKH Nguyễn Minh Hải, Thầy
đã cho tôi những định hướng, tận tình chỉ bảo giúp đỡ tôi những ý kiến rất quý báu để tôi hoàn thành luận văn tốt nghiệp này
Tôi xin cảm ơn Trường Đại Học Công Nghệ Thông tin và Truyền thông - Đại Học Thái Nguyên đã hết sức tạo điều kiện cho tôi trong quá trình học, làm và hoàn thành khóa luận này
Xin chân thành cảm ơn quý Thầy Cô trong khoa Sau đại học Trường Đại học Công nghệ Thông tin và Truyền thông – ĐH Thái Nguyên đã nhiệt tình giảng dạy, trang bị cho tôi những kiến thức quý báu trong suốt thời gian học tập tại trường
Tôi xin tỏ lòng biết ơn sâu sắc tới các thầy cô, bạn bè đã dìu dắt, giúp đỡ tôi tiến bộ trong suốt quá trình làm khóa luận tốt nghiệp
Xin gửi lời cảm ơn tới gia đình, những người bạn của tôi đã động viên, giúp đỡ tôi trong suốt quá trình học tập và hoàn thành luận văn
Trang 5Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
MỤC LỤC
LỜI NÓI ĐẦU 6
I NỘI DUNG NGHIÊN CỨU CỦA ĐỀ TÀI 7
1 Đối tượng và phạm vi nghiên cứu 7
2 Hướng nghiên cứu của đề tài 7
3 Phương pháp nghiên cứu 7
4 Ý nghĩa khoa học của đề tài 7
II BỐ CỤC CỦA LUẬN VĂN 8
CHƯƠNG 1 TỔNG QUAN VỀ KHÓA CÔNG KHAI VÀ CHỮ KÝ SỐ 9
1.1 Mật mã học khoá công khai 9
1.1.1 Mật mã học 9
1.1.1.1 Khóa đối xứng 10
1.1.1.2 Khóa công khai 11
1.1.1.3 Mục đích 11
1.1.2 Ứng dụng 13
1.2 Thuật toán và độ phức tạp thuật toán 14
1.2.1 Thuật toán 14
1.2.2 Độ phức tạp thuật toán 14
1.2.3 Phân tích thuật toán 15
1.2.3.1 Tính hiệu quả của thuật toán 15
1.2.3.2 Đánh giá thời gian thực hiện thuật toán 15
1.3 Hàm băm mật mã học 16
1.3.1 Hàm băm 16
1.3.2 Hàm băm mật mã học 16
1.3.3 Tính toàn vẹn dữ liệu 16
1.3.4 Một số hàm băm thông dụng 17
1.3.4.1 Thuật toán hàm băm MD5 17
1.3.4.2 Chuẩn băm an toàn SHS 19
CHƯƠNG 2 HẠ TẦNG KHÓA CÔNG KHAI VÀ CÁC THÀNH PHẦN 20
2.1 Hạ tầng khóa công khai 20
2.1.1 Hạ tầng khóa công khai là gì và một số khái niệm 20
2.1.1.1 Cấu trúc phân tầng của hệ thống khóa công khai 21
2.1.1.2 Mô hình xác thực khóa công khai 22
2.1.1.3 Khái niệm X.509 và PKCS 23
2.1.2 Một vài kiến trúc và công nghệ PKI hiện hành 25
2.1.2.1 Một số ứng dụng 25
2.1.2.2 Một số hệ thống PKI 25
2.2 Chữ ký số, thuật toán tạo và kiểm tra chữ ký số 26
2.2.1 Thuật toán chữ ký số RSA 26
2.2.2 Thuật toán chữ ký số DSA 29
2.3 Cấp phát và xác thực chứng thực số 32
2.3.1 Chứng thực số 32
2.3.2 Cấp phát chứng thực số 33
2.3.3 Thu hồi và cấp phát lại chứng thực số 34
2.3.4 Xác thực chứng thực số 34
Trang 6Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
CHƯƠNG 3 XÂY DỰNG CỔNG TRUYỀN THÔNG THANH TOÁN SONG
PHƯƠNG VÀ ỨNG DỤNG CHỮ KÝ SỐ 36
3.1 Tổng quan hệ thống 36
3.1.1 Quy định chung 36
3.1.1.1 Nội dung thanh toán 36
3.1.1.2 Phương thức thanh toán lãi, phí trong TTĐTSP 38
3.1.1.3 Thời gian làm việc của hệ thống TTĐTSP 38
3.1.2 Quy trình nghiệp vụ 40
3.1.2.1 Tài khoản hạch toán 40
3.1.2.2 Quy trình xử lý điện 40
3.1.2.3 Sai lầm, sự cố và xử lý 41
3.1.3 Quyết toán và đối chiếu 42
3.1.3.1 Quyết toán vốn 42
3.1.3.2 Đối chiếu 43
3.2 Đặc tả kỹ thuật kế nối 44
3.2.1 Mô hình kỹ thuật kết nối 45
3.2.1.1 Yêu cầu chung 45
3.2.1.2 Mô hinh kỹ thuật kết nối sử dụng IBM Message Queue 46
3.2.1.3 Mô hinh kỹ thuật kết nối sử dụng Webservice 47
3.2.2 Đặc tả message 48
3.2.3 Cấu trúc message 49
3.2.3.1 Cấu trúc message Header 50
3.2.3.2 Yêu cầu đối với Header 51
3.2.3.3 Cấu trúc của message body 53
3.3 Một số lệnh thanh toán 53
3.3.1 Lệnh thanh toán MT103 53
3.3.1.1 Quy trình xử lý 53
3.3.1.2 Luồng message 54
3.3.1.3 Mô tả chi tiết 54
3.3.2 Điện tra soát MT195 62
3.3.2.1 Quy trình xử lý 62
3.3.2.2 Luồng message 62
3.3.2.3 Mô tả chi tiết 63
3.3.3 Điện tra soát MT196 65
3.3.3.1 Quy trình xử lý 65
3.3.3.2 Luồng message 66
3.3.3.3 Mô tả chi tiết 66
3.4 Cài đặt chữ ký số và xác thực chữ ký số 68
3.4.1 Cài đặt hàm ký số 68
3.4.2 Cài đặt hàm xác thực chữ ký số 70
3.4.3 Một số giao diện chương trình 72
3.4.3.1 Kiểm tra Queue 72
3.4.3.2 Ký và Put điện thanh toán lên Queue 73
3.4.3.3 Get điện thanh toán trên Queue về và xác thực chữ ký 74
KẾT LUẬN 75
TÀI LIỆU THAM KHẢO 76
Trang 7Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
DANH MỤC TỪ VIẾT TẮT
CA Certificate Authority
COT Cut Off Time
DSA Digital Signature Algorithm
H Hash function
HSM Hardware Security Module
IBPS Inter Bank Payment System
NH Ngân Hàng
NHA Ngân Hàng A
NHB Ngân Hàng B
MD5 Message Digest 5
PKI Public Key Infrastructure
PKCS Public Key Cryptography Standards
RA Registration Authority
RFC Request For Comments
RSA Rivest Shamir Adleman
SHA Secure Hash Algorithm
SHS Secure Hash Standard
TTĐTSP Thanh Toán Điện Tử Song Phương
TTSP Thanh Toán Song Phương
Trang 8Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
LỜI NÓI ĐẦU
Trong xu hướng phát triển của thế giới và Việt Nam hiện nay, giao dịch qua mạng Internet đang đem đến sự bùng nổ thông tin một cách mạnh mẽ như việc ra đời Luật Giao dịch điện tử ngày 29 tháng 11 năm 2005 và Nghị định Chính phủ số 26/2007/NĐ-CP quy định chi tiết thi hành luật giao dịch điện tử về chữ Ký số và dịch vụ chứng thực chữ Ký số Để điều chỉnh, giải quyết các vấn đề phát sinh trong giao dịch điện tử và đảm bảo tính pháp lý của giao dịch điện tử
Không nằm ngoài xu hướng đó các đơn vị Thanh toán và đặc biệt là trong lĩnh vực Tài chính Ngân hàng các dạng chứng thực và mã hóa thông tin sẽ được chuyển sang nền tảng mã hóa công khai và sử dụng chữ ký số định danh
Nắm bắt tình hình, xu hướng kết hợp với với được sự định hướng tận tình của TSKH Nguyễn Minh Hải tôi đã chọn đề tài này có cơ hội tìm hiểu sâu rộng hơn trong Hạ tầng khóa công khai và xây dựng cổng truyền thông ứng dụng chữ ký số cho hệ thống Thanh toán song phương Trong ngân hàng hiện nay thay thế các phương pháp mã hóa cổ điển, giải thuật không công khai
Trang 9Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
I NỘI DUNG NGHIÊN CỨU CỦA ĐỀ TÀI
1 Đối tượng và phạm vi nghiên cứu
Tìm hiểu quy trình nghiệp vụ chuyển tiền điện tử và cấu trúc điện thanh toán theo chuẩn SWIFT
Nghiên cứu hạ tầng khóa công khai, chính sách cấp phát, chứng thực, thu hồi kóa, dịch vụ chứng thực khóa công khai
Xây dựng cổng truyển thông nhận điện thanh toán đến, kiểm tra chữ ký và
đi ký trên điện thanh toán đi và gửi điện thanh toán đi
2 Hướng nghiên cứu của đề tài
Một số điện thanh toán, yêu cầu nghiệp vụ thanh toán, điện phản hồi theo chuẩn quốc tế - SWIFT
Mô hình truyền nhận dữ liệu hướng dịch vụ SOA, message queue, chứng thực khóa công khai
Xây dựng cổng thanh toán song phương trong Ngân hàng cho các điện đi
và kiểm tra chữ ký số cho điện đến ứng dụng chữ ký số
3 Phương pháp nghiên cứu
Thu thập, tìm hiểu và phân tích yêu cầu trong thanh toán, mô hình thanh toán điện tử liên Ngân hàng, quy định giá trị pháp lý của chữ ký số trong giao dịch điện tử
Tìm hiểu yêu cầu đảm bảo tính bảo mật trong thanh toán, đảm bảo tính tin cậy trong truyền thông
Kết hợp với các nghiên cứu ứng dụng trước đây trong quá trình chuẩn hóa
dữ liệu thanh toán đồng bộ theo chuẩn SWIFT
4 Ý nghĩa khoa học của đề tài
Trang 10Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Ứng dụng các tiêu chuẩn trong Thanh toán điện tử trong Ngân hàng
An toàn, bảo mật và tính nhất quán trong thanh toán điện tử của Ngân hàng
là một trong những vấn đề cấp thiết giúp cho các thanh toán viên và giao dịch viên vận hành hệ thống thanh toán theo một quy trình thống nhất Đảm bảo tính ổn định nhất quán trong truyền nhận điện đi và đến trong thanh toán được liên tục, an toàn, đồng bộ và tin cậy
Định danh nhất quán trong điện thanh toán đi với khóa bí mật định danh cho Ngân hàng gửi điện đi là duy nhất
II BỐ CỤC CỦA LUẬN VĂN
Luận văn được chia thành 3 chương chính với nội dung như sau:
Chương 1: Tổng quan về Khóa công khai và chữ ký số
Trình bầy tổng quát và một sô khái niệm cơ bản về mật mã và hạ tầng khóa công khai
Chương 2: Hạ tầng khóa công khai và các thành phần của hạ tầng khóa công khai
Giới thiệu về Hạ tầng khóa công khai, các thành phần của hạ tầng khóa công khai, chính sách cấp phất, chứng thực và thu hồi khóa, quy trình mã hóa và xác thực chữ ký số
Chương 3: Xây dựng cổng truyền thông trong Thanh toán song phương và ứng dụng chữ ký số
Giới thiệu về quy trình nghiệp vụ thanh toanh toán viên với hệ thống Thanh toán song phương và quy trình tác nghiệp trên hệ thống
Xây dựng cổng truyền thông cho Hệ thống Thanh toán song phương ứng dụng chữ ký số cho các điện thanh toán với một số điện thanh toán MT103, MT195, MT196
Trang 11Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
CHƯƠNG 1 TỔNG QUAN VỀ KHÓA CÔNG KHAI VÀ
tử hay tiền điện tử Ngoài ra, những người không có nhu cầu thiết yếu đặc biệt về tính bí mật cũng sử dụng các công nghệ mật mã hóa, thông thường được thiết kế và tạo lập sẵn trong các cơ sở hạ tầng của công nghệ tính toán
và liên lạc viễn thông
Mật mã học là một lĩnh vực liên ngành, được tạo ra từ một số lĩnh vực khác Các dạng cổ nhất của mật mã hóa chủ yếu liên quan với các kiểu mẫu trong ngôn ngữ Gần đây thì tầm quan trọng đã thay đổi và mật mã hóa sử dụng và gắn liền nhiều hơn với toán học, cụ thể là toán học rời rạc, bao gồm các vấn đề liên quan đến lý thuyết số, lý thuyết thông tin, độ phức tạp tính toán, thống kê và tổ hợp Mật mã hóa cũng được coi là một nhánh
Trang 12Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
của công nghệ, nhưng nó được coi là không bình thường vì nó liên quan đến các sự chống đối ngầm Mật mã hóa là công cụ được sử dụng trong an ninh máy tính và mạng
1.1.1.1 Khóa đối xứng
Thuật toán khóa đối xứng là những thuật toán hoặc là sử dụng cùng một khóa cho việc mật mã hóa và giải mật mã hoặc là khóa (thứ hai) sử dụng để giải mật mã có thể dễ dàng tính được từ khóa (thứ nhất) đã dùng để mật mã hóa Các thuật ngữ khác bao gồm mật mã hóa khóa cá nhân, mật mã hóa một khóa và mật mã hóa khóa đơn
Khóa đối xứng có thể nhóm thành mật mã khối và mật mã luồng Mật mã luồng mật mã hóa 1 bit tại một thời điểm, ngược lại với mật mã khối là phương thức cho phép thực hiện trên một nhóm các bit ("khối") với độ dài nào đó trong một lần Phụ thuộc vào phương thức thực hiện, mật mã khối
có thể được thực hiện như là mật mã luồng tự đồng bộ (chế độ CFB) Tương tự, mật mã luồng có thể làm để nó hoạt động trên các khối riêng rẽ của văn bản thường tại một thời điểm Vì thế, ở đây tồn tại sự đối ngẫu giữa hai cách thức này Các mật mã khối như DES, IDEA và AES, và mật
mã luồng như RC4, là những loại mật mã khóa đối xứng nổi tiếng nhất Các nền tảng mật mã học khác đôi khi cũng được phân loại như là mật mã học khóa đối xứng:
Các hàm băm mật mã sản sinh ra sự băm thông điệp Trong khi nó
có thể rất dễ tính toán nhưng nó lại rất khó để đảo ngược (hàm một chiều), cho dù các thuộc tính khác thông thường cũng là cần thiết MD5 và SHA-1 là các hàm băm nổi tiếng nhất
Các MAC (mã xác thực thông điệp), cũng được biết đến như là hàm băm có khóa, là tương tự như các hàm băm, ngoại trừ việc cần có khóa để tính toán việc băm Như tên gọi của nó, chúng được sử dụng
Trang 13Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
rộng rãi để xác thực thông điệp Chúng thông thường được xây dựng
từ các nền tảng khác, chẳng hạn từ mật mã khối, hàm băm không khóa hay mật mã luồng
1.1.1.2 Khóa công khai
Là một chuyên ngành của mật mã học cho phép người sử dụng trao đổi các thông tin mật mà không cần phải trao đổi các khóa chung bí mật trước đó Điều này được thực hiện bằng cách sử dụng một cặp khóa có quan hệ toán học với nhau là khóa công khai và khóa cá nhân (hay khóa bí mật)
Trong mật mã học khóa công khai, khóa cá nhân phải được giữ bí mật trong khi khóa công khai được phổ biến công khai Trong 2 khóa, một dùng
để mã hóa và khóa còn lại dùng để giải mã Điều quan trọng đối với hệ thống là không thể tìm ra khóa bí mật nếu chỉ biết khóa công khai
1.1.1.3 Mục đích
Tổ chức cấp khóa Chứng thư số
Sơ đồ cấp phát khóa riêng khóa và khóa công khai
Việc cấp phát khoá công khai và khoá bí mật thông qua thuật toán RSA (phổ biến) Thuật toán RSA tạo ra cặp khoá bằng các phương thức toán học từ 2 số nguyên tố bất kỳ đủ lớn
Mã hoá:
Trang 14Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Đào Quang Huynh
Mã hóa
be2093ed380d5bd26f 701a40a79f6142933c 21a9487a857a7d1fc4 bd568c816f
Mã hóa thông tin
Huynh mã hóa thông tin gửi cho Howard bằng khóa công khai của Howard Howard nhận đƣợc thông điệp từ Huynh kiểm tra thông điệp và giải mã bằng khóa bí mật của Howard
Mã hóa và ký số:
Đào Quang Huynh
Mã hóa + Ký
be2093ed380d5bd26f 701a40a79f6142933c 21a9487a857a7d1fc4 bd568c816f
Đào Quang Huynh Kiểm tra + Giải mã
Khóa công khai Huynh - Kiểm tra ký
Khóa công khai
Howard - Mã
Khóa bí mật Huynh - Ký
Khóa bí mật Howard - Giải mã
Mã hóa ký số
Trang 15Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
S = H(m)^d mod n (Tạo chữ kí số)
Cho phép kiểm tra một văn bản có phải đã được tạo với một khóa bí mật nào đó hay không
Tạo chữ kí số bằng khóa bí mật của Huynh
Và ký vào tin nhắn Huynh gửi cho Howard
Howard kiểm tra chữ ký số bằng khóa công khai của Huynh
S^e mod n = H(m) với H(m) là giá trị sau khi băm thông điệp
Huynh gửi cho Howard Chữ ký số đúng đắn đồng nghĩa với việc các thông tin Huynh gửi Howard là đúng đắn
Các đặc điểm trên còn có ích cho nhiều ứng dụng khác như: giao dịch tài chính, tiền điện tử, thương mại điện tử, chính phủ điện tử
Trang 16Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
1.2 Thuật toán và độ phức tạp thuật toán
1.2.1 Thuật toán
Thuật toán được hiểu là sự đặc tả chính xác của một dãy các bước có thể được thực hiện một cách máy móc để giải quyết một vấn đề Cần nhấn mạnh rằng, mỗi thuật toán có một dữ liệu vào (Input) và dữ liệu ra (Output) khi thực hiện thuật toán (thực hiện các bước đã mô tả), thuật toán cần cho
ra các kiểu dữ liệu ra tương ứng với các dữ liệu vào
1.2.2 Độ phức tạp thuật toán
Độ phức tạp không phải là độ đo chính xác lượng tài nguyên máy cần dùng, mà đặc trưng cho động thái của hệ thống khi kích thước đầu vào tăng lên Chẳng hạn với thuật toán có độ phức tạp tuyến tính (xem phần dưới), nếu kích thước đầu vào tăng gấp đôi thì có thể ước tính rằng tài nguyên cần dùng cũng tăng khoảng gấp đôi Nhưng với thuật toán có độ phức tạp bình phương thì tài nguyên sẽ tăng gấp bốn Mặt khác, với thuật toán có độ phức tạp hàm mũ thì chỉ cần công thêm 2 đơn vị vào độ lớn đầu vào cũng đã làm tài nguyên tăng gấp 4 lần (tức là theo cấp
số nhân) rồi
Các độ phức tạp thường gặp đối với các thuật toán thông thường gồm có:
Độ phức tạp hằng số số phép tính/thời gian chạy/dung lượng
bộ nhớ không phụ thuộc vào độ lớn đầu vào Chẳng hạn như cácthao tác hệ thống: đóng, mởfile
Độ phức tạptuyến tính số phép tính/thời gian chạy/dung lượng
bộ nhớ có xu hướng tỉ lệ thuận với độ lớn đầu vào Chẳng hạn như tính tổng các phần tử của một mảng một chiều
Trang 17Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Độ phức tạpđa thức với là đa thức bậc cao (từ 2 trở lên) Chẳng hạn như các thao tác tính toán với mảng nhiều chiều (tínhđịnh thứcma trận)
Độ phức tạplogarit (chú ý: bậc của nó thấp hơn so với ) chẳng hạnthuật toán Euclidđể tìmước số chung lớn nhất
Độ phức tạphàm mũ trường hợp này bất lợi nhất và sẽ rất phi thực tế nếu thực hiện thuật toán với độ phức tạp này
1.2.3 Phân tích thuật toán
1.2.3.1 Tính hiệu quả của thuật toán
Khi giải một vấn đề, chúng ta cần chọn trong số các thuật toán, một thuật
toán mà chúng ta cho là “tốt” nhất Cơ sở đánh chọn lựa thuật toán:
Thuật toán đơn giản, dễ hiểu, dễ cài đặt (dễ viết chương trình)
Thuật toán sử dụng tiết kiệm nhất các nguồn tài nguyên của máy tính
và đặc biệt chạy nhanh nhất có thể được
Tính hiệu quả của thuật toán bao gồm 2 nhân tố cơ bản:
Dung lượng không gian nhớ cần thiết để lưu giữ các dữ liệu vào, các kết quả tính toán trung gian và các kết quả của thuật toán
Thời gian cần thiết để thực hiện thuật toán (hay thời gian chạy)
1.2.3.2 Đánh giá thời gian thực hiện thuật toán
Thời gian chạy chương trình phụ thuộc vào các nhân tố chính sau:
Các dữ liệu vào
Chương trình dịch để chuyển chương trình nguồn thành mã máy
Tốc độ thực hiện của các phép toán của máy tính được sử dụng để chạy chương trình
Trang 18Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Giả sử T(n) là thời gian thực hiện thuật toán và f(n) là hàm xác định dương T(n)=O(f(n)) nếu các hằng số dương c và n0 sao cho T(n) c.g(n) với mọi n>=n0
1.3 Hàm băm mật mã học
1.3.1 Hàm băm
Hàm băm (tiếng Anh: hash function) là hàm sinh ra các giá trị băm tương
ứng với mỗi khối dữ liệu (có thể là một chuỗi kí tự, một đoạn tin nhắn ) Giá trị băm đóng vai trò gần như một khóa để phân biệt các khối dữ liệu, tuy nhiên, người ta chấp nhận hiện tượng trùng khóa hay còn gọi là đụng
độ và cố gắng cải thiện giải thuật để giảm thiểu sự đụng độ đó Hàm băm thường được dùng trong bảng băm nhằm giảm chi phí tính toán khi tìm một khối dữ liệu trong một tập hợp (nhờ việc so sánh các giá trị băm nhanh hơn
việc so sánh những khối dữ liệu có kích thước lớn)
1.3.2 Hàm băm mật mã học
Trong ngành mật mã học, một hàm băm mật mã học (tiếng Anh:
Cryptographic hash function) là một hàm băm với một số tính chất bảo mật
nhất định để phù hợp việc sử dụng trong nhiều ứng dụng bảo mật thông tin
đa dạng, chẳng hạn như chứng thực (authentication) và kiểm tra tính
nguyên vẹn của thông điệp (message integrity) Một hàm băm nhận đầu vào là một xâu ký tự dài (hay thông điệp) có độ dài tùy ý và tạo ra kết quả
là một xâu ký tự có độ dài cố định, đôi khi được gọi là tóm tắt thông điệp (message digest) hoặc chữ ký số (digital fingerprint)
1.3.3 Tính toàn vẹn dữ liệu
Hàm băm mật mã học là hàm băm và có tính chất là hàm 1 chiều Từ khối
dữ liệu hay giá trị băm đầu vào chỉ có thể đưa ra 1 giá trị băm duy nhất Như chúng ta đã biết đối với tính chất của hàm 1 chiều Một người nào đó
Trang 19Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
dù bắt được giá trị băm họ cũng không thể suy ngược lại giá trị, đoạn tin nhắn băm khởi điểm
Hàm băm thường được dùng trong bảng băm nhằm giảm chi phí tính toán khi tìm một khối dữ liệu trong một tập hợp Giá trị băm đóng vai trò gần
như một khóa để phân biệt các khối dữ liệu
Giá trị đầu vào (tin nhắn, dữ liệu ) bị thay đổi tương ứng giá trị băm cũng
bị thay đổi Do vậy nếu 1 kẻ tấn công phá hoại, chỉnh sửa dữ liệu thì server
có thể biết ngay lập tức
1.3.4 Một số hàm băm thông dụng
1.3.4.1 Thuật toán hàm băm MD5
MD5 (Message-Digest algorithm 5) là một hàm băm mật mã được sử dụng phổ biến, được thiết kể bởi Giáo sư Ronald L Rivest tại trường MIT vào năm 1991 để thay thế cho hàm băm trước đó là MD4 (1990) Là một chuẩn Internet (RFC 1321), MD5 đã được dùng trong nhiều ứng dụng bảo mật và cũng được dùng phổ biến để kiểm tra tính toàn vẹn của tập tin Cũng như các hàm băm khác như MD4 và SHS (Secure Hash Standard), MD5 là phương pháp có ưu điểm tốc độ xử lý rất nhanh, thích hợp với các thông điệp dài và cho ra giá trị băm dài 128 bit
Trong MD5, thông điệp ban đầu X sẽ được mở rộng thành dãy bit X có độ dài là bội của 512 Dãy bit X gồm các thành phần được sắp thứ tự như sau: Dãy bit X ban đầu, một bit 1, dãy d bit 0 (d được tính sao cho dãy X cuối cùng là bội của 512), dãy 64 bit l biểu diễn chiều dài của thông điệp Đơn vị xử lý trong MD5 là các từ 32-bit, nên dãy bit X ở trên sẽ được biểu diễn thành dãy các
từ X[i] 32-bit sau:
X=X[0] X[1] X[2] …X[N−1] , với N là bội của 16
Phương pháp MD5 có những ưu điểm sau so với phương pháp MD4
Trang 20Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Thay vì có 3 chu kỳ biến đổi như trong MD4, MD5 bổ sung thêm chu kỳ thứ 4 để tăng mức độ an toàn
Trong mỗi thao tác của từng chu kỳ, MD5 sử dụng hằng số ti phân
biệt, trong khi MD4 sử dụng hằng số chung cho mọi thao tác trong cùng chu kỳ biến đổi
Hàm G ở chu kỳ 2 của MD4: G(X, Y, Z) = ((XZ) (XY)
(YZ)) được thay thế bằng G(X, Y, Z) = (XZ) (Y(Z)) để giảm tính đối xứng
Mỗi bước biến đổi trong từng chu kỳ chịu ảnh hưởng kết quả của bước biến đổi trước, vì vậy làm tăng nhanh tốc độ của hiệu ứng lan truyền (avalanche)
Các hệ số dịch chuyển xoay vòng trong mỗi chu kỳ được tối ưu hóa nhằm tăng tốc độ hiệu ứng lan truyền Ngoài ra, mỗi chu kỳ sử dụng
4 hệ số dịch chuyển khác nhau
Lý do MD5 được thiết kế thay thế cho MD4 là vì các phân tích chỉ ra rằng phương pháp MD4 có vẻ không an toàn Den Boer và Bosselaers đã chỉ ra các điểm yếu trong MD4 trong một bài báo được đăng vào năm 1991 và một tấn công xung đột đầu tiên được tìm thấy bởi Han Dobbertin vào năm
1996
Tuy nhiên, các nỗ lực tấn công, phân tích của các nhà nghiên cứu cho thấy MD5 cũng không còn an toàn và cần được thay thế bằng một thuật toán băm khác như các công bố của Den Boer và Bosselaers năm 1993; của Hans Dobbertin năm 1996; của nhóm tác giả Xiaoyun Wang, Dengguo Feng, Xuejia Lai, và Hongbo ngày 19/8/2004; của Arjen Lenstra, Xiaoyun Wang, và Benne de Weger ngày 1/3/2005; và của Vlastimil Klima, …
Trang 21Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
1.3.4.2 Chuẩn băm an toàn SHS
SHS (Secure Hash Standard) là chuẩn gồm tập hợp các thuật toán băm mật
mã an toàn (Secure Hash Algorithm – SHA) như 1, 224,
SHA-256, SHA-384, SHA-512 do NIST2
và NSA3 xây dựng
Phương pháp SHA-1 (cũng như SHA-0) được xây dựng trên cùng cơ
sở với phương pháp MD4 và MD5 Tuy nhiên, phương pháp SHA-1
sử dụng trên hệ thống Big-endian5
thay vì Little-endian6
như phương pháp MD4 và MD5 Ngoài ra, hàm băm SHA-1 tạo ra thông điệp rút gọn kết quả có độ dài 160 bit nên thường được sử dụng
Phương pháp SHA-1 giống với MD5 (cải tiến từ MD4) nhưng thông điệp tóm tắt được tạo ra có độ dài 160 bit Dưới đây là một số điểm
So với MD4, hàm G trong MD5 được thay thế thành hàm mới để làm giảm tính đối xứng Trong khi SHA-1, hàm G trong SHA-1 vẫn giữ lại hàm G của MD4
Cả MD5 và SHA-1, mỗi bước biến đổi trong từng chu kỳ chịu ảnh hưởng kết quả của biến đổi trước, vì vậy làm tăng nhanh tốc độ của hiệu ứng lan truyền
Trang 22Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
CHƯƠNG 2 HẠ TẦNG KHÓA CÔNG KHAI VÀ CÁC
THÀNH PHẦN
2.1 Hạ tầng khóa công khai
2.1.1 Hạ tầng khóa công khai là gì và một số khái niệm
Để hiểu rõ về việc xây dựng cơ sở hạ tầng khóa công khai (Public Key Infrastructure viết tắt là PKI) và vần đề cấp phát chứng thực số có vai trò
và ứng dụng như thế nào trong thương mại điên tử Chúng ta sẽ đi phân tích từng khía cạnh xung quanh PKI
Trước tiên chúng hiểu thế nào là PKI và tính cấp thiết của PKI hiện nay Là một cơ chế để cho một bên thứ 3 (thường là nhà cung cấp chứng thực số) cung cấp và xác thực định danh các bên tham gia vào quá trình trao đổi thông tin Cơ chế này cũng cho phép gán cho mỗi người sử dụng trong hệ thống một cặp khóa công khai/khóa bí mật
Trong kỷ nguyên bùng nổ của công nghệ thông tin, mọi giao dịch từ xa có thể thông qua internet Tuy nhiên, mặt khác khó mà bảo đảm rằng những giao dịch trên Internet luôn an toàn Cơ sở hạ tầng khóa công khai (PKI) đã đáp ứng những yêu cầu cấp thiết đó Dựa trên cách sử dụng của chìa khóa mật mã công cộng và chữ ký điện tử, một PKI chính là bộ khung của các chính sách, dịch vụ và phần mềm mã hóa, đáp ứng nhu cầu bảo mật của người sử dụng
Một Platform PKI phải cung cấp đầy đủ các chức năng sau:
Trang 23Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
2.1.1.1 Cấu trúc phân tầng của hệ thống khóa công khai
Mô hình này tương ứng với cấu trúc phân cấp với CA gốc và các CA cấp dưới CA gốc xác nhận các CA cấp dưới, các CA này lại xác nhận các CA cấp thấp hơn Các CA cấp dưới không cần xác nhận các CA cấp trên
Mô hình phân cấp được minh hoạ như hình ở trên Trong mô hình này, mỗi thực thể sẽ giữ bản sao khoá công khai của root CA và kiểm tra đường dẫn của chứng thư bắt đầu từ chữ ký của CA gốc Đây là mô hình PKI tin cậy sớm nhất và được sử dụng trong PEM (Privacy Enhanced Mail : bảo mật tăng cường Mail)
Ưu điểm của mô hình:
Mô hình này có thể dùng được trực tiếp cho những doanh nghiệp phân cấp và độc lập, cũng như những tổ chức chính phủ và quân đội
Cho phép thực thi chính sách và chuẩn thông qua hạ tầng cơ sở
Dễ vận hành giữa các tổ chức khác nhau
Nhược điểm:
Trang 24Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Có thể không thích hợp đối với môi trường mà mỗi miền khác nhau cần có chính sách và giải pháp PKI khác nhau
Các tổ chức có thể không tự nguyện tin vào các tổ chức khác
Có thể không thích hợp cho những mối quan hệ ngang hàng giữa chính phủ và doanh nghiệp
Những tổ chức thiết lập CA trước có thể không muốn trở thành một phần của mô hình
Có thể gây ra sự trội hơn của sản phẩm đối với vấn đề về khả năng tương tác
Chỉ có một CA gốc nên có thể gây ra một số vấn đề như thiếu khả năng hoạt động Thêm vào đó, trong trường hợp khoá cá nhân của
CA bị xâm phạm, khoá công khai mới của CA gốc phải được phân phối đến tất cả các người sử dụng cuối trong hệ thống theo một số cơ chế khác nhau
Mặc dù có những nhược điểm, song mô hình này vẫn thích hợp với yêu cầu của các tổ chức chính phủ vì cấu trúc phân cấp tự nhiên sẵn có
2.1.1.2 Mô hình xác thực khóa công khai
PKI cung cấp một cặp chìa khóa, trong đó có một chìa là chìa khóa công khai (Public key) để có thể sử dụng dịch vụ, chìa còn lại là chìa khóa bí mật (Private key) mà người sử dụng phải giữ bí mật Hai chìa khóa này có liên quan mật thiết đến nhau, sao cho một thông điệp được mã hóa bởi một chìa khóa mật mã công khai thì chỉ giải mã được bởi một chìa khóa bí mật tương ứng
Ví dụ về mô hình xử dụng xác thực:
Giả sử có 2 người dùng Howard và Huynh muốn chuyển thông điệp tử cho nhau để đảm bảo tính xác thực và bảo mật họ dùng 1 phần mềm PKI
Trang 25Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Hành động Trạng thái của hệ thống PKI
Huynh muốn chuyển một thông điệp
đến cho Howard, với yêu cầu rằng
giao dịch phải chứng minh đƣợc
chính anh đã gửi nó đi và nội dung
thông không bị thay đổi
Phần mềm PKI dùng chìa khóa bí mật của Huynh tạo ra một chữ ký số cho thông điệp
Huynh muốn chắc chắn rằng không
ai ngoài Howard đọc đƣợc bức thƣ
này
Phần mềm PKI của Huynh dùng chìa khóa công cộng của Howard để mã hóa thông điệp của Huynh
Howard muốn đọc thƣ do Huynh gửi Phần mềm PKI dùng chìa khóa cá
nhân của Howard để để giải mã thông điệp
Howard muốn kiểm chứng rằng
chính Huynh đã gửi đi thông điệp đó
và nội dung thông điệp không bị
chỉnh sửa
Phần mềm PKI của Howard dùng chìa khóa công cộng của Huynh để kiểm chứng chữ ký số của Huynh
2.1.1.3 Khái niệm X.509 và PKCS
X.509 là một đề nghị của ITU (International Telecommunication Union) định nghĩa một framework về chứng thực (certificate) X.509 dựa trên X.500, mà bản thân X.500 còn chƣa đƣợc định nghĩa hoàn hảo Kết quả là chuẩn X.509 đang đƣợc diễn giải theo một số cách, tùy theo công ty cung cấp quyết định sử dụng nhƣ thế nào X.509 lần đầu tiên đƣợc công bố vào năm 1988, và các phiên bản tiếp theo đã đƣợc đƣa ra để giải quyết các vấn
đề an toàn, đây cũng là sự cố xảy ra bất ngờ ngay lần công bố đầu tiên
Trang 26Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
X.509 hỗ trợ cả hai mã bí mật (mã đơn) và mã công khai X.509 định nghĩa các nội dung về một chứng thực, bao gồm số phiên bản, số serial, ID chữ
ký, tên công bố, thời điểm có hiệu lực, định nghĩa chủ đề, phần mở rộng và chữ ký trên các trường trên Về cơ bản, một người có trách nhiệm chứng nhận sẽ đặt khóa công khai của một người nào đó có nhu cầu chứng thực vào thủ tục chứng thực và sau đó xác thực lại bằng khóa riêng Điều nầy bắt buộc khóa và thủ tục chứng thực phải luôn đi kèm với nhau Bất cứ ai cần dùng khóa công cộng của một đối tượng nào đó đều có thể mở thủ tục chứng thực bằng khóa công cộng của các đối tượng nầy do người có trách nhiệm chứng thực cung cấp (các khóa công cộng nầy được ký hoặc khóa bằng khóa riêng của người có trách nhiệm chứng thực) Vì vậy, người sử dụng phải tin rằng người có trách nhiệm chứng thực sẽ bảo đảm việc hợp lệ hóa người chủ của khóa công khai và thực sự khóa công khai ở đây chính
là khóa công khai của người có trách nhiệm chứng thực Đây chính là lãnh địa của các PKI (public-key infrastructures) PKI là một kiến trúc phân cấp những đối tuợng có trách nhiệm xác minh các khóa công khai lẫn nhau
PKCS là một chuẩn do phòng thí nghiệm RSA Data Security Inc phát triển
Nó dựa vào các cấu trúc ASN.1 và thiết kế cho phù hợp với chứng chỉ X.09, các tiêu chuẩn này do ANSI thiết kế, theo đó dữ liệu được chia thành từng khối nhỏ nhất là 8 bit (octet) PKCS hiện tại bao gồm các chuẩn PKCS#1, PKCS#3, PKCS#5, PKCS#7, PKCS#8, PKCS#9, PKCS#11, PKCS#12, PKCS#13, PKCS#15 Hiện tại phiên bản của các bản đang là 2.1 Trong đó có thể tìm được các chuẩn để mã hóa dữ liệu, chuẩn này được thiết kế dựa vào cách mà các thám mã dùng để tấn công vào đoạn mã
Có thể mô tả sơ qua thế này, trong PKCS#1 có các chuẩn mã hóa - giải mã RSAES - OAEP scheme, chuẩn tạo chữ ký điện tử - kiểm tra RSASSA - PSS scheme ver2.1, hay trong PKCS#7 là các chuẩn mã hóa cho password
Trang 27Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
PKCS#11 là phức tạp nhất, nó là chuẩn cho việc truyền thông tin trên mạng dưới dạng các gói tin đã mã
2.1.2 Một vài kiến trúc và công nghệ PKI hiện hành
2.1.2.1 Một số ứng dụng
Mục tiêu chính của PKI là cung cấp khóa riêng và khóa công khai, xác định mối liên hệ giữa khóa và định dạng người dùng Nhờ vậy người dùng có thể sử dụng trong một số ứng dụng như:
Mã hoá Email hoặc xác thực người gửi Email (OpenPGP hay S/MIME)
Mã hóa hoặc nhận thực văn bản (Các tiêu chuẩn Chữ ký XML* hoặc
mã hoá XML* khi văn bản được thể hiện dưới dạng XML)
Xác thực người dùng ứng dụng (Đăng nhập bằng thẻ thông minh, nhận thực người dùng trong SSL)
Các giao thức truyền thông an toàn dùng kỹ thuật Bootstrapping (IKE, SSL) trao đổi khóa bằng khóa bất đối xứng, còn mã hóa bằng khóa đối xứng
2.1.2.2 Một số hệ thống PKI
Dưới đây là danh sách một số hệ thống PKI, trong đó một số nhà cung cấp chứng thực số hàng đầu (ví dụ VeriSign) không được liệt kê vì các phần mềm của họ không được công bố công khai:
Hệ thống quản lý chứng thực Red Hat
Computer Associate eTrust PKI
Microsoft
OpenCA (Một mô hình PKI mã nguồn mở)
RSA Security
Trang 28Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
IDX-PKI
Simple CA
2.2 Chữ ký số, thuật toán tạo và kiểm tra chữ ký số
Chữ ký số là một tập con của chữ ký điện tử Ta có thể dùng định nghĩa
Chữ ký số khóa công khai (hay hạ tầng khóa công khai) là mô hình
sử dụng các kỹ thuật mật mã để gắn với mỗi người sử dụng một cặp khóa công khai, bí mật và qua đó có thể ký các văn bản điện tử cũng như trao đổi các thông tin mật Khóa công khai thường được phân phối thông qua 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ý
Khái niệm chữ ký điện tử mặc dù thường được sử dụng cùng nghĩa với chữ
ký số nhưng thực sự có nghĩa rộng hơn Chữ ký điện tử chỉ đến bất kỳ phương pháp nào (không nhất thiết là mật mã) để xác định người chủ của văn bản điện tử Chữ ký điện tử bao gồm cả địa chỉ telex và chữ ký trên giấy được truyền bằng fax
2.2.1 Thuật toán chữ ký số RSA
Phương pháp chữ ký số RSA được xây dựng dựa trên thuật toán mã hóa khóa công khai RSA Để tạo một cặp khóa, RSA thực hiện các bước sau:
Tạo khóa
Trang 29Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Giả sử NHA và NHB cần trao đổi thông tin bí mật thông qua một kênh không an toàn Với thuật toán RSA, NHA đầu tiên cần tạo ra cho mình cặp khóa gồm khóa công khai và khóa bí mật theo các bước sau:
Chọn 2 số nguyên tố lớn và với , lựa chọn ngẫu nhiên và độc lập
Các số nguyên tố thường được chọn bằng phương pháp thử xác suất
Các bước 4 và 5 có thể được thực hiện bằng giải thuật Euclid mở rộng
Bước 5 có thể viết cách khác: Tìm số tự nhiên sao
cho cũng là số tự nhiên Khi đó sử dụng
Trang 30Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
n, môđun, xuất hiện cả trong khóa công khai và khóa bí mật, và
d, số mũ bí mật (cũng gọi là số mũ giải mã)
Mã hóa
Giả sử NHA muốn gửi điện thanh toán cho NHB Đầu tiên NHA chuyển điện thanh toán thành một điện mã hóa nhỏ hơn kích cỡ điện ban đầu theo một hàm có thể đảo ngược (từ điện mã hóa có thể xác định lại được điện thanh toán gốc) được thỏa thuận trước (thuật toán mã hóa, khóa công khai do NHB cung cấp)
Lúc này NHA có điện gốc và biết n cũng như e do NHB gửi NHA sẽ tính c là bản mã hóa của m theo công thức:
Hàm trên có thể tính dễ dàng sử dụng phương pháp tính hàm mũ (theo môđun) bằng (thuật toán bình phương và nhân) Cuối cùng NHA gửi điện
Trang 31Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Dùng RSA để tạo chữ ký số cho văn bản Giả sử NHA muốn gửi cho NHB một văn bản có chữ ký của mình Để làm việc này, NHA tạo ra một giá trị băm(hash value) của điện thanh toán ký và tính giá trị mũ d mod n của nó Giá trị cuối cùng chính là chữ ký số của điện thanh toán đang xét Khi NHB nhận được văn bản cùng với chữ ký số, NHB ta tính giá trị
mũ e mod n của chữ ký đồng thời với việc tính giá trị băm của văn bản Nếu 2 giá trị này như nhau thì NHB biết rằng người tạo ra chữ ký biết khóa
bí mật của NHA và điện thanh toán không bị thay đổi sau khi ký
2.2.2 Thuật toán chữ ký số DSA
Thuật toán chữ ký số DSA (Digital Signature Algorithm) được đề nghị bởi NIST vào tháng 8/1991 để sử dụng trong chuẩn chữ ký số DSS (Digital Signature Standard), được chỉ ra trong FIPS 186, được chấp nhận năm
1993 Một sửa đổi nhỏ được đưa ra ngày năm 1996 trong FIPS 186-1, chuẩn được mở rộng hơn năm 2000, được xem như xem như FIPS 186-2 Việc tạo khóa gồm hai bước Bước thứ nhất là lựa chọn các tham số cho thuật toán được chia sẻ giữa các người sử dụng khác nhau trong cùng hệ thống:
Chọn một hàm băm mã hóa ℋ Trong DSS chuẩn ℋ luôn là
SHA-1, nhưng các hàm băm tốt hơn trong nhóm SHA cũng đang được sử dụng Đôi khi đầu ra của một thuật toán băm mới hơn bị rút ngắn kích thước so với các thuật toán băm mới cũ để tương tích với cặp khóa hiện có
Chọn kích thước khóa L Đây là thước đo chính quyết định sức mạnh
mã hóa của khóa DSS chuẩn ràng buộc L là bội số của 64 và 512≤L≤1024 Sau đó, FIPS 186-2 xác định L luôn là 1024 Không lâu sau, NIST 800-57 đề nghị độ dài khóa là 2048 (hoặc 3072) để
Trang 32Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
thời gian an toàn đến năm 2010 (hoặc 2030), sử dụng tương ứng với các giá trị băm và q dài hơn Bản thảo FIPS 186-3 cũng tính đến các hàm băm sau này và các khóa dài hơn
Chọn một số nguyên tố q cùng số bit với đầu ra của ℋ
Chọn một số nguyên tố p độ dài L bit sao cho p–1 là bội của q Tức
là p=qz–1 với số nguyên z nào đó
Chọn g = h(p 1 ) /q mod p với h bất kỳ (1<h<p–1), và chọn lại nếu kết quả là 1 Hầu hết cách chọn h đều nhận được g có thể sử dụng, thông thường chọn h = 2
Các tham số thuật toán (p, q, g) có thể chia sẻ giữa những người khác nhau trong hệ thống Bước thứ hai tính các khóa bí mật và khóa công khai của từng người:
Chọn x ngẫu nhiên sao cho 0<x<q
Tính y=gx
mod p
Khóa công khai là (p, q, g, y), khóa bí mật là x
Phiên bản FIPS 186-3 sắp tới sử dụng SHA-224/256/384/512 là các hàm băm, kích thước của q là 224 (hoặc 256 bit), và L bằng 2048 (hoặc 3072)
Để ký một thông điệp m, người ký thực hiện các bước sau:
Phát sinh một số ngẫu nhiêu k (0<k<q) cho mỗi thông điệp
Tính r = (gk mod p) mod q
Tính s = k 1(ℋ(m) + xr)) mod q
Tính toán lại chữ ký trong trường hợp không chắc chắn r=0 hoặc s=0
Trang 33Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Chữ ký là (r, s)
Để xác nhận chữ ký, người nhận thực hiện các bước sau:
Loại bỏ chữ ký nếu 0<r<q hoặc 0<s<q không thỏa mãn
Chữ ký có hiệu lực nếu v=r
Tính đúng đắn của giải thuật được chứng minh như sau:
Đầu tiên, nếu g = h(p1)/qmod p suy ra gp=hp 1−1=1 (mod p) theo định lý Fermat nhỏ Bởi vì g>1 và q là số nguyên tố nên g có bậc q
Cuối cùng, tính đúng đắn của DSA suy ra từ:
R = (gk
mod p) mod q = (gu1
yu2 mod p) mod q = v
Phương pháp DSA đã giải quyết vấn đề này bằng cách sử dụng chữ ký 320 bit cho văn bản 160 bit với các phép tính được thực hiện trên tập con có
2160 phần tử với p là số nguyên tố 512 bit
Chữ ký số (Digital Signature) chỉ là tập con của chữ ký điện tử Chữ ký số
là chữ ký điện tử dựa trên kỹ thuật mã hóa với khóa công khai, trong đó,
Trang 34Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
mỗi người có một cặp khóa (một khóa bí mật và một khóa công khai) Khóa bí mật không bao giờ được công bố, trong khi đó, khóa công khai được tự do sử dụng Để trao đổi thông điệp bí mật, người gửi sử dụng khóa công khai của người nhận để mã hóa thông điệp gửi, sau đó, người nhận sẽ
sử dụng khóa bí mật tương ứng của mình để giải mã thông điệp
Chữ ký điện tử là thông tin được mã hoá bằng Khoá riêng của người gửi, được gửi kèm theo văn bản nhằm đảm bảo cho người nhận định danh, xác thực đúng nguồn gốc và tính toàn vẹn của tài liệu nhận được Chữ ký điện
tử thể hiện văn bản gửi đi là đã được ký bởi chính người sở hữu một Khoá riêng tương ứng với một Chứng chỉ điện tử nào đó
Chữ ký số khóa công khai (hay hạ tầng khóa công khai) là mô hình sử dụng
các kỹ thuật mật mã để gắn với mỗi người sử dụng một cặp khóa công khai
- bí mật và qua đó có thể ký các văn bản điện tử cũng như trao đổi các thông tin mật Khóa công khai thường được phân phối thông qua 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ý
2.3 Cấp phát và xác thực chứng thực số
2.3.1 Chứng thực số
Trong mật mã học, chứng thực khóa công khai (còn gọi là chứng thực số/chứng thực điện tử) là một chứng thực sử dụng chữ ký số để gắn một khóa công khai với một thực thể (cá nhân, máy chủ hoặc tổ chức ) Một chứng thực khóa công khai tiêu biểu thường bao gồm khóa công khai và các thông tin (tên, địa chỉ, thời hạn ) về thực thể sở hữu khóa đó Chứng thực điện tử có thể được sử dụng để kiểm tra một khóa công khai nào đó thuộc về ai
CA phát hành các chứng thực khóa công khai trong đó thể hiện rằng CA đó chứng nhận khóa công khai nằm trong mỗi chứng thực thuộc về cá nhân, tổ
Trang 35Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
chức, máy chủ hay bất kỳ thực thể nào ghi trong cùng chứng thực đó Nhiệm vụ của CA là kiểm tra tính chính xác của thông tin liên quan tới thực thể được cấp chứng thực Khi người sử dụng tin tưởng vào một CA và
có thể kiểm tra chữ ký số của CA đó thì họ cũng có thể tin tưởng vào khóa công khai và thực thể được ghi trong chứng thực
2.3.2 Cấp phát chứng thực số
Chứng thư số bao gồm các thông tin: tên, tuổi, địa chỉ, ngày tháng cấp phát chứng thực số, khóa công khai và ID của chứng thực số Việc cấp phát chứng thực số hoàn tất sau khi Client gửi thông tin đăng ký nên server Server sẽ kiểm tra các thông tin client gửi lên Bằng việc thẩm tra chữ ký
số, và khóa công khai Nếu chữ ký số đúng đắn tương đương việc khóa công khai là đúng đắn Thông tin client gửi mẫu lên đăng ký server gồm
những thông tin sau:
Sinh cặp khóa ngẫu nhiên Tại Client hệ thống PKI sẽ cấp phát cặp khóa riêng và khóa công khai Hệ thống PKI (cụ thể PKI client) sẽ sử dụng 1 thuật toán bất kỳ hợp lý được chọn lựa để sinh cặp khóa ngẫu nhiên Chẳng hạn đây là thuật tóa RSA Cặp khóa ngẫu nhiên được sinh ra từ 2 số nguyên tố ngẫu nhiên lập đủ lớn Cặp khóa ngẫu nhiên
ở đây là:
Khóa công khai: (n, e)
Khóa bí mật: (n, d)
Tạo chữ ký số sau khi tạo cặp khóa ngẫu nhiên, hệ thống PKI client
sẽ tạo ra chữ ký số tương ứng với cặp khóa ngẫu nhiên của từng client và ký theo từng văn bản ngẫu nhiên Tạo chứng thư số Sau khi PKI client tạo cặp khóa riêng và khóa công khai đồng thời tạo chữ ký
số cho client tương ứng Thông tin bảo mật sẽ được gửi đến server
Trang 36Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Tại server, server sẽ xác thực những thông tin mà client gửi đến có chính xác và đúng đắn.Nếu thông tin xác thực là đúng đắn (khóa công khai, chữ
ký số, giá trị băm của văn bản, tin nhắn) server sẽ cấp phát cho client 1 chứng thực số bao gồm các thông tin sau: tên, tuổi, địa chỉ, các thông tin cá nhân khác, khóa công khai, ngày tạo, ngày hết hạn và ID của chứng thực
số ID của chứng thực số có tính duy nhất với mỗi client
2.3.3 Thu hồi và cấp phát lại chứng thực số
Một chứng thực số bị thu hồi khi nào:
Khi mà chứng thƣ số đã hết hạn sử dụng, chứng thƣ sẽ bị thu hồi để
Trang 37Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Một người thứ 3 bất kỳ (Có thể là 1 client khác, khách chưa đăng ký chứng thực số) đều có thể kiểm tra được tính đúng đắn của 1 chứng thực số Bằng cách PKI client sẽ cung cấp 1 dịch vụ xác thực Người dùng có thể nhập vào ID của 1 chứng thực số bất kỳ cần kiểm tra và gửi thông tin đó lên server Nếu chứng thực số tồn tại server sẽ trả lại thông báo cho client vừa kiểm tra
Trang 38Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
CHƯƠNG 3 XÂY DỰNG CỔNG TRUYỀN THÔNG THANH TOÁN SONG PHƯƠNG VÀ ỨNG DỤNG CHỮ KÝ
hộ mở theo từng NH và theo loại tiền tệ phù hợp với quy định/quy trình nội
bộ của mỗi NH
Loại tiền tệ thanh toán: Hệ thống TTĐTSP chỉ thực hiện các điện chuyển tiền ghi Có bằng đồng Việt Nam, đối với điện chuyển tiền ghi Có bằng ngoại tệ chỉ được áp dụng khi hai bên có phát sinh nhu cầu và cùng chấp thuận thực hiện trong từng thời kỳ
Hệ thống TTĐTSP sử dụng mẫu điện cơ sở của hệ thống Ý nghĩa các trường của mẫu điện theo chuẩn SWIFT
Các NH thực hiện việc chuyển hóa các chứng từ thanh toán thành chứng từ điện tử theo quy định/quy trình tác nghiệp nội bộ của mỗi NH và chuyển đến NH của người thụ hưởng qua hệ thống TTĐTSP
3.1.1.1 Nội dung thanh toán
Điện thanh toán bao gồm điện chuyển tiền và điện tra soát
Người phát lệnh (Odering Customer):
o Là tổ chức hoặc cá nhân gửi điện thanh toán đến NH, yêu cầu
NH phục vụ trích tài khoản/hoặc nộp tiền mặt vào NH để
Trang 39Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
chuyển cho người thụ hưởng hoặc tra soát điện chuyển tiền cụ thể
o NH phát lệnh/NH gửi lệnh (Sender Bank): Là NH trực tiếp tạo lập điện thanh toán trong hệ thống nội bộ của mỗi NH gửi qua
hệ thống TTĐTSP tới NH nhận lệnh NH này phải được cấp
o YY: 2 ký tự cuối của năm giao dịch
o BBB: Ký tự thứ 3, 4, 5 trong mã 8 số do NHNN cấp cho HSC
NH gửi điện trong TTĐTSP
o MMM: Loại điện (103, 195, 196, 199)
o XXXXXXXX: Số chạy theo từng loại điện
Ví dụ: Trên một MT có số MT_ID là 1220210300000001 được diễn giải chi tiết như sau:
o 12: Là điện MT của năm 2012
o 202: Là điện của NHA gửi đi trong chương trình TTĐTSP
o 103: Là loại điện MT103