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

Xây dựng hệ thống quản lý chứng chỉ số sử dụng công nghệ IAIK và SSL

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 (1.47 MB, 120 trang )

ĐẠI HỌC CÔNG NGHỆ
ĐẠI HỌC QUỐC GIA HÀ NỘI

VŨ VĂN TRIỆU

XÂY DỰNG HỆ THỐNG QUẢN LÝ CHỨNG CHỈ SỔ SỬ
DỤNG CÔNG NGHỆ IAIK VÀ SSL

LUẬN VĂN TH.S CÔNG NGHỆ THÔNG TIN

Ngưới hướng dẫn:PGS.TS Trịnh Nhật Tiến

Hà Nội 2007


MỤC LỤC
LỜI CẢM ƠN ..................................................................................................................... 4
CÁC THUẬT NGỮ VIẾT TẮT ......................................................................................... 5
MỞ ĐẦU ............................................................................................................................. 8
Chương 1. CÁC KHÁI NIỆM CƠ BẢN .......................................................................... 10
1.1. HỆ MÃ HÓA KHÓA ĐỐI XỨNG (Symmetric Key Cryptosystems) ................... 10
1.1.3 Hệ mã hóa RC2 ................................................................................................. 14
1.1.4. Hệ mã hóa RC4 ................................................................................................. 18
1.1.5. Hệ mã hóa IDEA ............................................................................................... 19
1.1.6. Giao thức trao đổi khóa .................................................................................... 22
1.2. HỆ MÃ HÓA KHÓA CÔNG KHAI....................................................................... 24
1.2.1. Khái niệm mã hóa công khai ............................................................................ 24
1.2.2. Hệ mã hóa RSA................................................................................................. 28
1.2.3. Các vấn đề liên quan đến hệ mã hóa RSA ....................................................... 30
1.3. GIAO THỨC SSL ................................................................................................... 32
1.3.1. Giới thiệu giao thức SSL .................................................................................. 32


1.3.2. Vị trí của tầng giao thức SSL ........................................................................... 33
1.3.3. Hoạt động của giao thức SSL ........................................................................... 34
Chương 2. VẤN ĐỀ CÔNG NGHỆ CỦA ...................................................................... 41
CƠ SỞ HẠ TÂNG MẬT MÃ KHÓA CÔNG KHAI ....................................................... 41
2.1. GIỚI THIỆU .......................................................................................................... 41
2.1.1. Khái niệm cơ sở hạ tầng mật mã khóa công khai. ........................................... 41
2.1.2. Tình hình sử dụng chứng chỉ khóa công khai................................................. 43
2.2. CHỨNG CHỈ KHÓA CÔNG KHAI ...................................................................... 50
2.2.1. Định dạng X.509 của chứng chỉ số ................................................................... 50
2.2.2. Đường chứng thực và sự tin tưởng .................................................................. 52
2.2.3. Các trường cơ bản của một chứng chỉ số......................................................... 52
2.2.3.1 Trường tbsCertificate ................................................................................. 53
2.2.3.2. Trường signatureAlgorithm ...................................................................... 54
2.2.3.3. Trường signatureValue ............................................................................. 54
2.2.3.4. Trường version .......................................................................................... 54
2.2.3.5. Trường serialNumber ............................................................................... 54
2.2.3.6. Trường signature ...................................................................................... 54
2.2.3.7. Trường issuer ............................................................................................ 55
2.2.3.8. Trường validity ......................................................................................... 56
2.2.3.9. Trường subject .......................................................................................... 56
2.2.3.10. Trường subjectPublicKeyInfo ................................................................. 56
2.2.4. Định dạng PEM của chứng chỉ số .................................................................... 57
2.2.5. Mô hình quản lý chứng chỉ số ......................................................................... 58
2.2.5.1. Đối tượng sử dụng ..................................................................................... 59
2.2.5.2. Thành phần CA.......................................................................................... 60
2.2.5.3. Thành phần RA......................................................................................... 60
2.2.5.4. Kho thông tin ............................................................................................ 61
2.2.5.5. CRL Ủy quyền........................................................................................... 61
2.2.6. Các chức năng quản lý chứng chỉ số .............................................................. 61
2



