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

Chữ ký số và ứng dụng xác thực thông tin trong các dịch vụ internet banking

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.83 MB, 74 trang )

..

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CNTT & TT THÁI NGUYÊN

NGÔ NGỌC CƯƠNG

CHỮ KÝ SỐ VÀ ỨNG DỤNG XÁC THỰC THÔNG
TIN TRONG CÁC DỊCH VỤ INTERNET BANKING

LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH

Thái Nguyên – 2017


ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CNTT & TT THÁI NGUYÊN

NGÔ NGỌC CƯƠNG

CHỮ KÝ SỐ VÀ ỨNG DỤNG XÁC THỰC THÔNG
TIN TRONG CÁC DỊCH VỤ INTERNET BANKING
Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01.01

LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS ĐỖ TRUNG TUẤN

Thái Nguyên – 2017



LỜI CAM ĐOAN
Tôi xin cam đoan: Đề tài “Chữ ký số và ứng dụng xác thực thông tin trong
các dịch vụ Internet Banking” do Thầy giáo PGS.TS Đỗ Trung Tuấn hướng dẫn là
cơng trình nghiên cứu của riêng tơi. Tất cả tài liệu tham khảo đều có nguồn gốc,
xuất xứ rõ ràng.
Tác giả xin cam đoan tất cả những nội dung trong luận văn đúng như nội
dung trong đề cương và yêu cầu của thầy giáo hướng dẫn. Nếu sai tơi hồn tồn
chịu trách nhiệm trước hội đồng khoa học và trước pháp luật.

Thái Nguyên, ngày 15 tháng 4 năm 2017
Tác giả luận văn

Ngô Ngọc Cương

i


LỜI CÁM ƠN
Với lòng biết ơn sâu sắc nhất, em xin gửi đến quý thầy cô ở Khoa Công nghệ
thông tin - Trường Đại học Công nghệ Thông tin và Truyền thông Thái Nguyên đã
cùng với tri thức và tâm huyết của mình để truyền đạt vốn kiến thức quý báu cho
chúng em trong suốt thời gian học tập tại trường.
Em xin chân thành cảm ơn đến các thầy, đặc biệt thầy PGS. TS Đỗ Trung
Tuấn đã dành thời gian và tâm huyết hướng dẫn nghiên cứu và giúp em hoàn thành
luận văn tốt nghiệp và thầy TS. Phạm Thế Quế đã hướng dẫn tận tình em hồn
thành luận văn.
Xin cảm ơn các cán bộ Ngân hàng Thương mại cổ phần Bưu điện Liên Việt
Bắc Ninh đã tạo điều kiện và giúp đỡ em trong quá trình nghiên cứu, khảo sát để có
thêm tài liệu viết luận văn.

Bài luận văn được thực hiện trong khoảng thời gian gần 6 tháng. Em đã có
nhiều cố gắng để hồn thiện luận văn bằng tất cả sự nhiệt tình và năng lực của
mình, tuy nhiên việc hồn thiện thời gian hạn hẹp khơng thể tránh khỏi những
thiếu sót, rất mong nhận được những đóng góp q báu của q thầy cơ và các
bạn.
Nhân đây, xin chân thành cám ơn gia đình, bạn bè và tập thể lớp Cao học
K14B đã cổ vũ động viên em hồn thành luận văn của mình.

Ngơ Ngọc Cương

ii


MỤC LỤC

LỜI CAM ĐOAN ............................................................................................... i
LỜI CÁM ƠN.................................................................................................... ii
MỤC LỤC ........................................................................................................ iii
DANH MỤC CÁC TỪ TIẾNG ANH VÀ VIẾT TẮT .................................... vi
DANH MỤC CÁC HÌNH VẼ ........................................................................ viii
MỞ ĐẦU ............................................................................................................1
Đặt vấn đề, tổng quan đề tài .......................................................................1
Cấu trúc của luận văn .................................................................................1
Chương 1. An tồn thơng tin và chữ kí số .........................................................3
1.1. Về mã hóa dữ liệu....................................................................................3
1.1.1. Khái niệm mã hóa thơng tin .............................................................3
1.1.2. Mã hóa khóa bí mật ..........................................................................4
1.1.3. Mã hóa khóa cơng khai ....................................................................7
1.1.4. Hàm băm ..........................................................................................9
1.2. Về chữ kí điện tử ...................................................................................14

1.2.1. Khái niệm chữ ký điện tử ...............................................................14
1.2.2. Cơ sở hạ tầng khóa cơng khai (PKI) ..............................................15
1.2.3. Các thành phần của cơ sở hạ tầng khóa cơng khai .........................17
1.3. Tạo và kiểm tra chữ kí số ......................................................................21
1.3.1. Tạo chữ kí số ..................................................................................21
1.3.2. Kiểm tra chữ kí số ..........................................................................22
1.4. Kết luận .................................................................................................22
Chương 2. Giải pháp xác thực thông tin trong các dịch vụ Internet Banking..23
2.1. Giới thiệu chung xác thực thông tin ......................................................23
2.1.1. Các kỹ thuật xác thực thông tin ......................................................23

iii


