Tải bản đầy đủ (.doc) (76 trang)

Nghiên cứu giao thức trao đổi khóa an toàn trên đường cong Elliptic

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 (3.16 MB, 76 trang )

BỘ THÔNG TIN VÀ TRUYỀN THÔNG
HỌC VIỆN BƯU CHÍNH VIỄN THÔNG
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

ĐỒ ÁN TỐT NGHIỆP

NGHIÊN CỨU GIAO THỨC THỎA THUẬN KHÓA
DIFFIE – HELLMAN TRÊN ĐƯỜNG CONG ELLIPTIC
(ECDH)
Ngành: Công nghệ thông tin
Mã số:

Hà Nội, 2018


BỘ THÔNG TIN VÀ TRUYỀN THÔNG
HỌC VIỆN BƯU CHÍNH VIỄN THÔNG
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

ĐỒ ÁN TỐT NGHIỆP

NGHIÊN CỨU GIAO THỨC THỎA THUẬN KHÓA
DIFFIE – HELLMAN TRÊN ĐƯỜNG CONG ELLIPTIC
(ECDH)
Ngành: Công nghệ thông tin
Mã số:

Sinh viên thực hiện:
Nguyễn Hà Nam
Lớp: K45


Hà Nội, 2018


MỤC LỤC
Danh mục kí hiệu và viết tắt..................................................................................
Danh mục hình vẽ..................................................................................................
Lời cảm ơn..............................................................................................................
Lời nói đầu.............................................................................................................
Chương 1. Vấn đề thỏa thuận khóa trong an toàn thông tin...............................
1.1. Khái quát an toàn thông tin................................................................................
1.2. Bài toán thỏa thuận khóa....................................................................................
1.3. Các giao thức thỏa thuận khóa phổ biến hiện nay............................................
1.4. Kết Luận Chương 1..........................................................................................
Chương 2. Nghiên cứu các phiên bản thỏa thuận khóa diffie –
hellMAN.................................................................................................................
2.1. Giao thức thỏa thuận khóa Diffie – Hellman nguyên thủy và các
phiên bản cải tiến.............................................................................................
2.2. Giao thức thỏa thuận khóa Diffie – Hellman trên đường cong
Elliptic.............................................................................................................
2.3. Tham số an toàn cho giao thức Diffie – Hellman và khuyến nghị sử
dụng.................................................................................................................
2.4. So sánh độ an toàn các phiên bản giao thức thỏa thuận khóa Diffie –
Hellman ..........................................................................................................
2.5. Kết luận chương 2............................................................................................
Chương 3. CÀI ĐẶT VÀ THỰC NGHIỆM GIAO THỨC DIFFIEHELLMAN TRÊN ĐƯỜNG CONG ELLIPTIC CURVE25519......................
3.1. Lược đồ hoạt động giao thức............................................................................
3.2. Các bước thực hiện giao thức và thuyết minh mã nguồn.................................
3.3. Kết quả thực nghiệm chương trình cài đặt.......................................................
3.4. Đánh giá độ an toàn, hiệu năng của chương trình thực hiện giao thức
X25519............................................................................................................

3.5. Kết luận chương 3............................................................................................
Tài liệu tham khảo................................................................................................

i


DANH MỤC KÍ HIỆU VÀ VIẾT TẮT

Ký Hiệu
AES

Thuật Ngữ

Ý Nghĩa

Advanced Encryption Standard

CSDL

Tiêu chuẩn mã hóa tiên tiến
Cơ sở dữ liệu

DES

Data Encryption Standard

D-H

Diffie - Hellman


DoS

Denial of Service

Tiêu chuẩn mã hóa dữ liệu
Tấn công từ chối dịch vụ
Giao thức thỏa thuận khóa

ECDH

Elliptic-Curve Diffie–Hellman

Diffie – Hellman trên đường
cong Elliptic

ECC

Elliptic Curve Cryptography

IKE

Internet Key Exchange

Hệ mật dựa trên đường cong
Elliptic
Giao thức trao đổi khóa và
thỏa thuận khóa

IKE SA


Hiệp hội bảo mật

IPSec

Internet Protocol Security

KDC

Key Distribution Center

Trung tâm phân phối khóa

KPS

Key Predistribution Scheme

Phân phối khóa trước

MIT

Massachusett Institute of Technology

Viện Công nghệ Massachusetts

MITM

Man In The Middle

Tấn công kẻ ở giữa


National Institute of Standards and

Viện tiêu chuẩn và kỹ thuật

Technology

Quốc Gia ( Hoa Kỳ)

NIST
NLSP

Network Layer Security Protocol

NSA

National Security Agency

Cơ quan an ninh quốc gia
Thuật toán mã hóa khóa công

RSA

khai

SKDS

Session Key Distribution Scheme

SSL


Secure Sockets Layer

SSH

Secure Shell

Phân phối khóa phiên
Giao thức thiết lập hết nối an

ii


toàn
TCP/IP

Internet protocol suite

TLS

Transport Layer Security

VPN

Virtual Private Network

Bộ giao thức liên mạng
Giao thức bảo mật tầng giao
vận
Mạng riêng ảo
Đường cong Elliptic Curve