2.2.6.1. Đăng ký...................................................................................................... 61
2.2.6.2. Khởi tạo ..................................................................................................... 62
2.2.6.3. Chứng thực................................................................................................ 62
2.2.6.4. Phục hồi cặp khóa ..................................................................................... 62
2.2.6.5. Cập nhật cặp khóa .................................................................................... 62
2.2.6.6. Yêu cầu thu hồi ......................................................................................... 63
2.2.6.7. Chứng thực chéo ....................................................................................... 63
2.2.6.8. Các chức năng thêm .................................................................................. 63
2.2.7. Các giao thức quản lý chứng chỉ số ................................................................. 64
Chương 3. THỬ NGHIỆM XÂY DỰNG HỆ THỐNG QUẢN LÝ CHỨNG CHỈ SỐ .. 65
3.1. TỔNG QUAN ......................................................................................................... 65
3.2. YÊU CẦU ................................................................................................................ 68
3.3. PHÂN TÍCH ........................................................................................................... 70
3.3.1. Hoạt động của hệ thống .................................................................................... 70
3.3.2. Xem xét hệ thống dưới góc độ khách hàng sử dụng ....................................... 71
3.3.3. Xem xét hệ thống dưới góc độ quản trị hệ thống............................................ 75
3.3.4. Hiện thực hoá hệ thống CA ............................................................................. 78
3.4. Công cụ hỗ trợ PKI :IAIK ..................................................................................... 80
3.4.1. Giới thiệu chung về IAIK ................................................................................. 80
3.4.2. Sử dụng IAIK xây dựng hệ thống .................................................................... 81
3.5 HỆ THỐNG QUẢN LÝ CHỨNG CHỈ SỐ ............................................................. 83
3.5.1. Mô hình phân cấp hệ thống .............................................................................. 84
3.5.2. Một số chức năng chính của hệ thống .............................................................. 85
3.5.2.1. Cấp mới ...................................................................................................... 85
3.5.2.2. Gia hạn hoặc thay thế ................................................................................ 86
3.5.2.3. Xem trạng thái yêu cầu .............................................................................. 87
3.5.2.4. Tìm kiếm, xem trạng thái và lấy chứng chỉ số .......................................... 87
3.5.2.5. Xem và cài đặt chuỗi chứng thực .............................................................. 88

3.5.2.6. Xem và cài đặt danh sách chứng chỉ số bị thu hồi .................................... 88
3.5.2.7 Đăng ký thu hồi ........................................................................................... 89
3.5.2.8 Quản trị hệ thống ........................................................................................ 89
KẾT LUẬN ....................................................................................................................... 91
TÀI LIỆU THAM KHẢO ................................................................................................ 92
PHỤ LỤC .......................................................................................................................... 93

3


CÁC THUẬT NGỮ VIẾT TẮT
CA – Certification Authority
Thực thể có thẩm quyền chứng thực, là thực thể duy nhất trong PKI có chức
năng cấp chứng chỉ số.
ASN.1 – Abstract Syntax Notation One
Là một ngôn ngữ hình thức mô tả các thông điệp được trao đổi trong một phạm
vi rộng giữa các các dụng trong môi trường Internet, mạng thông minh, mạng di
động, thương mại điện tử…
BER – Basic Encoding Rules
Luật mã hóa cơ bản. Một luật mã hóa được sử dụng trong thập kỷ 80. Nó đơn
giản, thô, những không có hiệu quả.
CRL – Certificate Revocation List
Danh sách các chứng chỉ số bị thu hồi hay không còn hợp lệ.
DER – Distinguished Encoding Rules
Luật mã hóa phân biệt. Luật mã hóa không có sự tùy chọn sẽ đơn giản, thô
nhưng không có hiệu quả. Luật mã hóa DER diễn giải cả các thành phần tùy
chọn, ví dụ: định nghĩa chiều dài hay không, lựa chọn các kiểu.
Digital Certificate
Chứng chỉ số, là một cấu trúc dữ liệu được sử dụng trong PKI để gắn các thông
tin đã được xác thực của một đối tượng vào một khóa công khai của đối tượng

đó. Nó có nhiều cách gọi khác: certificate, public key certificate.
Digital Signature
Chữ ký điện tử, là một kỹ thuật sử dụng mã khóa công khai cho phép không thể
giả mạo một thông điệp.
DSA – Digital Signature Algorithm
Một thuật toán được sử dụng cho công nghệ chữ ký điện tử được định nghĩa bởi
NIST.
LDAP - Lightweight Directory Access Protocol
LDAP là dịch vụ thư mục của IETF đã được dùng rộng rãi trên Internet.
PEM - Privacy Enhanced Mail
PEM là một chuẩn của Internet dùng để trao đổi bảo mật thư tín điện tử.
5


PKI – Public key Cryptography Infrastruture
Cơ sở hạ tầng mã khóa công khai, là hệ thống sử dụng hệ mã khóa công khai
cho việc chứng thực, đảm bảo bí mật và toàn vẹn thông tin.
PKIX - Public key Cryptography Infrastruture X.509
Cơ sở hạ tầng mã khóa công khai dựa trên X.509 do một nhóm của IETF đưa ra
để áp dụng PKI cho Internet.
PKCS – Public key Cryptographic Standards
Các chuẩn của mã hóa khóa công khai. Đây là các chuẩn do RSA Laboratories
định nghĩa.
Private Key Khóa riêng, một trong hai khóa trong cặp khóa trong hệ mã hóa
bất đối xứng.
Public Key Khóa công khai, khóa còn lại trong cặp khóa tương ứng với Private
key.
Message Digest Dạng băm của thông điệp. Phương pháp băm dữ liệu sử dụng
các thuật toán một chiều, từ dữ liệ băm không thể xác định được dữ liệu gốc.
Chiều dài của kết quả băm (tính bằng byte) là cố định đối với mỗi thuật toán