2.2. Các giao thức xác thực ..........................................................................30
2.2.1. Mật khẩu .........................................................................................30
2.2.2. Các giao thức xác thực trong mơ hình điểm - điểm .......................31
2.2.3. Xác thực trong các hệ thống phân tán ............................................33
2.2.4. Giao thức xác thực Kerberos 4 .......................................................37
2.2.5. Giao thức xác thực Kerberos 5 .......................................................41
2.3. Kết luận .................................................................................................42
Chương 3. Thử nghiệm chữ kí số trong Internet Banking tại Ngân hàng
Thương mại cổ phần Bưu điện Liên Việt .................................................................44
3.1. Về ngân hàng Liên Việt.........................................................................44
3.1.1. Internet Banking .............................................................................45
3.1.2. Rủi ro trong Internet Banking ........................................................46
3.2. Tổng quan về hạ tầng Công nghệ thông tin tại Ngân hàng Liên Việt ...47
3.2.1. Mơ hình hệ thống ..........................................................................47
3.2.2. Mơ hình Hạ tầng khóa trong Internet Banking ..............................48
3.2.3. Các chuẩn mã hóa khóa cơng khai (PKCS) ...................................48

3.2.4. Một số hệ thống PKI ......................................................................49
3.3. Ứng dụng Internet Banking ...................................................................49
3.3.1. Đăng nhập .......................................................................................50
3.3.2. Tìm kiếm thơng tin .........................................................................51
3.4. Các thủ tục thực hiện các giao dịch Internet Banking ngân hàng Liên
Việt ........................................................................................................................52
3.4.1. Người dùng sử dụng .......................................................................52
3.5. Quản lí giao dịch bưu điện ....................................................................56
3.5.1. Quy mô hệ thống Tiết kiệm Bưu Điện ...........................................56
3.5.2. Cài đặt thử nghiệm .........................................................................57
3.5.3. Đánh giá kết quả thử nghiệm .........................................................58
3.6. Kết luận .................................................................................................59

iv


Kết luận ............................................................................................................60
Kết quả đạt được.......................................................................................60
Hướng nghiên cứu tiếp theo .....................................................................61
DANH SÁCH TÀI LIỆU THAM KHẢO ........................................................62
Tiếng Việt .................................................................................................62
Tiếng Anh .................................................................................................62

v


DANH MỤC CÁC TỪ TIẾNG ANH VÀ VIẾT TẮT

Viết tắt


Tiếng Anh

Tiếng Việt

ATM

Automatic Teller Machine

Máy rút tiền tự động

CA

Certificate authority

Cơ quan cung cấp chứng thực số

CD

Certificate directory

Kho lưu trữ chứng chỉ

CNTT

Information technology

Công nghệ thông tin

CRL


Certificate revocation lists

Danh sách thu hồi chứng chỉ

DES

Data encryption standard

Tiêu chuẩn mã hóa dữ liệu

DN

Business

Doanh nghiệp

GDP

Gross Domestic Product

Tổng sản phẩm nội địa

LRA

Local registration authority

Cơ quan quản lý đăng ký địa
phương

MAC


Message
Code

MD5

Message-Digest algorithm 5

Giải thuật tiêu hóa tin 5

NHTM

Commercial Bank

Ngân hàng thương mại

PKCS

Public Key Cryptography
Standards

Chuẩn cho việc truyền thông tin
trên mạng dưới dạng các gói tin đã
mã hóa

PKI

Public key infrastructure

Cơ sở hạ tầng khóa cơng khai


RA

Registration authority

Cơ quan quản lý đăng ký

RSA

Rivest, Shamir and Adleman Thuật tốn mã hóa công khai của 3
tác giả: Rivest, Shamir và Adleman

TLS

Transport Layer Security

Bảo mật tầng truyền dẫn

TMĐT

Electronic commerce

Thương mại điện tử

Authentication Mã xác thực thông báo

vi


VCB


Vietcombank

Ngân hàng ngoại thương Việt Nam

vii


DANH MỤC CÁC HÌNH VẼ
Hình 1.1. Hệ thống mã hóa thơng tin .................................................................3
Bảng 1.1. Các thuật tốn mã hóa khóa bí mật ....................................................5
Bảng 1.2. Các thuật tốn mã hóa khóa cơng khai ..............................................8
Hình 1.2. Sơ đồ biểu diễn thuật tốn RSA .........................................................9
Bảng 1.3. Các thuật tốn băm...........................................................................10
Hình 1.3. Một thao tác trong 64 tác vụ của thuật tốn MD5 ............................11
Hình 1.4. Sinh ra tiêu hóa tin sử dụng SHA-1 .................................................12
Hình 1.5. Cơ sở hạ tầng khóa cơng khai (PKI) ................................................18
Hình 1.6. Các bước tạo chữ ký điện tử .............................................................21
Hình 1.7. Các bước kiểm tra chữ ký điện tử ....................................................22
Hình 2.1. Xác thực thơng tin dùng mật mã đối xứng .......................................24
Hình 2.2. Sử dụng khóa bất đối xứng để trao đổi khóa bí mật.........................25
Hình 2.3. Xác thực thơng tin dùng mật mã bất đối xứng .................................25
Hình 2.4. Xác thực thơng tin dùng MAC .........................................................26
Hình 2.5. Xác thực thơng tin dùng chữ ký số ...................................................27
Hình 2.6. Minh hoạ xác thực sử dụng chứng chỉ số và chữ ký điện tử ............28
Hình 2.7. Mơ hình chữ ký điện tử trong Internet Banking ..............................29
Hình 2.8. Giao thức xác thực PAP ...................................................................32
Hình 2.9. Giao thức xác thực CHAP ................................................................33
Hình 2.10. Thủ tục xác thực Kerberos 4 ..........................................................38
Hình 3.1. Ngân hàng Thương mại cổ phần Bưu điện Liên Việt ......................44

Hình 3.2. Mơ hình hệ thống mạng tại Ngân hàng Liên Việt ............................47
Hình 3.3. Mơ hình triển khai chữ ký điện tử trong Internet Banking .............48
Hình 3.4. Người dùng tra cứu về Internet Banking ..........................................49
Hình 3.5. Trang Internet Banking ....................................................................50
Hình 3.6. Đăng nhập với mật khẩu...................................................................50
Hình 3.7. Màn hình đăng nhập Internet Banking .............................................51
Hình 3.8. Tìm kiếm thơng tin ...........................................................................51
Hình 3.9. Truy vấn sao kê ................................................................................52
Hình 3.10. Màn hình đăng nhập dịch vụ Internet banking ...............................52