X25519

25519

iii


DANH MỤC HÌNH VẼ

iv


LỜI CẢM ƠN
Trong quá trình thực hiện đồ án tốt nghiệp này, tôi đã nhận được sự giúp đỡ
tận tình của cán bộ hướng dẫn là Giảng viên Học viện Bưu Chính Viễn Thông, sự
quan tâm sâu sát của cán bộ Học viện Bưu Chính Viễn Thông, sự động viên của
người thân và bạn bè.
Xin cảm ơn tất cả mọi người đã tạo những điều kiện tốt nhất để tôi hoàn
thành đồ án tốt nghiệp này!
SINH VIÊN THỰC HIỆN ĐỒ ÁN

Nguyễn Trung Nam

v


LỜI NÓI ĐẦU
Thời gian gần đây, các cuộc tấn công mạng đang gia tăng cả về số lượng và
quy mô, diễn ra ngày càng tinh vi và phức tạp. Nhiều cuộc tấn công có chủ đích

nhằm vào các cơ quan Chính phủ, các hệ thống thông tin quan trọng trong nhiều
lĩnh vực. Hầu hết các doanh nghiệp còn chủ quan trong các vấn đề an ninh mạng
và dễ bị tấn công vào các lỗ hổng: các doanh nghiệp còn đánh giá thấp tầm quan
trọng về sự tin tưởng của người tiêu dùng trong lĩnh vực an ninh mạng.
Thực trạng mất an toàn diễn ra thường xuyên và mật mã là một biện pháp
chính trong việc đảm bảo các dịch vụ an toàn thông tin như: bí mật, xác thực, toàn
vẹn. Để việc sử dụng mật mã có thể đảm bảo được an toàn thông tin thì cần những
yêu cầu về thuật toán, các tham số sử dụng và khóa. Trong đó, đối với khóa sử
dụng trong các hệ mật thì vấn đề thỏa thuận khóa giữa các bên liên lạc cũng cần
được nghiên cứu và sử dụng đúng cách dựa trên năng lực tính toán máy tính hiện
nay và các tấn công đã công bố.
Diffie – Hellman là một giao thức thỏa thuận khóa được phát minh rất sớm
trong mật mã học và được sử dụng phổ biến cho tới nay. Giao thức này cho phép
các bên liên lạc thiết lập một khóa bí mật chung để mã hóa dữ liệu sử dụng trên
kênh truyền thông không an toàn. Tuy nhiên, với việc năng lực tính toán ngày càng
cao của thế hệ máy tính hiện nay và rất nhiều cuộc tấn công vào giao thức DiffieHellman được công bố thì việc cài đặt Diffie-Hellman theo mặc định gây ra rất
nhiều nguy hiểm mất an ninh thông tin cho tổ chức, doanh nghiệp.
Và để khắc phục nhược điểm trên ECDH đã ra đời, thực hiện việc thỏa thuận
khóa dựa vào việc tính toán trên đường cong Elliptic, sử dụng khóa có độ dài nhỏ
hơn nhưng vẫn đảm bảo tính an toàn cao. Thời gian xử lý được giảm đi đáng kể
nhờ số phép toàn dùng để mã hóa và giải mã ít hơn phù hợp với mọi thiết bị có khả
năng tính toán thấp.
Mục tiêu đặt ra khi thực hiện đồ án là:
1. Nghiên cứu các phiên bản giao thức trao đổi khóa Diffie-Hellman.
2. Nghiên cứu các tấn công chính lên phiên bản giao thức trao đổi khóa
Diffie – Hellman.
vi


3. So sánh độ an toàn giữa các giao thức trao đổi khóa. Đề xuất phiên bản

giao thức Diffie – Hellman : ECDH X25519 (với đường cong Elliptic
Curve25519) với độ an toàn cao.
4. Thực hiện cài đặt, thử nghiệm phiên bản giao thức ECDH X25519.
Sau thời gian khoảng ba tháng thực hiện đồ án, các mục tiêu về cơ bản đã
đạt được. Tuy nhiên mật mã là lĩnh vực khoa học phức tạp, thời gian thực hiện đồ
án tương đối ngắn nên chắc chắn không tránh khỏi thiếu sót. Rất mong được sự
góp ý của các thầy cô, cũng như các bạn học viên để đồ án này được hoàn thiện
hơn.
SINH VIÊN THỰC HIỆN ĐỒ ÁN

Nguyễn Trung Nam

vii


CHƯƠNG 1. VẤN ĐỀ THỎA THUẬN KHÓA TRONG AN TOÀN
THÔNG TIN
1.1. Khái quát an toàn thông tin
1.1.1. Vấn đền an toàn thông tin hiện nay
Thực trạng an toàn thông tin tại Việt Nam ngày càng diễn biến phức tạp và
nguy hiểm. Các cuộc tấn công mạng có quy mô, mức độ phức tạp và được chuẩn bị
một cách kỹ lưỡng. Trong đó, các mục tiêu tấn công đang dần chuyển dịch từ các
mục tiêu cá nhân, sang các mục tiêu là các tập đoàn kinh tế lớn hay nghiêm trọng
hơn là các hệ thống thông tin quan trọng của các quốc gia.
Theo thống kê của các chuyên gia an ninh mạng, trong 9 tháng đầu năm
2017 đã ghi nhận đã có 9.964 [18] sự cố tấn công vào hệ thống mạng của các cá
nhân, tổ chức tại Việt Nam (hình 1.1).