băm.
RA – Registration Authority
Thực thể được CA ủy quyền quản lý việc đăng ký.
RFC – Requests for Comments
Là những công bố chính thức của mạng Internet , đươ ̣c sử du ̣ng từ năm 1969 để
mô tả và tiế p thu những nhâ ̣n xét về các giao thức , thủ tục, chương triǹ h và các
khái niệm .
RSA
Một trong hệ mã khóa công khai đầu tiên, được công bố vào năm 1983. RSA do
3 nhà khoa học Rivest, Shamir và Adleman tìm ra.
X.500
Đây là chuẩn định nghĩa các dịch vụ thư mục, bao gồm cả chứng chỉ số.
X.501
Định nghĩa các trường và giá trị tương ứng trong đăc tả dịch vụ thư mục.
6


X.509
Chuẩn định dạng chứng chỉ số, do ITU ban hành.
Ciphertext Bản mã.
Plaintext Bản rõ.
IAIK
Institute for Applied Information Processing and Communication : Cung cấp
Crypto toolkit viết trên ngôn ngữ Java.

7


MỞ ĐẦU
Cuộc cách mạng công nghệ thông tin.

Sự ra đời và phát triển nhanh chóng của cuộc cách mạng công nghệ thông tin
đã đem lại một năng lực phát triển mới cho xã hội. Mọi người sử dụng máy tính
và tận hưởng thành quả của hệ thống truyền thông một cách vô thức để đạt được
mục đích của mình mà hầu như không cảm nhận rõ rệt sự hiện hữu của chúng.
Điều này khẳng định ảnh hưởng của cuộc cách mạng công nghệ thông tin là rất
sâu đậm, và để lại dấu ấn trên từng hành vi của mỗi cá nhân hàng ngày, hàng
giờ.
Xã hội số hoá.
Vai trò chủ đạo của mạng nói chung và Internet nói riêng là quá rõ ràng trong
nền kinh tế thế giới mới. Trên nó, xã hội số hoá hay còn được biết dưới tên gọi
không gian điều khiển đang hình thành và không ngừng lớn rộng dần. Trong thế
giới ảo này, các phương tiện, nghi thức, quy ước, luật lệ của loài người đang
dần được tái sáng tạo.
An toàn bảo mật.
Một trong những thách thức lớn nhất đối với sự mở rộng tầm ảnh hưởng của
xã hội số hoá trong thời gian gần đây là vấn đề an toàn bảo mật. Nói nôm na là
làm thế nào để ngăn ngừa các hành vi truy nhập bất hợp pháp hoặc chế ngự các
loại tội phạm tin học (điều này có thể dự đoán trước bởi một xã hội không thể
phát triển mà không dựa trên một nền tảng pháp luật). Chúng tồn tại dưới các
dạng nguy cơ khác nhau, từ nghe trộm, sửa đổi trái phép thông tin cho đến giả
mạo, gian lận thương mại...
Đa phần các nguy cơ đều bắt nguồn từ bản chất phân tán của mạng Internet,
nơi các thành viên tham gia không tiếp xúc vật lý trực tiếp với nhau (như trong
thế giới thực) và thông tin giao dịch buộc phải lưu chuyển qua nhiều trạm trung
chuyển không nằm trong sự kiểm soát của cá nhân. Đơn giản, ta tưởng tượng
một giao dịch chuyển tiền trị giá 1.000.000$ chắc sẽ khó lòng được thực hiện
qua mạng nếu không được đảm bảo là không ai có thể xâm nhập để sửa đổi hoặc
nghe trộm thông tin. Như vậy, nhu cầu an toàn bảo mật trên kênh truyền tin là
rất thiết thực và bức xúc, nó đã trở thành một vấn đề thời sự đòi hỏi giải quyết
triệt để và có hệ thống.

8


Chứng chỉ số là một trong các công cụ để thực hiện an toàn và bảo mật
trong hệ thống thông tin .
Các mục tiêu chung của hệ thống bảo mật là đảm bảo:
 Tính bí mật (Secrecy hay Confidential): Tài nguyên chỉ có thể được truy
cập bởi người có thẩm quyền.
 Tính toàn vẹn (Accuracy, Integrity, Authencity): Tài nguyên chỉ được
sửa đổi bởi người có thẩm quyền.
 Tính khả dụng (Avaiability): Tài nguyên (thông tin, dịch vụ) luôn được