viii


Hình 3.11. Form điền thơng tin giao dịch ........................................................53
Hình 3.12. Form điền thơng tin và mật khẩu ...................................................53
Hình 3.13. Thực hiện gửi thơng tin giao dịch và mật khẩu ..............................54
Hình 3.14. Tạo chữ ký điện tử ..........................................................................54
Hình 3.15. Máy chủ gửi chữ ký và chứng chỉ cho người dùng ........................54
Hình 3.16. Người dùng gửi thông tin, chữ ký và chứng chỉ cho máy chủ .......55
Hình 3.17. Kiểm tra chữ ký điện tử ..................................................................55
Hình 3.18. Sơ đồ điều hành quản lí ..................................................................56
Hình 3.19. Giao diện tạo cặp khóa và ký văn bản ............................................57
Hình 3.20. Thực hiện ký lên tài liệu cần gửi ....................................................57
Hình 3.21. Xác thực sự tồn vẹn của tài liệu nhận được ..................................58
Bảng 3.1. Kết quả thử nghiệm ..........................................................................58

ix


MỞ ĐẦU

Đặt vấn đề, tổng quan đề tài
Internet Banking là dịch vụ Ngân hàng điện tử dùng để truy vấn thông tin tài
khoản và thực hiện các giao dịch chuyển khoản, thanh toán qua mạng Internet.
Internet Banking cho phép khách hàng thực hiện giao dịch trực tuyến mà không cần
đến Ngân hàng. Chỉ cần một chiếc máy vi tính hoặc điện thoại di động có kết nối
Internet và mã truy cập do Ngân hàng cung cấp, khách hàng đã có thể thực hiện
các giao dịch với Ngân hàng mọi lúc mọi nơi một cách an toàn.
Trong hoàn cảnh hệ thống mạng và mạng xã hội trở nên thông dụng, ứng dụng
cơng nghệ thơng tin nói chung và ứng dụng cơng nghệ thông tin trong hệ thống
ngân hàng trở nên phổ biến. Đi kèm với vấn đề đó là an tồn thông tin người dùng.
Ngân hàng Bưu điện Liên Việt cũng nhận thức được việc này. Ngân hàng
thương mại cổ phần Bưu điện Liên Việt hay Ngân hàng Bưu điện Liên Việt, tên
giao dịch quốc tế: LienVietPostBank hoặc LPB, là một ngân hàng thương mại cổ
phần của Việt Nam. Nó được Ngân hàng Nhà nước Việt Nam cấp phép hoạt động
vào tháng 3 năm 2008 và chính thức ra mắt ngày 1 tháng 5 năm 2008.
Trong khuôn khổ luận văn tốt nghiệp cao học, tơi thấy vấn đề an tồn thơng
tin trong đơn vị mình cơng tác là quan trọng và có ý nghĩa. Việc thử nghiệm chữ kí
số và quản lí hoạt động của các phịng giao dịch bưu điện, chẳng hạn (i) chấm các
chứng từ; (ii) đóng/ mở ngày giao dịch trên phần mềm giao dịch bưu điện; (iii) đảm
bảo an tồn hệ thống… Chữ kí số là cơng cụ sử dụng tại ngân hàng bưu điện Liên
Việt. Công việc của tôi tại cơ sở liên quan đến hạ tầng xác thực thông tin… Tôi đã
chọn đề tài luận văn là “chữ kí số và ứng dụng xác thực thông tin trong các dịch vụ
Internet Banking”.
Cấu trúc của luận văn
Luận văn có cấu trúc theo các chương. Mục tiêu của luận văn là ứng dụng
được trong Ngân hàng Thương mại cổ phần Bưu điện Liên Việt. Nội dung các
chương như sau:
 Chương 1 trình bày về kiến thức về an tồn thơng tin và chữ chữ kí số.
Đây là kiến thức tìm hiểu và tham khảo trong các tài liệu liên quan;


1


 Chương 2 đề cập đến các giải pháp xác thực thông tin trong Internet
Banking và khả năng ứng dụng tại Ngân hàng Thương mại cổ phần
Bưu điện Liên Việt;
 Chương 3 trình bày các giao dịch thường xuyên của Ngân hàng Thương
mại cổ phần Bưu điện Liên Việt, trong đó có vai trị của tơi, trong việc
thực hiện an tồn thơng tin đối với các phịng giao dịch;
Luận văn có phần mở đầu và phần kết luận. Cuối luận văn là danh sách các tài
liệu tham khảo và trích dẫn.

2


Chương 1. An tồn thơng tin và chữ kí số
1.1. Về mã hóa dữ liệu
1.1.1. Khái niệm mã hóa thơng tin
Theo [9, 4], mã hóa sử dụng thuật tốn và khóa để biến đổi dữ liệu từ bản rõ
sang bản mã. Chỉ có những ai có thơng tin giải mã thì mới giải mã được và đọc
được dữ liệu. Thuật tốn mã hóa đề cập tới nghành khoa học nghiên cứu về mã hố
và giải mã thơng tin. Cụ thể hơn là nghiên cứu các cách thức chuyển đổi thông tin
từ dạng rõ (clear text) sang dạng mã (cipher text) và ngược lại.
Mã hóa là một phương pháp hỗ trợ rất tốt cho trong việc chống lại những truy
cập bất hợp pháp tới dữ liệu được truyền đi trên mạng, áp dụng mã hố sẽ khiến cho
nội dung thơng tin được truyền đi dưới dạng mờ và không thể đọc được đối với bất
kỳ ai cố tình muốn lấy thơng tin đó. Hệ thống mã hóa là một bộ năm (P, C, K, E, D)
thỏa mãn các điều kiện sau:
 Tập nguồn P là tập hữu hạn tất cả các mẫu tin nguồn cần mã hóa có thể


 Tập đích C là tập hữu hạn tất cả các mẫu tin có sau khi mã hóa
 Tập khóa K là tập hữu hạn các khóa có thể được sử dụng
 E và D lần lượt là tập luật mã hóa và giải mã.Với mỗi khóa k  K, tồn