Hình 1. 1 : Các cuộc tấn công trong 9 tháng đầu năm 2017
Các cuộc tấn công bao gồm cả 3 loại hình chính: Malware, Phishing, và

Deface.Trong đó, tấn công bằng mã độc (Malware) phát tán chiếm nhiều nhất với
4.595 lần , tức hơn 46% tổng số các cuộc tấn công. Trong số các nạn nhân của loại

1


hình Malware này có tới hơn 20 website có tên miền gov.vn (các website thuộc
chính phủ Việt Nam), đến nay mới chỉ có ⅔ số website này đã được khắc phục.
Loại hình tấn công thay đổi giao diện (Deface) được đánh giá là một cuộc
tấn công quy mô lớn với 3.607 trường hợp đã được ghi nhận trong 9 tháng qua.
Trong đó, 21 trường hợp nhắm vào các website chính phủ gov.vn nhưng đến nay
đã khắc phục gần hết. Loại hình website lừa đảo (Phishing) chiếm số lượng ít hơn
với 1.762 sự cố. Báo cáo cũng ghi nhận 987 sự cố đã được khắc phục, trong đó có
3 website tên miền gov.vn.
Trong số các cuộc tấn an ninh công mạng ở Việt Nam xảy ra trong quý
I/2017, đáng chú ý nhất phải kể đến cuộc tấn công của nhóm hacker U15 vào
website các cảng hàng không ở Việt Nam (Sân bay Tân Sơn Nhất, Đà Nẵng, Phú
Quốc, Rạch Giá, Tuy Hòa ), tấn công này khiến nhiều người nghi ngờ đây là “sự
cố Vietnam Airlines” lần thứ 2. Sự việc xảy ra vào các ngày 8 – 10/3/2017, nhiều
người đã không thể truy cập được vào trang web chính thức của cảng hàng không
(nơi cung cấp thông tin lịch trình các chuyến bay, dịch vụ hỗ trợ mặt đất của các
cảng hàng không ở Việt Nam). Trên trang chủ, tin tặc đã để lại dòng chữ xác nhận
đã tấn công web, cảnh báo an ninh mạng của sân bay đang có vấn đề, hệ thống bảo
mật bị lỗi. Tuy nhiên, các Hacker này đã không phá hoại hay đánh cắp dữ liệu
thông tin của sân bay. Mục đích mà các tin tặc thực hiện cuộc tấn công mạng này
chỉ là để cảnh báo nhắc nhở về hệ thống bảo mật của trang web.
Ngoài ra, đối với thế giới sự gia tăng của các nhóm mã độc mã hóa
(ransomware) mới đúng như đã dự đoán, ransomware đã đạt đến đỉnh cao với các
cuộc tấn công WannaCry và Petya. Chỉ riêng WannaCry một loại mã độc tống tiền,
phần mềm độc hại này mã hóa dữ liệu của máy tính và ngăn cản người dùng truy

cập dữ liệu trên đó cho đến khi tin tặc nhận được tiền chuộc. Nó đã lây nhiễm cho
300.000 máy trên khắp thế giới và đã gây thiệt hại tài chính và kinh tế lên tới 4 tỷ
đô la Mỹ. Thực trạng an toàn thông tin ở Việt Nam cũng như toàn thế giới rơi vào
trạng thái đáng báo động.

2


1.1.2. Mật mã và các dịch vụ an toàn thông tin
Mật mã được sử dụng lần đầu là bằng văn bản từ năm 1900 trước Công
Nguyên. Và sau đó, mật mã được phát triển mạnh mẽ và áp dụng trên nhiều lĩnh
vực khác nhau và sau khi sự phát triển rộng rãi của công nghệ truyền thông thì các
hình thức mật mã mới được ra đời, cải tiến hơn. Mật mã được sử dụng để bảo vệ
tính bí mật của thông tin khi thông tin được truyền trên các kênh truyền thông công
cộng như Internet, mạng điện thoại, v..v…
Định nghĩa hệ mật
Một hệ mật là một bộ năm (R,M,K,E,D ) thoả mãn các điều kiện sau:
1. R là không gian rõ bao gồm một tập hữu hạn các bản rõ R có thể.
2. M là không gian mã bao gồm một tập hữu hạn các bản mã M có thể.
3. K là không gian khóa bao gồm một tập hữu hạn các khóa K có thể.
4. Với mỗi khóa K ∈K có một quy tắc mã EK ∈E và một quy tắc giải mã
DK ∈D . Trong đó, mỗi EK : R → M và DK : M → R là các hàm đảm

bảo DK ( EK ( R )) = R với mọi bản rõ R ∈R

Hình 1. 2 : Mô hình thông tin hệ mật gửi từ Alice với Bob
Chức năng của mật mã đối với các dịch vụ an toàn thông tin :
3



