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 (LV thạc sĩ)

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.5 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 hoàn toà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 hoà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 để hoà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 hoà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 quý báu của quý 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 hoà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 toà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 toá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 toán mã hóa khóa bí mật ....................................................5
Bảng 1.2. Các thuật toán mã hóa khóa công khai ..............................................8
Hình 1.2. Sơ đồ biểu diễn thuật toán RSA .........................................................9
Bảng 1.3. Các thuật toán băm...........................................................................10
Hình 1.3. Một thao tác trong 64 tác vụ của thuật toá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ự toà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 toà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 toà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 toà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 toà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 toà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 toà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 toá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 toán mã hóa đề cập tới nghành khoa học nghiên cứu về mã hoá
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ã hoá 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ã hoá 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 toà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 toà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 quá 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 toán mã hoá khác nhau. Từ những thuật toá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ã hoá 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 khoá:
1. Mã hoá khoá bí mật (Private-key Cryptography),
2. Mã hoá khoá 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 toá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 toán khối (Tác động trên

4


bản rõ theo từng nhóm bits), Thuật toá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 toán mã hóa khóa bí mật

Tên thuật toán

Mô tả

Data Encryption DES là một thuật toá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 toán mã hóa hơi yếu.
Triple
(3DES)

DES 3DES là một thuật toá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 toá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
toán mã hóa dòng. RC5 và RC6 là các thuật toán mã hóa khối
với các kích cỡ khác nhau
Skipjack


Skipjack là một thuật toá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 toá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ã hoá 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
toán rằng việc phá được khoá 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 toán rất cao, khoá 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ã hoá 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 toán DES: Bước đầu tiên là chuyển 64 bit chìa
khoá qua một bảng hoán vị gọi là Permuted Choice hay PC-1 để thu được chìa khoá

mới có 56 bit. Sau khi vệc chuẩn bị chìa khoá và dữ liệu mã hoá hoàn thành, thực
hiện mã hoá 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 khoá 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ã
hoá.
Quá trình giải mã của thuật toá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ã hoá, quá trình như giống như mã
hoá được lăp lại nhưng các chìa khoá 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 quá trình mã hoá 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 toá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 toán mã hóa khóa công khai

Tên thuật toá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 toá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 toà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 toá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 toá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 toá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 toán này được thỏa mãn
cho mã hóa khoá 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 toá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 toá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 toàn vẹn của thông điệp được gửi qua mạng.
Bảng 1.3. Các thuật toán băm

Tên thuật toán

Mô tả

Message Digest 5 Thuật toá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 hoàn toà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 toàn, một chữ ký số thực thi đúng

14


×