tại luật mã hóa ek  E và luật giải mã dk  D tương ứng. Luật mã hóa
ek: P → C và luật giải mã ek: C → P là hai ánh xạ thỏa mãn dk(ek(x)) =
x,  x  P

Hình 1.1. Hệ thống mã hóa thơng tin

Hệ thống mã hố phải đảm bảo các tính chất sau [1]:

3


 Tính bí mật (Confidentiality): Đảm bảo dữ liệu được truyền đi một cách
an tồn và khơng thể bị lộ thơng tin nếu như có ai đó cố tình muốn có
được nội dung của dữ liệu gốc ban đầu. Chỉ những người được phép
mới có khả năng đọc được nội dung thơng tin ban đầu.
 Tính xác thực (Authentication): Giúp cho người nhận dữ liệu xác định
được chắc chắn dữ liệu mà họ nhận là dữ liệu gốc ban đầu. Kẻ giả mạo
khơng thể có khả năng để giả dạng một người khác hay nói cách khác
khơng thể mạo danh để gửi dữ liệu. Người nhận có khả năng kiểm tra
nguồn gốc thơng tin mà họ nhận được.
 Tính tồn vẹn (Integrity): Giúp cho người nhận dữ liệu kiểm tra được
rằng dữ liệu khơng bị thay đổi trong q trình truyền đi. Kẻ giả mạo
khơng thể có khả năng thay thế dữ liệu ban đầu băng dữ liệu giả mạo
 Tính khơng thể chối bỏ (Non-repudation): Người gửi hay người nhận
không thể chối bỏ sau khi đã gửi hoặc nhận thơng tin.
Có rất nhiều các thuật tốn mã hố khác nhau. Từ những thuật tốn được cơng
khai để mọi người cùng sử dụng và áp dụng như là một chuẩn chung cho việc mã

hoá dữ liệu; đến những thuật toán mã hố khơng được cơng bố.
Có thể phân loại theo các phương pháp:
1. Mã hoá cổ điển (Classical cryptography),
2. Mã hoá đối xứng (Symetric cryptography),
3. Mã hoá bất đối xứng(Asymetric cryptography),
4. Hàm băm (Hash function).
Hoặc phân loại theo số lượng khố:
1. Mã hố khố bí mật (Private-key Cryptography),
2. Mã hố khố cơng khai (Public-key Cryptography).
1.1.2. Mã hóa khóa bí mật
Theo [3, 4], phương pháp mã hóa khóa bí mật (secret key cryptography) cịn
được gọi là mã hóa đối xứng (symmetric cryptography) sử dụng chung một khóa để
mã hóa và giải mã dữ liệu. Trước khi mã hóa dữ liệu để truyền đi trên mạng, hai bên
gửi và nhận phải có khóa và phải thống nhất thuật tốn dùng để mã hóa và giải mã.
Mã hóa khóa bí mật có thể phân thành hai nhóm: Thuật tốn khối (Tác động trên

4


bản rõ theo từng nhóm bits), Thuật tốn dịng (Tác động lên bản rõ theo từng bit
một).
Các thuật toán loại này có ưu điểm là tốc độ mã hóa và giải mã rất nhanh
nhưng bộc lộ hạn chế khi mã khóa bí mật phải được chia sẻ giữa bên gửi với bên
nhận. Vì vậy phương pháp mã hóa khóa bí mật chỉ nên dùng cho mục đích mã hóa
dữ liệu của cá nhân hay tổ chức đơn lẻ.
Bảng 1.1. Các thuật tốn mã hóa khóa bí mật

Tên thuật tốn

Mơ tả


Data Encryption DES là một thuật tốn mã hóa đối xứng dạng mã khối, mã hóa
Standard (DES) dữ liệu trong từng khối 64-bit sử dụng một khóa 56-bit với 8
bits chẵn lẽ. Chính độ dài của khóa ngắn cho nên DES là một
thuật tốn mã hóa hơi yếu.
Triple
(3DES)

DES 3DES là một thuật tốn mã hóa đối xứng tiến hành mã hóa dữ
liệu thông qua việc xử lý mỗi block 3 lần và mỗi lần dùng một
khóa khác nhau. Trước hết nó sẽ mã hóa bản rõ thành bản mã
hóa dùng một khóa, sau đó lại tiếp tục mã hóa bản mã hóa với
khóa, và tiếp tục mã hóa bản mã hóa thứ 2 này với một khóa
khác nữa.

Advanced
Encryption
Standard (AES)
algorithm

AES là thuật tốn mã hóa đối xứng theo khối 128-bit được
phát triển bởi Vincent Rijmen và được sự hỗ trợ của chính phủ
Mỹ xem như một thuật toán thay thế DES. AES cũng được
gọi là Rijndael. “Rhine-dale” phát âm theo tên người tạo ra.