sẵn sàng đáp ứng cho người có thẩm quyền.
Vì vậy việc xây dựng Hệ Thống Quản Lý Chứng Chỉ Số là rất cần thiết,
quan trọng và tất yếu. Trên thế giới đã có rất nhiều tổ chức khác nhau xây dựng
hệ thống này như Verisign, GlobalSign , RSASecurity… Do tính tất yếu cho nên
việc xây dựng Hệ Thống Quản Lý Chứng Chỉ Số ở Việt Nam là vô cùng quan
trọng nó đóng một trong những vai trò quyết định đối với sự phát triển công
nghệ thông tin của nước nhà.
Luận văn nghiên cứu xây dựng hệ thống quản lý chứng chỉ số dựa trên công
nghệ SSL và IAIK. Đồng thời cũng đưa ra các giải pháp về công nghệ cho các
ứng dụng thực tế liên quan đến chứng chỉ số.
Luận văn bao gồm 3 chương:
Chương 1: Trình bày về các khái niệm cơ bản: mã hóa đối xứng, mã hóa
khóa công khai, giao thức SSL.
Chương 2: Trình bày một số vấn đề về công nghệ của cơ sở hạ tầng mật mã
khóa công khai.
Chưong 3: Trình bày về việc thử nghiệm xây dựng hệ thống cung cấp và
quản lý chứng chỉ số.

9



Chương 1. CÁC KHÁI NIỆM CƠ BẢN

1.1. HỆ MÃ HÓA KHÓA ĐỐI XỨNG (Symmetric Key Cryptosystems)
1.1.1. Khái niệm mã hóa khóa đối xứng.
Để đảm bảo tính bí mật, các thông điệp trong kênh truyền tin cần phải được
mã hoá. Mô hình về truyền tin có bảo mật có thể xem xét như sau:

Người gửi

Mã hóa

Kênh
truyền tin

Người nhận

Giải mã

Hình 1-1. Mô hình truyền tin có bảo mật
Cơ chế hoạt động:
Người phát tin S muốn gửi một thông tin X tới người nhận R qua một kênh
truyền tin, “đối tượng thứ 3” E có thể nghe trộm để lấy được thông tin X.
S sử dụng một phép mã hoá thông tin X, để tạo ra đoạn mã Y khó có thể
đọc được. Y đã che giấu nội dung của thông tin X. Khoá là thông số điều khiển
của phép biến đổi này. Giải mã là quá trình ngược lại cho phép người nhận thu
được thông tin ban đầu X từ đoạn mã Y.
Nếu biết khóa lập mã, dễ dàng tính được khóa giải mã và ngược lại, hệ mã
hoá khi đó gọi là hệ mã khoá đối xứng( trong một số hệ mã hóa khóa đối xứng,

khóa lập mã và khóa giải mã là trùng nhau)

10


1.1.2. Hệ mã hóa DES (Data Encryption Standard)
Chuẩn mã hoá dữ liệu DES do hãng IBM đề xuất năm 1974 gây tiếng vang
lớn và nhanh chóng được sử dụng rộng rãi, đến năm 1977 được chấp nhận là
chuẩn liên bang Mỹ. Với DES dữ liệu được mã hoá theo từng khối 64-bits sử
dụng khoá 56-bits. Thuật toán chuyển đổi 64-bits đầu vào qua một dãy các bước
và đưa ra 64-bits mã hoá.
Sơ đồ mã hóa DES:
Việc mã hoá trong DES được thực hiện theo các pha với hai đầu vào Dữ liệu
cần mã hoá và khoá. Dữ liệu vào phải là các khối 64-bits và khoá là 56-bits
(thực tế 64 bits khoá được đưa vào hàm xử lý, tuy nhiên chỉ có 56 bits được sử
dụng cho mã hoá và 8 bits còn lại sử dụng cho parity kiểm tra chẵn lẻ). 64-bits
bản tin rõ (plaintext) được đưa qua một cơ chế hoán vị ban đầu (IP- initial
permutation) sau đó chúng phải đi qua 16 vòng lặp với cùng chức năng bao gồm
cả hàm hoán vị và thay thế. Sau 16 vòng lặp thu được 64-bits dữ liệu là tổ hợp
của bản tin rõ và khóa và phải qua đổi chỗ 32-bit, tiếp theo là hoán vị ngược (IP1
) với hoán vị ban đầu để được bản mã.
56 – bit key

Hoán vị chọn
1

64-bit plaintext

Hoán vị ban đầu


Dịch trái

Lặp 1

Hoán vị chọn 2

Dịchtrái

Lặp 2

Hoán vị chọn 2

Dịch trái

Lặp 16

Hoán vị chọn 2

Dịch trái

Đổi chỗ 32 -bit
Hoán vị ngược

Hình 1-2. Mã hóa trong DES
64-bit
ciphertext

11



Trường hợp truyền không bị lỗi
Key

00000001 00000001 00000001 00000001 00000001 00000001

00000001 00000001
Plaintext: 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000
DES

Mã hoá

Ciphertext:10011000 10100110 01001101 11101001 11000001 10110011
00100011 10100111
Ciphertext:10011000 10100110 01001101 11101001 11000001 10110011
00100011 10100111

DES

Giải mã

Plaintext: 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000

12


Trường hợp truyền bị lỗi
Key
00000001 00000001 00000001 00000001 00000001 00000001