• Xác thực: Chức năng của dịch vụ xác thực là để đảm bảo người nhận
thông điệp nhận được thông điệp đúng từ nơi mà nó yêu cầu. Xác thực
xảy ra ở 2 thời điểm: Thứ nhất, tại thời điểm bắt đầu kết nối, dịch vụ đảm
bảo rằng hai thực thể đó được xác thực với nhau.Thứ hai, dịch vụ phải
đảm bảo rằng sự liên kết không bị can thiệp theo cách mà một bên thứ ba
có thể giả mạo vì mục đích gửi hoặc nhận thông điệp trái phép.
o Xác thực thực thể: Cung cấp các yếu tố để xác nhận độ tin tưởng của
các thực thể trong tổ chức
o Xác thực nguồn gốc dữ liệu: Xác nhận nguồn gốc của một CSDL.
• Kiểm soát truy cập: Cung cấp khả năng hạn chế, kiểm soát việc truy cập
vào hệ thống máy chủ và các ứng dụng. Để có thể truy cập vào máy chủ
và ứng dụng mỗi thực thể phải được xác thực
• Bảo mật dữ liệu: Bảo vệ dữ liệu khỏi các cuộc tấn công.
o Bảo mật kết nối: Bảo vệ tất cả dữ liệu người dùng trên một kết nối.
o Bảo mật không liên kết: Việc bảo vệ tất cả dữ liệu người dùng trong
một cơ sở dữ liệu
o Bảo mật trong lĩnh vực chọn lọc: Bảo mật các trường được chọn trong
dữ liệu người dùng trong kết nối hoặc trong một cơ sở dữ liệu.
o Tính bảo mật dòng lưu lượng truy cập: Bảo vệ các thông tin được gửi
từ nguồn nhờ việc quan sát lưu lượng truyền đi.
• Toàn vẹn dữ liệu: Đảm bảo việc nhận dữ liệu chính xác từ người gửi, đầy
đủ thông tin, dữ liệu không bị thay đổi, thêm, sửa xóa hoặc phát lại.
• Chống chối bỏ: Ngăn cản người gửi hoặc người nhận từ chối một thông
điệp được truyền đi.
• Dịch vụ sẵn sàng: Đảm bảo sự sẵn sàng của hệ thống , giải quyết các mối
quan ngại về an ninh được gây ra bởi các cuộc tấn công từ chối dịch vụ.

4



1.2. Bài toán thỏa thuận khóa
1.2.1. Khái niệm khóa, phân phối khóa, thỏa thuận khóa.
a) Khóa
Trong mật mã học, khóa là một đoạn thông tin điều khiển hoạt động của
thuật toán mã hóa. Nói một cách khác, khóa là thông tin để cá biệt hóa quá
trình mã hóa cũng như giải mã. Khóa cũng được sử dụng trong các thuật toán khác
trong mật mã học như thuật toán tạo chữ ký số hay hàm băm mật mã (các hàm băm
có khóa). Thông thường, khóa mật mã là các quy ước, các giá trị số, dãy ký tự, ...,
đó là những thông tin bí mật mà chỉ có người lập mã và người giải mã được biết.
Độ bảo mật của khóa mật mã phải đảm bảo không có khả năng phục hồi bản rõ
theo bản mã nếu không có khóa, bảo đảm độ bền của hệ mật.
b) Phân phối khóa
- Phân phối khóa trước: trong một lược đồ phân phối khóa trước (ký hiệu là
KPS), một trung tâm ủy nhiệm TA phân phối thông tin về khóa trước trên một kênh
an toàn cho tất cả người dùng trong mạng liên lạc. Sau đó tất cả những người dùng
trong mạng liên lạc có thể sử dụng các khóa mật này để mã hóa các thông báo mà
họ truyền qua mạng công khai. Cụ thể, mỗi cặp người dùng trong mạng liên lạc sẽ
có thể xác định được một khóa mật mà chỉ duy nhất họ được biết.
- Phân phối khóa phiên: trong phân phối khóa phiên, trung tâm ủy nhiệm TA
hoạt động trực tuyến và khi những người dùng trong mạng liên lạc yêu cầu TA
cung cấp khóa cho phiên làm việc, TA sẽ tạo ra các khóa phiên và phân phối chúng
cho những người dùng trong mạng liên lạc qua giao thức tương tác. Giao thức này
được gọi là lược đồ phân phối khóa phiên (ký hiệu là SKDS). Các khóa phiên được
sử dụng để mã hóa thông tin cho một khoảng thời gian cụ thể, tương đối ngắn (sử
dụng trong phiên liên lạc đó). Các khóa phiên sẽ được trung tâm ủy nhiệm TA mã
hóa bằng khóa bí mật đã được phân phối trước (với giả thiết là tất cả người dùng
trong mạng liên lạc và TA đã thiết lập được trước các khóa bí mật này).

5



c) Thỏa thuận khóa
Thỏa thuận khóa là việc trao đổi khóa giữa chủ thể trong một cộng đồng nào
đó có thể được thiết lập một cách tự do giữa bất cứ hai người nào khi có nhu cầu
trao đổi thông tin và có thể phòng tránh được bên thứ ba có thể xâm nhập vào quá
trình trao đổi.
Mục tiêu của phân phối khóa và thoả thuận khóa là tại thời điểm kết thúc thủ
tục hai bên liên quan đều có cùng một khóa K và không một bên nào khác biết giá
trị của khóa K (trừ khả năng TA).