Rivest
Cipher Thuật toán RC bao gồm một series được phát triển bởi Ronald
(RC) 4, 5, and 6 Rivest. Tất cả có chiều dài khóa khác nhau. RC4 là một thuật
tốn mã hóa dịng. RC5 và RC6 là các thuật tốn mã hóa khối
với các kích cỡ khác nhau

Skipjack

Skipjack là một thuật tốn mã hóa khối được thiết kế bởi Cơ
quan bảo mật quốc gia Hoa kỳ - US National Security Agency
(NSA) được sử dụng trong chip Clipper Fortezza PC card

Blowfish

Blowfish là một thuật tốn mã hóa miễn phí theo khối 64-bit
sử dụng khóa có độ dài khác nhau. Được phát triển bởi Bruce
Schneier.

CAST-128

CAST-128, được đặt theo tên người phát triển là Carlisle
Adams và Stafford Tavares, là một thuật toán mã hóa đối
xứng có chiều dài khóa 128-bit.

5


Trong các thuật toán trên, DES là thuật toán mã hố khóa bí mật điển hình
được sử dụng rộng rãi nhất trên thế giới. Ở thời điểm DES ra đời người ta đã tính
tốn rằng việc phá được khố mã DES là rất khó khăn, nó địi hỏi chi phí hàng chục
triệu USD và tiêu tốn khoảng thời gian rất nhiều năm. Cùng với sự phát triển của
các loại máy tính và mạng máy tính có tốc độ tính tốn rất cao, khố mã DES có thể
bị phá trong khoảng thời gian ngày càng ngắn với chi phí ngày càng thấp. Dù vậy
việc này vẫn vượt xa khả năng của các hacker thơng thường và mã hố DES vẫn
tiếp tục tồn tại trong nhiều lĩnh vực như ngân hàng, thương mại, thông tin... nhiều
năm nữa đặc biệt với sự ra đời của thế hệ DES mới, tức Triple DES".

Quá trình mã hóa của thuật tốn DES: Bước đầu tiên là chuyển 64 bit chìa
khố qua một bảng hốn vị gọi là Permuted Choice hay PC-1 để thu được chìa khố
mới có 56 bit. Sau khi vệc chuẩn bị chìa khố và dữ liệu mã hố hồn thành, thực
hiện mã hố bằng thuật toán DES. Đầu tiên, khối dữ liệu đầu vào 64 bit được chia
thành hai nửa, L và R. L gồm 32 bit bên trái và R gồm 32 bit bên phải. Quá trình
sau đây được lặp 16 lần tạo thành 16 vòng của DES gồm 16 cặp L[0]-L[15] và
R[0]-R[15]:
 R[r-1]- ở đây r là số vòng, bắt đầu từ 1- được lấy và cho qua bảng E (Ebit Selection Table), bảng này giống như một bảng hoán vị, có điều là
một số bit được dùng hơn một lần do vậy nó sẽ mở rộng R[r-1] từ 32
bit lên 48 bit để chuẩn bị cho bước tiếp theo.
 48 bit R[r-1] được XOR với K[r] và được lưu trong bộ nhớ đệm, vì vậy
R[r-1] khơng thay đổi.
 Kết quả của bước trước lại được chia thành 8 đoạn, mỗi đoạn 6 bit, từ
B[1] đến B[8]. Những đoạn này tạo thành chỉ số cho các bảng S
(Substitution) được sử dụng ở bước tiếp theo. Các bảng S, là một bộ 8
bảng (S[1]-S[8]) 4 hàng, 16 cột. Các số trong bảng có độ dài 4 bit vì
vậy có giá trị từ 0 đến 15.
 Bắt đầu từ B[1], bit đầu và cuối của khối 6 bit được lấy ra và sử dụng
làm chỉ số hàng của bảng S[1], nó có giá trị từ 0 đến 3, và 4 bit giữa
được dùng làm chỉ số cột, từ 0 đến 15. Giá trị được chỉ đến trong bảng
S được lấy ra và lưu lại. Việc này được lặp lại đối với B[2] và S[2] cho

6


đến B[8] và S[8]. Lúc này bạn có 8 số 4 bit, khi nối lại với nhau theo
thứ tự thu được sẽ tạo ra một chuỗi 32 bit.
 Kết quả của bước trước được hoán vị bit bằng bảng hoán vị P
(Permutation).
 Kết quả thu được sau khi hoán vị được XOR với L[r-1] và chuyển vào

R[r]. R[r-1] được chuyển vào L[r].
 Lúc này bạn có L[r] và R[r] mới. Bạn tiếp tục tăng r và lặp lại các bước
trên cho đến khi r= 17, đIều đó có nghĩa là 16 vịng đã được thực hiện
và các chìa khố phụ K[1]-K[16] đã được sử dụng.
 Khi đã có L[16] và R[16], chúng được ghép lại với nhau theo cách chúng