00000001 00000001
Plaintext: 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000

DES

Mã hoá

Ciphertext:10011000 10100110 01001101 11101001 11000001 10110011
00100011 10100111
Truyền lỗi
Bit bị lỗi

Ciphertext:10011000 10100110 01001001 11101001 11000001 10110011
00100011 10100111
DES

Giải mã

Plaintext: 00110101 10010101 10001101 11010011 11100110 00111100
01101100 01000011
Ta thấy rằng, chỉ sai số 1 bit ciphertext trong quá trình truyền, dữ liệu giải mã
đã khác hoàn toàn plaintext ban đầu.
Điều này tuy gây một số phức tạp trong quá trình hiệu chỉnh lỗi, nhưng lại là
ưu điểm của cơ chế mã hoá DES bởi vì nếu một thay đổi nhỏ trong ciphertext
dẫn đến một thay đổi nhỏ trong plaintext, thì sẽ dễ tìm được một thủ tục để làm
vô hiệu hoá quá trình.
Hệ mã hoá DES đạt được những yêu cầu sau đối với mật mã khối:
Confusion (Hỗn loạn): Sự phụ thuộc của mã đối với tin phải thật phức tạp để
gây rắc rối hỗn loạn đối với các đối tượng có ý định tìm qui luật để phá mã.

Quan hệ của mã với tin là phi tuyến.
Diffusion (khuyếch tán): Làm khuyếch tán văn bản mang tính thống kê. Như
vậy đối tượng thứ 3 khó có thể phá mã nhờ dựa vào các mẫu có tần suất lặp cao.
13


1.1.3 Hệ mã hóa RC2
Hệ mã hóa RC2 là hệ mã hoá khối với các khối đầu vào và đầu ra có độ dài
64 bits, tốc độ mã hoá nhanh gấp hai lần thuật toán mã hoá chuẩn DES (với giả
thiết thao tác mở rộng khoá đã được thực hiện).
Đặc điểm nổi bật của RC2 làm cho nó được sử dụng rộng rãi là kích thước
khoá vào biến đổi (từ 1 đến 128 byte), đây chính là một trong những yêu cầu
quan trọng của các ứng dụng mã hoá áp dụng trong thương mại hiện nay. Chính
vì những đặc điểm nổi bật được hướng tới ngay từ khi thiết kế này mà RC2
được khuyến nghị thay thế hệ mã hoá chuẩn DES và đã trở thành chuẩn trong
mã hoá thông điệp S/MIME. Hoạt động của RC2 gồm 3 bước.
Bước 1 : Mở rộng khoá.
Do kích thước của khoá biến đổi trong khoảng từ 1 đến 128 byte, nên trước
khi sử dụng để mã hoá và giải mã cần phải có thao tác chuẩn hoá khoá gọi là
mở rộng khoá (Key Expansion).
Trước khi mô tả hoạt động của thuật toán mở rộng khoá, ta quy ước một số
ký hiệu. Ở đây ta nhìn bộ đệm khoá mở rộng theo byte và theo word.
- Nhìn theo byte, ta ký hiệu bộ đệm khoá là mảng byte L có kích thước 128
byte từ L[0] tới L[127].
- Nhìn theo word, ta ký hiệu bộ đêm khoá là K có kích thước 64 word từ K[0]
tới K[63].
Chú ý ở đây ta sử dụng ký hiệu mảng K và L cùng chỉ tới bộ đệm khoá vào,
do đó ta có :
K[i] = L[2*i] + 256*L[2*i+1]
Giả thiết độ dài của khoá là T byte, với 1 ≤ T ≤ 128. Thuật toán mở rộng

khoá đặt T byte khoá vào bộ đệm khoá từ L[0] tới L[T-1]. Ký hiệu số bit có hiệu
lực của khoá vào là T1, số byte đầu vào có hiệu lực là T8 =  T1 / 8 và mặt nạ bit
TM được tính theo công thức:
TM = 255 mod 2 8(1-T8)+T1.

14


Thuật toán như sau:
1. for i = T, T+1, ...127 do
L[i] = PITABLE[(L[i-1]+L[i-T]) MOD 255]
2. L[128-T8] = PITABLE[L[128-T8] AND TM]
3. for i = 127 - T8, ..., 0 do
L[i] = PITABLE[L[i+1] XOR L[i+T8]]
Trong đó PITABLE là một mảng 256 byte ngẫu nhiên, hoán vị của các giá trị
từ 0 tới 255.
Sau thuật toán mở rộng khoá, mảng K chứa 64 word sử dụng trong quá trình
mã hoá và giải mã.

15


Bước 2 : Mã hoá.
Mã hoá được thực hiện bởi hai thao tác cơ bản là "mix" và "mash". R là mảng
4 word, R[0] ... R[3] là bộ đệm dữ liệu với quá trình mã hoá nó được khởi tạo
bản rõ (plaintext) quá trình mã hoá được thao tác trên mảng R, kết quả bản mã
cũng được lưu trữ trong mảng R.
a) Các bước mix và mash được định nghĩa như sau:
 Mix up R[i]:
R[i] = R[i]+K[j] + (R[i-1] AND R[i-2]) + (NOT(R[i-1]) AND R[i3]);

j = j+1; R[i] = R[i] rol s[i];
Trong đó các chỉ số của mảng R và s luôn được thực hiện modulo 4 :
R[i] = R[i MOD 4], s[i] = s[i MOD 4]
mảng có s[0] = 1;

s[1] = 2;

s[2] = 3;

s[3] = 5;

 Mixing round:
Mix up R[0], Mix up R[1], Mix up R[2], Mix up R[3]
 Mash R[i]:
R[i] = R[i] + K[R[i-1] AND 63];
 Mashing round:
Mash R[0], Mash R[1], Mash R[2], Mash R[3]
b) Mã hoá được thực hiện như sau:
1. Khởi tạo mảng R[0], ..., R[3] chứa khối 64 bit bản rõ.
2. Mở rộng khoá tạo mảng khoá mở rộng K[0], ..., K[63].
3. Khởi tạo j = 0.
4. Thực hiện 5 lần Mixing round.
5. Thực hiện 1 lần Mashing round.
6. Thực hiện 6 lần Mixing round.
7. Thực hiện 1 lần Mashing round.
8. Thực hiện 5 lần Mixing round.
9. Bản mã trong mảng R[0], ..., R[3].

16



Bước 3: Giải mã.
Giải mã thực hiện các thao tác ngược với quá trình "mix", "mash" trong quá
trình mã hoá, được ký hiệu lần lượt là "R-mix" và "R-mash".
a) Các bước R-mix và R-mash thực hiện như sau:
 R-Mix up R[i]:
R[i] = R[i] ROR s[i];
R[i] = R[i]-K[j]-(((R[i-1] AND R[i-2]))-(NOT(R[i-1]) AND R[i3]));
j = j-1;
 R-Mixing round:
R-Mix up R[3], R-Mix up R[2], R-Mix up R[1], R-Mix up R[0]
 R-Mash R[i]:
R[i] = R[i] - K[R[i-1] AND 63];
 R-Mashing round:
R-Mash R[3], R-Mash R[2], R-Mash R[1], R-Mash R[0]
b) Giải mã được thực hiện như sau:
1. Khởi tạo mảng R[0], ..., R[3] chứa 64 bit bản mã.
2. Mở rộng khoá tạo mảng K[0], ..., K[63].
3. Khởi tạo j = 63.
4. Thực hiện 5 lần r-mixing round.
5. Thực hiện 1 lần r-mashing round.
6. Thực hiện 6 lần r-mixing round.
7. Thực hiện 1 lần r-mashing round.
8. Thực hiện 5 lần r-mixing round.
9. Bản rõ chứa trong mảng R[0], ..., R[3].

17


1.1.4. Hệ mã hóa RC4

RC4 là hệ mã hoá dòng, dữ liệu có độ dài khoá biến đổi, được phát triển vào
năm 1987 bởi Ron Rivest, được đánh giá là nhanh gấp 10 lần thuật toán DES, dễ
thiết kế và cài đặt. RC4 làm việc ở chế độ OFB (Output Feedback Mode). RC4
sử dụng 8x8 S-box từ S0 tới S255.
Các S-box khởi tạo như sau:
for i = 0 to 255 do S(i) = i;
j = 0;
for i = 0 to 255 do
begin
j = (j+S(i)+K(i)) mod 256;
swap S(i) and S(j);
end;
Trong đó K là mảng 256 byte K[0], ..., K[255] được điền đầy bằng khoá vào
lặp đi lặp lại.
Mỗi byte trong luồng dữ liệu lần lượt được mã hoá (giải mã) như sau:
Khởi tạo i = 0; j = 0.
Tạo số ngẫu nhiên:
i = (i+1) mod 256;
j = (j+Si) mod 256;
swap Si and Sj
t = (Si+Sj) mod 256
K = St.
K XOR với bản rõ thì tạo ra bản mã, K XOR với bản mã thì tạo ra bản rõ.

18


1.1.5. Hệ mã hóa IDEA
IDEA được xem là hệ mã hoá khối mạnh nhất hiện nay, nó thao tác trên các
khối 64 bit bản rõ. Kích thước khoá vào là 128 bit, sử dụng cùng thuật toán để