1.2.2. Phân loại khóa
a) Hệ thống khóa hữu hạn biến đổi
Khóa hữu hạn biến đổi là khóa có quy luật được tạo nên bằng một số hữu
hạn các phép biến đổi đơn giản.
Các phép biến đổi đơn giản là các phép biến đổi sơ cấp trong toán học như:
phép thay đổi các hàng các cột của một ma trận, phép hoán vị hữu hạn phần tử,
phép thay thế nhờ hữu hạn phần tử thế.
Ví dụ: khóa chuyển vị trong hệ mật chuyển vị, khóa thay thế nhờ hữu hạn
phần tử thế trong hệ mật thay thế.
Trong thực tế, việc tạo các khóa hữu hạn biến đổi là rất dễ. Đồng thời khóa
bộc lộ ra những tính chất đơn giản, dễ phát hiện. Vì vậy, độ bảo mật của hệ thống
khóa này bị hạn chế và do đó các hệ mật dùng khóa hữu hạn biến đổi thường có độ
bảo mật không cao.
Độ bảo mật của khóa hữu hạn biến đổi phụ thuộc vào 3 yếu tố sau:
- Chất lượng khóa cơ bản ban đầu: tức là kích thước khóa nhỏ hay lớn, và
tính độc lập giữa các phần tử khóa. Nếu khóa có kích thước nhỏ thì việc giải mã
cũng như việc duyệt toàn bộ không gian khóa sẽ dễ dàng hơn. Đồng thời nếu các
phần tử khóa có tính độc lập kém thì khóa có thể bị rút gọn lại tương đương với
khóa ngắn hơn.
- Chất lượng của phép biến đổi: tức là các phần tử khóa gốc và các phần tử

khóa sinh ra qua phép biến đổi phải có tính độc lập cao, phép biến đổi tạo khóa
6


phải có tính phi tuyến và là các phép biến đổi một chiều. Điều này sẽ đảm bảo
chống lại việc tìm khóa gốc từ các phần tử khóa sinh ra trong phép biến đổi tạo
khóa.
- Phương pháp sử dụng khóa: phương pháp sử dụng khóa không đúng (như
sử dụng trùng khóa) có thể giúp mã thám suy ra được khóa hoặc bản rõ được mã
bằng khóa đó. Vì vậy, phương pháp sử dụng khóa tốt sẽ làm tăng độ bảo mật của
khóa.
Ba yếu tố trên đây không thể tách rời nhau, mà ngược lại chúng có quan hệ
chặt chẽ với nhau. Vì vậy, mỗi mã pháp dùng hệ thống khóa này sẽ có độ bảo mật
khác nhau.
Ví dụ: Tạo khóa hữu hạn biến đổi thông qua bộ tạo đồng dư tuyến tính. Ta
có:
- Khóa gốc (hay còn gọi là mầm khóa): K 0 = (k1, k2 , k3 , k4 ) = (4,1,3,5)
- Phép biến đổi: là phép cộng modulo 10 giữa hai phần tử khóa gốc để tạo
phần tử khóa tiếp theo: ki + 4 = ki + ki +1 mod 10 (i > 0) .
Theo phép biến đổi này ta có dãy khóa: K = 413554809289107017...
b) Hệ thống khóa ngẫu nhiên
Khóa ngẫu nhiên được hiểu là một dãy ngẫu nhiên (hữu hạn hoặc vô hạn)
các phần tử có giá trị hữu hạn. Các phần tử khóa lấy giá trị trên một tập hữu hạn
nào đó và chúng xuất hiện trong khóa một cách ngẫu nhiên, nghĩa là chúng xuất
hiện độc lập, đồng xác suất và không phụ thuộc vào bất cứ điều kiện nào.
Giả sử α = {α1,α 2 ,...,α m } là một tập hữu hạn các phần tử cơ bản (ký hiệu,
tín hiệu ...). Ví dụ, bộ chữ cái Latinh gồm 26 chữ cái {A, B, C, ..., Z} , bộ các số từ
0 đến 9, các số nhị phân {0, 1} .
Ta thiết lập dãy K = k1k2 ... kn ... , trong đó ki ∈ α với (i = 1,2,...) .
Khi đó K được gọi là dãy khóa ngẫu nhiên nếu các phần tử khóa

ki , (i = 1, 2,...) xuất hiện một cách ngẫu nhiên, độc lập và đồng xác suất. Nghĩa là

với mọi nhóm gồm s phần tử khóa s = ki1 ki2 ...kis ta có đẳng thức:
7


P (ki1 ki2 ...kis ) = P(ki1 ).P( ki2 ) ... P( kis ) =

1
ms

vì xác suất của mỗi phần tử khóa ki lấy từ tập hữu hạn α = {α1,α 2 ,...,α m} là:
P (ki ) =

1
.
m