bị tách ra (L[16] ở bên trái và R[16] ở bên phải) thành 64 bit. 64 bit này
được hoán vị để tạo ra kết quả cuối cùng là dữ liệu 64 bit đã được mã
hố.
Q trình giải mã của thuật tốn DES: Việc giải mã dùng cùng một thuật toán
như việc mã hoá. Để giải mã dữ liệu đã được mã hố, q trình như giống như mã
hố được lăp lại nhưng các chìa khố phụ được dùng theo thứ tự ngược lại từ K[16]
đến K[1], nghĩa là trong bước 2 của q trình mã hố dữ liệu đầu vào ở trên R[r-1]
sẽ được XOR với K[17-r] chứ không phải với K[r].
1.1.3. Mã hóa khóa cơng khai
Theo [4, 7], phương pháp mã hóa khóa cơng khai (public key cryptography)
đã giải quyết được vấn đề của phương pháp mã hóa khóa bí mật là sử dụng hai khóa
khóa cơng khai (public key) và khóa bí mật (private key). Public key được gửi cơng
khai trên mạng, trong khi đó private key được giữ kín. Public key và private key có
vai trị trái ngược nhau, một khóa dùng để mã hóa và khóa kia sẽ dùng để giải mã.
Phương pháp này còn được gọi là mã hóa bất đối xứng (asymmetric cryptography)
vì nó sử dụng hai khóa khác nhau để mã hóa và giải mã dữ liệu.
Giả sử B muốn gửi cho A một thơng điệp bí mật sử dụng phương pháp mã hóa
khóa cơng khai. Ban đầu, A có cả private key và public key. A sẽ giữ private key ở
nơi an toàn và gửi public key cho B. B mã hóa và gửi cho A thơng điệp đã mã hóa
bằng public key nhận được của A. Sau đó A sẽ giải mã thơng điệp bằng private key
của mình. Ngược lại nếu A muốn gửi thơng điệp cho B thì A phải mã hóa thơng
điệp bằng public key của B.

7



Các thuật tốn loại này cho phép trao đổi khóa một cách dễ dàng và tiện lợi.
Tuy nhiên, tốc độ mã hóa chậm nên thường chỉ được sử dụng mã hóa dữ liệu nhỏ.
Bảng 1.2. Các thuật tốn mã hóa khóa cơng khai

Tên thuật tốn

Mơ tả

Rivest
Shamir RSA, được đặt tên theo người thiết kế là Ronald Rivest, Adi
Adelman (RSA) Shamir, và Len Adelman, là thuật tốn thành cơng đầu tiên sử
dụng cho mã hóa khóa cơng (public-key encryption). Nó có
độ dài khóa khác nhau và các kích cỡ khối khác nhau. RSA
vẫn được xem là rất an toàn nếu được triển khai dùng với các
khóa có chiều dài lớn.
Diffie-Hellman

Diffıe-Hellman là một giao thức mã hóa cung cấp khóa
chuyển đổi an tồn. Được mơ tả vào năm 1976, được hình
thành trên nền tảng của các các kỹ thuật mã hóa public-key
phổ biến bao gồm cả RSA.

Elgamal

Elgamal là một thuật toán mã hóa public-key được phát triển
bởi Taher Elgamal. Nó cũng dựa trên nền tảng của Diffie Hellman.

Paillier
Cryptosystem


Paillier cryptosystem là một thuật tốn mã hóa bất đối xứng
được phát triển bởi Pascal Paillier.

Thuật toán RSA (được đặt tên từ ba nhà phát minh là Ron Rivest, Adi Shamir
và Leonard Adleman) là thuật tốn mã hóa khóa cơng khai được sử dụng nhiều
nhất. Thuật toán sử dụng biểu thức với hàm mũ để mã hóa bản gốc thành các khối,
mỗi khối có một giá trị nhị phân nhỏ hơn n.
Giả sử khối bản gốc của người gửi là M và khối bản mã của người nhận là C
thì:
e

 C = M mod n
d

 M = C mod n
Cả người gửi và người nhận phải biết giá trị n. Người gửi biết giá trị e và chỉ
người nhận biết giá trị d. Đây là một thuật tốn mã hóa khóa cơng khai với khóa
cơng khai KU = {e,n} và khóa riêng KR = {d,n}. Để thuật tốn này được thỏa mãn
cho mã hóa khố công khai, các yêu cầu sau đây phải được đáp ứng:
 Có thể tìm thấy giá trị của e, d, n sao cho Med = M mod n với tất cả
M < n.

8


 Tương đối dễ tính tốn Me và C với tất cả các giá trị của M < n.
 Không thể xác định d dựa trên e và n.

Hình 1.2. Sơ đồ biểu diễn thuật toán RSA


1.1.4. Hàm băm
Theo [7], hàm băm là giải thuật nhằm sinh ra các giá trị băm tương ứng với
mỗi khối dữ liệu. Mục đích của một hàm băm là tạo ra một "dấu vân tay" của một
tập tin, thông điệp, hoặc khối dữ liệu khác. Nếu H là hàm băm thì H có các thuộc
tính sau đây:
 H có thể được áp dụng cho một khối dữ liệu có kích thước bất kỳ.
 H tạo ra một đầu ra có độ dài cố định.
 H (x) là tương đối dễ dàng để tính tốn cho bất kỳ x được đưa ra, cho cả
phần cứng và phần mềm triển khai thực tế.
 Đối với bất kỳ mã h, gần như khơng thể tìm x sao cho H (x) = h.
 Đối với bất kỳ khối cho x, gần như khơng thể tìm y ≠ x với H (y) = H
(x).
 Gần như khơng thể tìm thấy bất kỳ cặp (x, y) sao cho H (x) = H (y).
Ba thuộc tính đầu tiên được yêu cầu đối với các ứng dụng thực tế của một hàm
băm để xác thực thơng điệp. Thuộc tính thứ tư là thuộc tính "một chiều": Nó dễ
dàng để tạo ra một mã khi đưa ra thông điệp, nhưng hầu như không thể tạo ra một
thông điệp khi đưa ra một mã. Thuộc tính này là quan trọng nếu các kỹ thuật xác
thực bao gồm việc sử dụng một giá trị bí mật.

9


Bảo đảm thuộc tính thứ năm mà khơng thể tìm thấy một thông điệp thay thế
với giá trị băm như thông điệp đã đưa ra. Điều này ngăn cản sự giả mạo khi một mã
băm mật mã được sử dụng. Nếu thuộc tính này khơng đúng, kẻ tấn cơng sẽ có khả
năng làm theo trình tự sau đây: Thứ nhất, thực hiện hoặc ngăn chặn tin nhắn cộng
với mã mã hóa băm của nó; thứ hai, tạo ra một mã băm khơng được mã hóa từ
thơng điệp; thứ ba, tạo ra một thông điệp sửa đổi với cùng mã băm.
Một hàm băm thỏa mãn năm thuộc tính đầu tiên trong danh sách trước đó