mã hoá và giải mã.
Thuật toán hoạt động dựa trên sự kết hợp của ba nhóm các phép biến đổi đại
số. Các phép biến đổi đại số này dễ cài đặt cả về phần cứng lẫn phần mềm, đó là
các phép biến đổi:
+XOR.
+Cộng theo module 216.
+Nhân theo module 216+1. (Thao tác này có thể xem như S-box của
IDEA).
Sơ đồ hệ mã hóa IDEA
Hình 1-3 mô tả hoạt động của IDEA. 128 bit khoá vào được chia thành các
khối khoá con 16 bit, mỗi khối 64 bit dữ liệu đầu vào được chia thành 4 khối
con 16 bit X1, X2, X3 và X4, các khối 16 bit con này trở thành đầu vào cho vòng
đầu tiên của thuật toán. Có tổng cộng 8 vòng, tại mỗi vòng 4 khối con 16 bit này
được XOR, cộng, nhân với nhau và với 16 bit khoá con. Giữa các vòng các khối
16 bit con hai và ba được hoán đổi. Cuối cùng, 4 khối bit con được kết hợp với
các khoá con ở đầu ra.

19


Hình 1-3. Sơ đồ IDEA

20


1. Nhân X1 với khoá con thứ nhất.
2. Cộng X2 với khoá con thứ hai.
3. Cộng X3 với khoá con thứ ba.
4. Nhân X4 với khoá con thứ 3.
5. XOR kết quả của bước 1 và bước 3.

XOR kết quả của bước 2 và bước 4.
6. Nhân kết quả của bước năm với khoá con thứ 5.
7. Cộng kết quả của bước 6 và bước 7.
8. Nhân kết quả của bước 8 với khoá con thứ 8.
9. Cộng kết quả của bước 7 và 9.
10. XOR kết quả của bước 1 và 9.
11. XOR kết quả của bước 3 và 9.
12. XOR kết quả của bước 2 và 10.
13. XOR kết quả của bước 4 và 10.
Sau 8 vòng (thực hiện 13 bước) như trên, thực hiện tiếp:
1. Nhân X1 với khoá con thứ nhất.
2. Cộng X2 với khoá con thứ hai.
3. Cộng X3 với khoá con thứ ba.
4. Nhân X4 với khoá con thứ tư.
Các khối con được nối lại với nhau để tạo thành bản mã. Các khoá con được
tạo ra từ 128 bit khoá K ban đầu. K được chia thành 8 khối 16 bit khoá con,
128 bit khoá được quay trái 25 bit và lại chia thành 8 khoá con.

21


1.1.6. Giao thức trao đổi khóa
Trong các hệ mã hóa khóa đối xứng, hai đối tác cần phải sử dụng chung một
khoá (khoá này chỉ hai đối tác được biết) do đó họ phải có cách trao đổi thông
tin để thiết lập nên khoá này.
Cần phải nhớ rằng đường truyền chưa có bảo mật, làm cách nào để bảo mật
thông tin trao đổi khi thiết lập nên khoá này? Có thể thực hiện qua một số cách
như sau:
Cách 1
Hai đối tác sử dụng một kênh truyền tin bí mật bổ sung (chẳng hạn

dùng người đưa thư).

như

Nhược điểm của cách này: tốn kém, chậm, độ an toàn vẫn bị đặt dấu hỏi, ví
dụ người đưa thư có thể tin cậy được không?
Cách 2
Trao chuyển khoá thông qua một nhà thẩm quyền đáng tin:
Mỗi user sẽ liên lạc bí mật với S (nhà thẩm quyền đáng tin). Mỗi user cần thiết
lập trước với S một kênh liên lạc bí mật, có thể là dùng khoá đối xứng với khoá
chung được thiết lập do gặp gỡ trực tiếp.
Sau này nếu user A muốn thiết lập liên lạc bí mật với user B khác, thì A có thể
gửi yêu cầu thiết lập liên lạc tới B qua S. Nhờ qua S mà khoá chung được thiết
lập giữa A và B.
Nhược điểm trong phương pháp này: đòi hỏi phải có nhà thẩm quyền đáng
tin trên mạng, việc này đòi hỏi khá nhiều vấn đề kèm theo không đơn giản.
Ngoài ra nó còn tạo ra một điểm bottleneck (thắt nút cổ trai) trên mạng, tất cả
các khởi đầu liên lạc giữa một cặp user đều phải thông qua S, nên S dễ bị quá tải
gây tắc nghẽn.

22


Cách 3
Sử dụng giao thức trao đổi khoá, ví dụ giao thức trao đổi khóa DiffieHellman.
Giao thức trao đổi khoá Diffie-Hellman
A và B thống nhất chọn một số nguyên tố p, một phần tử nguyên thủy
(primitive element) α, nghĩa là:
{ α0, α1, α 2, .... αp-1 }={1, 2, 3, .... p-1}
A chọn một số ngẫu nhiên XA, 1 ≤ XA ≤p. B chọn một số ngẫu nhiên XB, 1 ≤

XB ≤p.
 A tính: YA =  X p
A gửi cho B: YA
A giữ bí mật XA
X
B tính: YB=  p
B gửi cho A: YB
B giữ bí mật XB
 A tính:
K= (YB ) X p =  X X p
 B tính
K= (YA ) X p =  X X p
A

B

A

A

B

B

A

B

Như vậy hai bên A, B trao đổi hai giá trị lũy thừa của α, (với bậc XA và XB)
từ đó hai bên cùng tính được số K là luỹ thừa của α với bậc bằng tích XA*XB.Vì