Khóa ngẫu nhiên thường chỉ dùng trong các hệ mật thay thế. Hệ mật thay thế
dùng khóa ngẫu nhiên là hệ mật có độ bảo mật cao. Khóa ngẫu nhiên là yếu tố
quyết định độ bảo mật của hệ mật này. Nếu khóa ngẫu nhiên được dùng một lần thì
hệ mật có độ mật hoàn thiện. Tuy nhiên việc tạo ra các khóa ngẫu nhiên là một
công việc khó khăn và đòi hỏi nguyên tắc sử dụng rất nghiêm ngặt.
Cũng theo đặc trưng của khóa sử dụng trong hệ mật, người ta còn chia các
hệ mật thành hai loại: hệ mật khóa bí mật và hệ mật khóa công khai (xem mục
1.2.3). Trong thực tế, có một số hệ mật lai ghép giữa hệ mật khóa bí mật và hệ mật
khóa công khai.
1.2.3. Vai trò của khóa trong an toàn thông tin
Trong thực tế hiện nay, khóa mật mã được sử dụng trong các hệ mật khóa bí
mật, hệ mật khóa công khai, hàm băm, chữ ký số. Vì vậy vai trò khóa trong an toàn

thông tin chính là vai trò hay chức năng của hệ mật khóa bí mật, hệ mật khóa công
khai, hàm băm và chữ ký số trong an toàn thông tin.
- Hệ mật khóa bí mật (hệ mật đối xứng): là hệ mật trong đó khóa mã và khóa
giải mã giống nhau hoặc dễ dàng tính khóa này từ khóa kia, khóa phải được giữ bí
mật và chỉ được biết bởi người gửi và người nhận. Ví dụ: DES, 3DES, AES hay
RC4 ...

8


Hình 1. 3 : Mô hình thông tin giữa Alice và Bob (hệ mật khóa bí mật)
Hoạt động của hệ mã được mô tả trong hình 1.3 với các bước hoạt động như
sau: Nếu A và B là hai người dùng sử dụng hệ mã khóa bí mật để gửi tin cho nhau.
A dùng thuật toán E và khóa K lập mật mã cho văn bản M muốn gửi cho B, rồi gửi
cho B bản mã: Y = E K(M). Thuật toán mã hóa E cho các đầu ra khác nhau phụ
thuộc vào giá trị khóa K và bản rõ M khác nhau. Ở đầu bên kia B sau khi nhận
được bản mã Y, sẽ sử dụng thuật toán giải mã D và chính khóa K để thu được bản
rõ M.
A và B chỉ có thể truyền tin được với nhau nếu cả hai cùng biết khóa K.
Chức năng chính của hệ mật dùng để mã hóa dữ liệu được hai bên truyền nhận trên
đường truyền và khóa K có chức năng đảm bảo tính bí mật của thông tin, người
thứ ba không thể giải mã được thông tin nếu không có khóa K.
- Hệ mật khóa công khai (hay hệ mật phi đối xứng): là hệ mật trong đó khóa
mã và khóa giải mã khác nhau, từ khóa mã công khai khó tìm ra khóa giải mã theo
nghĩa độ phức tạp tính toán rất cao, khóa giải mã (hay khóa riêng) phải được giữ bí
mật duy nhất bởi người sử dụng. Ví dụ: hệ mật RSA, Elgamal, hệ mật trên đường
cong Elliptic...
9