được gọi là một hàm băm yếu. Nếu các thuộc tính thứ sáu là cũng được thỏa mãn
thì được gọi là một hàm băm mạnh.
Hàm băm có thể được ứng dụng để tạo chữ kí điện tử, chống và phát hiện xâm
nhập hay dùng để bảo vệ tính tồn vẹn của thơng điệp được gửi qua mạng.
Bảng 1.3. Các thuật tốn băm

Tên thuật tốn

Mơ tả

Message Digest 5 Thuật tốn MD5 tạo thành một dạng thơng điệp được mã hóa
(MD5)
với 128-bit, được tạo ra bởi Ronald Rivest và hiện là cơng
nghệ mã hóa mang tính phổ biến rộng rãi - public.
Secure
Hash
Algorithm (SHA)
versions 1, 256,
384, và 512 bit.

SHA dựa trên mơ hình MD5 nhưng mạnh hơn gấp 2 lần.
SHA-1 tạo giá trị hash với 160-bit. Trong khi đó SHA-256,
SHA-384, và SHA-512 tạo gái trị hash tương ứng với 256-bit,
384-bit, và 512-bit.

1.1.4.1. Giải thuật MD5
MD5 (Message-Digest algorithm 5) được thiết kế bởi Ronald Rivest vào năm
1991 để thay thế cho hàm băm trước đó, MD4 (cũng do ơng thiết kế, trước đó nữa
là MD2). MD5 là một hàm băm để mã hóa với giá trị băm là 128bit được sữ dụng
rộng rãi trong các chương trình an ninh mạng, được dùng để kiểm tra tính nguyên

vẹn của tập tin và ứng dụng trong chữ ký điện tử.
Quá trình xử lý của thuật toán bao gồm các bước sau:
Bước 1: Gắn thêm các bit
Thông điệp được mở rộng, thêm bit vào phía sau sao cho độ dài của nó (tính
theo bit) đồng dư với 448 theo môđun 512. Nghĩa là thông điệp được mở rộng sao
cho nó cịn thiếu 64 bit nữa thì sẽ có một độ dài chia hết cho 512. Việc này luôn

10


được thực hiện ngay cả khi bản thân độ dài thông điệp đã đồng dư với 448 theo
môđun 512.
Trong tất cả các trường hợp, có ít nhất 1 và nhiều nhất 512 bit được thêm vào.
Việc thêm bit này thực hiện như sau: một bit “1“ được thêm vào sau thơng điệp, sau
đó các bit “0“ được thêm vào để có một độ dài đồng dư với 448 mơđun 512.

Hình 1.3. Một thao tác trong 64 tác vụ của thuật toán MD5

Bước 2: Gắn thêm độ dài
Độ dài của khối dữ liệu ban đầu được biểu diễn dưới dạng nhị phân 64-bit và
được thêm vào cuối chuỗi nhị phân kết quả của bước 1. Nếu độ dài của khối dữ liệu
ban đầu > 264, chỉ 64 bits thấp được sử dụng, nghĩa là giá trị được thêm vào bằng K
mod 264. Kết quả có được từ 2 bước đầu là một khối dữ liệu có độ dài là bội số của
512. Khối dữ liệu được biểu diễn: Bằng một dãy L khối 512-bit Y0, Y1,…, YL-1;
Bằng một dãy N từ (word) 32-bit M0, M1, MN-1. Vậy N = L x 16 (32 x 16 = 512).
Bước 3: Khởi tạo bộ đệm MD
Một bộ đệm 128-bit được dùng lưu trữ các giá trị băm trung gian và kết quả.
Bộ đệm được biểu diễn bằng 4 thanh ghi 32-bit với các giá trị khởi tạo ở dạng littleendian (byte có trọng số nhỏ nhất trong từ nằm ở địa chỉ thấp nhất) như sau:
 A = 67 45 23 01
 B = EF CD AB 89

 C = 98 BA DC FE

11


 D = 10 32 54 76
Bước 4: Xử lý các khối dữ liệu 512-bit
Trọng tâm của giải thuật là hàm nén (compression function) gồm 4 “vòng” xử
lý. Các vòng này có cấu trúc giống nhau nhưng sử dụng các hàm luận lý khác nhau
gồm F, G, H và I:
 F(X,Y,Z) = X ∧ Y ∨ ̚ X ∧ Z
 G(X,Y,Z) = X ∧ Z ∨ Y ∧ ̚ Z
 H(X,Y,Z) = X xor Y xor Z
 I(X,Y,Z) = Y xor (X ∨ ̚ Z)