XA, XB được giữ bí mật không truyền đi nên K cũng bí mật, tức là hai bên có thể
thống nhất chọn số K chung này làm khoá bí mật.
Hacker chỉ có thể nghe trộm được YA, YB truyền qua mạng, để tính được K,
Hacker phải biết XA, XB. Để tính được XA, XB từ YA, YB là rất khó. Độ an toàn
của hệ thống quyết định bởi tính khó của bài toán tính logarit rời rạc.

23


1.2. HỆ MÃ HÓA KHÓA CÔNG KHAI
1.2.1. Khái niệm mã hóa công khai
Các hệ mật mã khoá công khai được nghiên cứu và phát triển từ cuối những
thập kỷ 70. Mức độ bảo mật được bảo đảm bằng độ phức tạp tính toán. Ý tưởng
cơ bản của các hệ mật mã này là xây dựng những hệ thống sao cho biết khoá
dùng để mã hoá P và thuật toán mã hoá E(P), nhưng vẫn rất khó tìm được cách
giải mã, thường là khó do phải khắc phục một độ phức tạp tính toán rất lớn để
tìm được khoá giải mã p. Khoá dùng để mã hoá P và khoá dùng để giải mã p là
khác nhau. Khoá P - khoá công khai , khóa p - khoá riêng và là khoá bí mật.
Khoá dùng để mã hoá được gọi là khoá công khai, vì vậy hệ thống được gọi là
hệ mật mã khoá công khai (Public-Key Cryptosystem-PKC).
Hệ mã khoá công khai được đưa ra để giải quyết hai vấn đề khó khăn tồn tại
với mã hoá truyền thống (mã hoá đối xứng): đó là vấn đề quản lý phân phối
khoá và vấn đề chữ ký điện tử. Khác với mã hoá truyền thống chỉ sử dụng một
khoá cho cả hai bộ phận mã hoá và giải mã thông tin, và như vậy không cần điều
kiện nào khác ngoài việc cung cấp một khoá duy nhất và bí mật.
Quá trình mã hoá và giải mã với khoá công khai được mô tả trong hình 1-4:
Khoá
công khai
của B
Khoá mật

của B

User A

Plaintext

Thuật toán
mã hoá

Ciphertext

Thuật toán
giải mã

Plaintext

User B

Hình 1-4. Mã hoá dùng khoá công khai

24


1. Hệ thống đầu cuối trong một network sinh ra một cặp khoá để mã hoá
và giải mã thông tin.
2. Mỗi hệ thống công bố khoá mã của nó bằng cách đưa khoá của mình
vào ngân hàng khoá.
3. Nếu A muốn gửi thông điệp bí mật cho B, việc mã hoá thông điệp sử
dụng khoá công khai của B.
4. Khi B nhận được thông điệp, B thực hiện giải mã bằng khoá mật của B.

Không một người nào khác có thể giải được thông điệp vì chỉ có B mới
biết được khoá mật của mình.
Khoá mật được sinh ra một cách cục bộ bởi từng người tham dự và chỉ mình
người đó biết, khóa công khai được truy nhập bởi tất cả mọi người.
Giả sử A muốn gửi một thông điệp X cho B, B sinh ra một cặp khoá với:
khoá công khai Zb và khoá bí mật zb. Thông điệp X được mã hoá bởi khoá công
khai của B:
Y=E(Zb, X)
Bên nhận thực hiện giải mã với khoá bí mật của mình:
X=D(zb, Y)
Trong trường hợp A gửi thông điệp cho B và mã hoá bằng khoá mật của A
khi truyền đi, B có thể giải mã thông điệp khi sử dụng khoá công khai của A.
Chỉ có A mới có khoá mật của A để mã hoá bản tin đó và như vậy chỉ có A mới
sinh ra bản tin đó, ta có thể coi đó như sự chứng thực cho bản tin. Đây chính là
kỹ thuật để tạo lập một chữ ký số.

25


Có hai trường hợp:


Thông điệp được truyền và nhận bí mật:

Khi đó A mã hoá thông điệp bằng khoá công khai của B (Zb) và gửi cho B, B
nhận được thông điệp sẽ giải mã nó bằng khoá mật zb của B.
A
Nguồn

B

X

Y

Mã hóa

Giải mã

Zb

X

Đích

zb
Cặp khóa

Hình 1-5. Mã hoá công khai – truyền bí mật
Chứng thực: (Authentication).
Khi đó A mã hoá bản tin bằng khoá mật của A để truyền cho B và khi B nhận
được sẽ giải mã bằng khoá công khai của A. Chỉ có A mới có thể mã hoá bản tin
đó bằng chính khoá mật của A nên có thể coi đó là sự chứng thực của A đối với
bản tin.


Nguồn

X

Mã hóa


za

Y

Giải mã

X

Đích

Za

Cặp khóa

Hình 1-6. Mã hoá công khai – chứng thực

26


×