Hình 1. 4 : Mô hình thông tin giữa Alice và Bob (Hệ mật khóa công khai)
Khóa K của mỗi người dùng gồm hai phần K = (K', K") trong đó K' là phần
công khai, còn giữ bí mật K".
Mã hóa được thực hiện rất dễ dàng, bất kỳ người nào cũng có thể làm được,
còn việc giải mã rất khó khăn nếu như không có khóa riêng, còn nếu có nó thì việc
giải mã cũng dễ như việc mã hóa. Khóa riêng được tạo và lưu trữ bởi mỗi đầu mối
liên lạc và không được gửi đi bất kỳ nơi nào.
Hệ mật này mã hóa khóa bí mật trên kênh truyền công khai giữa 2 bên liên
lạc vậy nên khóa trong hệ mật này có vai trò là đảm bảo tính bí mật dữ liệu và xác
thực.
- Hàm băm mật mã tính toán ra giá trị băm khác nhau (có độ dài cố định)
tương ứng với khối dữ liệu đầu vào khác nhau. Có 2 loại hàm băm là: hàm băm có
khóa (ví dụ: MD5, SHA2, SHA3…) và hàm băm không có khóa (ví dụ: MAC,
HMAC). Hàm băm có khóa được sử dụng trong nhiều ứng dụng bảo mật thông tin,
có thể dùng để xác thực, kiển tra tính toàn vẹn của thông điệp, dữ liệu.
- Chữ kí số là thông tin đi kèm theo dữ liệu (văn bản, hình ảnh, video, …)
được tính toán từ các dữ liệu kèm theo này theo mô hình 1.5 và có mục đích xác
định tính sở hữu của người dùng hay chính tính xác thực người dùng.
10


Hình 1. 5 : Sơ đồ chữ ký số
Ngoài ra, vì chữ ký số dùng để xác định tính sở hữu đối với dữ liệu của
người dùng gửi nên chữ ký số cũng đảm bảo tính chống chối bỏ trong an toàn
thông tin.

1.2.4. An toàn khóa trong các giải pháp bảo mật
Trong thực tế hiện nay mật mã đảm nhận việc đảm bảo an toàn thông tin
trong lưu trữ và truyền nhận. Các giải pháp bảo mật phổ biến trong bảo mật đường
truyền là sử dụng các bộ giao thức bảo mật phổ biến như IPSec, SSL/TLS, SSH và

trong lưu trữ dữ liệu thì là các phần mềm mã hóa chuyên dụng trong lưu trữ dữ
liệu. Tất cả các giải pháp này đều sử dụng các hệ mật mã để đảm bảo an toàn thông
tin và có những biện pháp riêng để đảm bảo an toàn cho khóa sử dụng trong các hệ
mật mã này.
Đối với các phần mềm chuyên dụng mã hóa dữ liệu lưu trữ thì biện pháp
đảm bảo an toàn khóa được sử dụng chủ yếu là giao thức phân phối khóa Kerberos.
11


Kerberos là một hệ thống giao thức xác thực an toàn trên mạng máy tính
trước tiên được phát triển tại Viện Công nghệ Massachusett MIT (Massachusett
Institute of Technology) về sau được dùng rộng rãi ở Mỹ. Kerberos cho phép các
nút mạng chứng minh “căn cước” (identity) của mình với các đối tác, thông qua
một môi trường giao dịch không tin cậy. Thoạt đầu Kerberos được thiết kế theo sơ
đồ xác thực client-server (giữa máy khách - máy chủ) và sau đó cung cấp dịch vụ
xác thực lẫn nhau (mutual authentication), Kerberos được mặc định sử dụng cổng
88.
Kerberos dùng mã khóa đối xứng. Các khóa đối xứng này được máy chủ
Kerberos trao cho từng người sử dụng đã đăng nhập hệ thống. Mỗi người sử dụng
được phép tạo một mật khẩu xác thực gửi cho máy chủ Kerberos để được nhận và
dùng khóa mã. Để thực hiện được, hệ thống Kerberos đòi hỏi cấu hình mạng rất
phức tạp và khó quản lý: máy chủ của mỗi website đăng ký sử dụng đều phải có
máy chủ riêng được cài đặt Kerberos và máy chủ của hệ thống (bên thứ ba) sẽ phân
phối khóa mã cho mỗi website đồng thời lưu giữ chúng lại để kiểm tra và đối
chứng khi cần thiết.
- An toàn khóa trong các bộ giao thức bảo mật IPSec, SSL/TLS, SSH
IPsec là một bộ các giao thức hoạt động tại tầng mạng nhằm bảo vệ các
truyền thông qua giao thức Internet (IP) bằng cách xác thực và mã hóa mỗi gói tin
IP của từng phiên giao dịch. IPsec cũng bao gồm cả những giao thức nhằm thiết
lập sự xác thực lẫn nhau giữa các đối tác khi khởi đầu một phiên và sự thương

lượng để thỏa thuận các khóa mật mã dùng cho phiên giao dịch đó. IPSec có thể sử
dụng để bảo vệ luồng dữ liệu giữa hai máy khách (host-to-host) giữa hai mạng
(network-to-network) hoặc giữa một mạng và một máy khách (network-to-host).
SSL/TLS là bộ các giao thức bảo mật hoạt động tải tầng vận tải cung cấp
khả năng đảm bảo tính bí mật (mã hóa), xác thực, toàn vẹn và chống chối bỏ đối
với luồng lưu lượng truyền đi giữa các bên liên lạc. Tương tự IPSec thì SSL/TLS
cũng có thể sử dụng để bảo vệ luồng dữ liệu giữa hai máy khách (host-to-host)
giữa hai mạng (network-to-network) hoặc giữa một mạng và một máy khách
(network-to-host).
12


SSH là giao thức bảo mật sử dụng trong mô hình host-to-host cung cấp khả
năng mã hóa, đảm bảo tính toàn vẹn của dữ liệu trên đường truyền.
Trong cả ba giao thức bảo mật IPSec, SSL/TLS và IPSec đều sử dụng các hệ
mật khóa bí mật và hệ mật khóa công khai để bảo vệ an toàn dữ liệu trên đường
truyền. Công việc phân phối, thỏa thuận khóa trong ba bộ giao thức này được đảm
bảo bởi giao thức thỏa thuận khóa tích hợp trong các bộ giao thức bảo mật này và
các giao thức này sẽ được trình bày trong mục 1.3. Riêng SSH thì có thể sử dụng
giao thức phân phối khóa Kerberos để đảm bảo vấn đề an toàn khóa.
1.3. Các giao thức thỏa thuận khóa phổ biến hiện nay
1.3.1. Giao thức thỏa thuận khóa Diffie-Hellman
Ngày nay, giao thức thỏa thuận khóa Diffie-Hellman nguyên thủy không còn
được sử dụng nữa, nhưng các phiên bản cải tiến của giao thức này lại được sử dụng
rộng rãi nhất trong thực tế hiện nay. Giao thức này chính là nội dung chính của đồ
án và được trình bày chi tiết trong chương 2.
1.3.2. Giao thức thỏa thuận khóa xác thực (Diffie , Van Oorschot và Wiener)
Giao thức thỏa thuận khóa xác thực hay còn được gọi là thỏa thuận khóa
trạm đến trạm do Diffie, Van Oorschot và Wiener thực hiện. Trong lược đồ này,
mỗi người dung: ví dụ người dung A có một thông tin xác thực nhất định ID A , một

lược đồ chữ ký số với thuật toán kiểm tra VerA và thuật toán ký SigA. Trung tâm uỷ
nhiệm TA cũng có lược đồ chữ ký số với thuật toán kiểm tra Ver TA. Định danh IDA
và thuật toán kiểm tra VerA của người dùng A được đăng ký với TA để TA phát
hành một chứng chỉ cho người dùng A:

Cert A = ( IDA , VerA ,SigTA ( IDA , VerA ) )
Lược đồ thỏa thuận khóa được xác thực được mô tả như sau :

13


Hình 1. 6 : Lược đồ thỏa thuận khóa được xác thực
Chọn các tham số miền công khai: TA chọn một số nguyên tố lớn p và một
*
*
phần tử nguyên thuỷ α ∈ Z p sao cho bài toán tính lôgarit trong Z p là rất khó. Các

tham số p và α được công bố công khai cho mọi người dùng trong mạng liên lạc.
Hai người dùng A,B bất kỳ mỗi khi cần liên lạc mật với nhau trên kênh công
khai thì có thể cùng thực hiện giao thức sau để thỏa thuận trực tiếp một khóa phiên
được xác thực cho phiên liên lạc:

(

)

1. Người dùng A chọn ngẫu nhiên một số a A 0 ≤ a A ≤ p − 1 giữ bí mật giá
trị a A . Sau đó tính giá trị bA = α aA mod p và gửi các giá trị: Cert A và bA cho B.
2. Người dùng B chọn ngẫu nhiên một số aB ( 0 ≤ aB ≤ p − 1) , giữ bí mật giá
trị aB . Sau đó tính các giá trị sau:


bB = αaB mod p
K B ,A = ( bA )

aB

mod p

γ B = Sig B ( IDA , bB , bA )
và gửi các giá trị Cert A , bA và γ A cho A.
3. A xác thực chữ ký γ B bằng thuật toán kiểm tra Vert A . Nếu chữ ký là hợp
lệ, A tính các giá trị:

14


K A, B = ( bA )

aB

mod p

γ A = Sig A ( IDB , b A , bB )
và gửi chữ ký y A cho V.
4. A xác thực chữ ký y A bằng thuật toán kiểm tra VerA .
Nếu tất cả các bước trên được thực hiện và các phép kiểm tra đều cho kết
quả đúng, thì giao thức tương tác kết thúc, và cả hai người dùng A và B tính ra
cùng một khóa phiên bí mật K A, B .
1.3.3. Giao thức thỏa thuận khóa Matsumoto, Takashima và Imai
Matsumoto, Takashima và Imai đã xây dựng một số lược đồ thoả thuận khóa

bằng cách cải tiến lược đồ thỏa thuận khóa Diffie - Hellman. Các lược đồ này được
gọi là lược đồ thỏa thuận khóa MTI. Các lược đồ này không đòi hỏi A và B phải
tính bất kì chữ ký nào. Chúng là các giao thức hai lần vì chỉ có hai lần truyền thông
tin riêng biệt (một từ A đến B và một từ B đến A).

15


Trong lược đồ này, trung tâm uỷ nhiệm TA có lược đồ chữ ký số với thuật
toán kiểm tra VerTA công khai và thuật toán ký Sig TA bí mật. Mỗi người dùng A
có một thông tin xác thực nhất định IDA , một số mũ mật a A ( 0 ≤ a A ≤ p − 1) và một
a
khóa công khai bA = α A mod p . Định danh IDA và khóa công khai bA được đăng

ký với TA để TA phát hành một chứng chỉ cho người dùng A. Lược đồ thỏa thuận
khóa MTI/A0 được mô tả như hình

Hình 1. 7 : Lược đồ thỏa thuận khóa MTI
Chọn các tham số miền công khai: TA chọn một số nguyên tố lớn p và một
*
*
phần tử nguyên thuỷ α ∈ Z p sao cho bài toán tính lôgarit trong Z p là rất khó. Các

tham số p và α được công bố công khai cho mọi người dùng trong mạng liên lạc.
Mỗi người dùng A chọn một số mũ mật a A ( 0 ≤ a A ≤ p − 1) , sau đó tính giá
a
trị công khai tương ứng bA = α A mod p . Các giá trị IDA và bA được đăng ký với

TA để phát hành một chứng chỉ:


Cert A = ( IDA , bA , SigTA ( IDA , bA ) )
Hai người dùng A, B bất kỳ mỗi khi cần liên lạc mật với nhau trên kênh công
khai thì có thể cùng thực hiện giao thức tương tác sau để thỏa thuận trực tiếp một
khóa phiên:
1. Người dùng A chọn ngẫu nhiên một số rA ( 0 ≤ rA ≤ p − 1) , tính giá trị
16


×