Mảng 64 phần tử được tính theo cơng thức: T[i] = 232 x abs(sin(i)), i được
tính theo radian. Kết quả của 4 vòng được cộng (theo modulo 232 với đầu vào CVq
để tạo CVq+1
Bước 5: Xuất kết quả
Sau khi xử lý hết L khối 512-bit, đầu ra của lần xử lý thứ L là giá trị băm 128
bits.
1.1.4.2. Giải thuật SHA-1
SHA (Secure Hash Algorithm) là năm thuật giải được chấp nhận bởi FPS
(Federal Information Processing Standards) dùng để chuyển một đoạn dữ liệu nhất
định thành một đoạn dữ liệu có chiều dài khơng đổi với xác suất khác biệt cao.
Có năm thuật giải SHA là SHA-1 (trả lại kết quả dài 160 bit), SHA-224 (trả lại
kết quả dài 224 bit), SHA-256 (trả lại kết quả dài 256 bit), SHA-384 (trả lại kết quả
dài 384 bit), và SHA-512 (trả lại kết quả dài 512 bit).

Hình 1.4. Sinh ra tiêu hóa tin sử dụng SHA-1


12


Thuật giải SHA là thuật giải băm mật được phát triển bởi cục an ninh quốc gia
Mĩ (National Security Agency hay NSA) và được xuất bản thành chuẩn của chính
phủ Mĩ bởi viện công nghệ và chuẩn quốc gia Mĩ (National Institute of Standards
and Technology hay NIST). Bốn thuật giải sau thường được gọi chung là SHA-2.
SHA-1 được sử dụng rộng rãi trong nhiều ứng dụng và giao thức an ninh khác nhau,
bao gồm TLS và SSL, PGP, SSH, S/MIME, và IPSec. SHA-1 được coi là thuật giải
thay thế MD5, một thuật giải băm 128 bit phổ biến khác.
Quá trình xử lý của thuật toán bao gồm các bước sau:
Bước 1: Gắn thêm các bit
Thông điệp được mở rộng, thêm bit vào phía sau sao cho độ dài của nó (tính
theo bit) đồng dư với 448 theo mơđun 512. Nghĩa là thơng điệp được mở rộng sao
cho nó cịn thiếu 64 bit nữa thì sẽ có một độ dài chia hết cho 512. Việc này luôn
được thực hiện ngay cả khi bản thân độ dài thông điệp đã đồng dư với 448 theo
mơđun 512.
Trong tất cả các trường hợp, có ít nhất 1 và nhiều nhất 512 bit được thêm vào.
Việc thêm bit này thực hiện như sau: một bit “1“ được thêm vào sau thơng điệp, sau
đó các bit “0“ được thêm vào để có một độ dài đồng dư với 448 môđun 512.
Bước 2: Gắn thêm độ dài
Độ dài của khối dữ liệu ban đầu được biểu diễn dưới dạng nhị phân 64-bit và
được thêm vào cuối chuỗi nhị phân kết quả của bước 1. Độ dài được biểu diễn dưới
dạng nhị phân 64-bit không dấu. Kết quả có được từ 2 bước đầu là một khối dữ liệu
có độ dài là bội số của 512. Khối dữ liệu được biểu diễn: Bằng một dãy L khối 512bit Y0, Y1,…, YL-1; Bằng một dãy N từ (word) 32-bit M0, M1, MN-1. Vậy N = L x 16
(32 x 16 = 512)
Bước 3: Khởi tạo bộ đệm MD
Một bộ đệm 160-bit được dùng lưu trữ các giá trị băm trung gian và kết quả.
Bộ đệm được biểu diễn bằng 5 thanh ghi 32-bit với các giá trị khởi tạo ở dạng bigendian (byte có trọng số lớn nhất trong từ nằm ở địa chỉ thấp nhất) như sau:
 A = 01 23 45 67

 B = 89 AB CD EF
 C = FE DC BA 98

13


 D = 76 54 32 10
 E = C3 D2 E1 F0
Bước 4: Xử lý các khối dữ liệu 512-bit
Trọng tâm của giải thuật bao gồm 4 vòng lặp thực hiện tất cả 80 bước. 4 vịng
lặp có cấu trúc như nhau, chỉ khác nhau ở các hàm logic f1, f2, f3, f4. Mỗi vịng có
đầu vào gồm khối 512-bit hiện thời và một bộ đệm 160-bit ABCDE. Các thao tác sẽ
cập nhật giá trị bộ đệm. Mỗi bước sử dụng một hằng số Kt (0 ≤ t ≤ 79)
 Kt = 5A827999 (0 ≤ t ≤ 19)
 Kt = 6ED9EBA1 (20 ≤ t ≤ 39)
 Kt = 8F1BBCDC (40 ≤ t ≤ 59)
 Kt = CA62C1D6 (60 ≤ t ≤ 79)
Đầu ra của 4 vòng (bước 80) được cộng với đầu ra của bước CVq để tạo ra
CVq+1
Bước 5: Xuất kết quả
Sau khi thao tác trên toàn bộ L khối. Kết quả của khối thứ L là bảng băm 160bit

1.2. Về chữ kí điện tử
1.2.1. Khái niệm chữ ký điện tử
Chữ ký điện tử được tạo lập dưới dạng từ, chữ, số, ký hiệu, âm thanh hoặc các
hình thức khác bằng phương tiện điện tử, gắn liền hoặc kết hợp một cách lơ gíc với
thơng điệp dữ liệu, có khả năng xác nhận người ký thơng điệp dữ liệu và xác nhận
sự chấp thuận của người đó đối với nội dung thông điệp dữ liệu được ký (Theo luật
giao dịch điện tử của Quốc hội nước Cộng hòa xã hội chủ nghĩa Việt Nam số
51/2005/QH11, theo [6]).

Khái niệm chữ ký số (digital signature) và chữ ký điện tử (electronic
signature) thường được dùng thay thế cho nhau mặc dù chúng khơng hồn tồn có
cùng nghĩa. Chữ ký số chỉ là một tập con của chữ ký điện tử (chữ ký điện tử bao
hàm chữ ký số). Chữ ký số thường được sử dụng để thực thi chữ ký điện tử, nhưng
không phải tất cả các chữ ký điện tử sử dụng chữ ký số.
Chữ ký số sử dụng một kiểu mật mã phi đối xứng (asymmetric cryptography).
Với các thông điệp gửi qua một kênh khơng an tồn, một chữ ký số thực thi đúng

14


×