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

Phân tích định lượng luồng tin trong bảo mật chương trình đa luồng

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 (4.5 MB, 89 trang )

..

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA


DƯƠNG TUẤN QUANG

PHÂN TÍCH ĐỊNH LƯỢNG LUỒNG TIN
TRONG BẢO MẬT CHƯƠNG TRÌNH ĐA LUỒNG

Chuyên ngành
Mã số

: Kỹ thuật điện tử
: 60.52.02.03

LUẬN VĂN THẠC SĨ KỸ THUẬT

Người hướng dẫn khoa học : TS. NGÔ MINH TRÍ

Đà Nẵng, năm 2017


LỜI CAM ĐOAN

Tôi xin cam đoan nội dung của luận văn “Phân tích định lượng luồng tin trong
bảo mật chương trình đa luồng” khơng phải là bản sao chép của bất cứ luận văn hoặc
cơng trình đã có từ trước. Các số liệu, kết quả nêu trong luận văn là trung thực và
chưa từng được ai công bố trong bất kỳ cơng trình nào khác.


Tác giả luận văn

Dương Tuấn Quang


MỤC LỤC
MỞ ĐẦU ....................................................................................................................1
CHƯƠNG 1. CƠ SỞ LÝ THUYẾT BẢO MẬT THÔNG TIN ............................4
1.1. Lý thuyết xác suất .............................................................................................4
1.2. Lý thuyết thông tin ............................................................................................5
1.2.1. Khái niệm thông tin ....................................................................................5
1.2.2. Lượng tin ....................................................................................................6
1.3. Entropy..............................................................................................................8
1.3.1. Shannon entropy .........................................................................................8
1.3.2. Min-entropy ..............................................................................................10
1.4. Kết luận chương 1 ...........................................................................................10
CHƯƠNG 2. LƯỢNG TIN RÒ RỈ CỦA CHƯƠNG TRÌNH .............................11
2.1. Bảo mật luồng thơng tin .................................................................................11
2.1.1. Phân tích định tính luồng thơng tin ..........................................................12
2.1.2. Phân tích định lượng luồng thơng tin ......................................................12
2.2. Lượng tin rị rỉ .................................................................................................14
2.2.1. Lượng tin rò rỉ theo Shannon entropy ......................................................16
2.2.2. Lượng tin rò rỉ theo min-entropy .............................................................17
2.3. Kết luận chương 2 ...........................................................................................18
CHƯƠNG 3. LƯỢNG TIN RỊ RỈ CỦA CHƯƠNG TRÌNH ĐA LUỒNG ......19
3.1. Bảo mật luồng thơng tin trong chương trình đa luồng ...................................19
3.1.1. Chương trình đa luồng .............................................................................19
3.1.2. Tính bảo mật của chương trình đa luồng .................................................19
3.1.3. Ảnh hưởng của bộ lập lịch trong chương trình đa luồng ........................20
3.1.4. Mơ hình chương trình đa luồng ...............................................................21

3.2. Lượng tin rị rỉ của chương trình đa luồng .....................................................22
3.2.1. Lượng tin rị rỉ theo vệt chương trình ......................................................22
3.2.2. Lượng tin rị rỉ của chương trình đa luồng ..............................................24
3.2.3. Ví dụ minh hoạ 1 ......................................................................................24


3.2.4. Ví dụ minh hoạ 2 ......................................................................................26
3.2.5. Ví dụ minh hoạ 3 ......................................................................................28
3.2.6. Ví dụ minh hoạ 4 ......................................................................................30
3.3. Kết luận chương 3 ...........................................................................................34
CHƯƠNG 4. XÂY DỰNG CHƯƠNG TRÌNH MƠ PHỎNG PHÂN TÍCH ĐỊNH
LƯỢNG LUỒNG TIN ............................................................................................35
4.1. Tổng quan chương trình mơ phỏng ................................................................35
4.2. Cấu trúc chung của chương trình mơ phỏng...................................................35
4.3. Thuật tốn chương trình mơ phỏng ................................................................37
4.3.1. Thuật tốn phân tích khơng gian trạng thái .............................................37
4.3.2. Thuật tốn tính tốn lượng tin rị rỉ .........................................................39
4.4. Tính tốn lượng tin rị rỉ với min-entropy ......................................................40
4.5. Tính tốn lượng tin rị rỉ với Shannon entropy ...............................................41
4.6. Kết quả tính tốn mơ phỏng............................................................................41
4.7. Đánh giá chương trình mơ phỏng ...................................................................42
4.8. Kết luận chương 4 ...........................................................................................42
KẾT LUẬN VÀ KIẾN NGHỊ ................................................................................43
DANH MỤC TÀI LIỆU THAM KHẢO ..............................................................44
PHỤ LỤC


PHÂN TÍCH ĐỊNH LƯỢNG LUỒNG TIN TRONG BẢO MẬT CHƯƠNG
TRÌNH ĐA LUỒNG
Học viên: Dương Tuấn Quang


Chuyên ngành: Kỹ thuật điện tử

Mã số: 60.52.02.03 Khóa: K31 KTĐT
ĐHĐN

Trường Đại học Bách khoa –

Tóm tắt – Luận văn nghiên cứu về vấn đề bảo mật trong chương trình đa luồng, đồng
thời xây dựng một cơng cụ mơ phỏng tự động phân tích định lượng luồng tin của
chương trình đa luồng. Cơng cụ này dựa vào phương pháp phân tích định lượng trong
đó người tấn công sẽ lựa chọn bộ lập lịch để thực thi chương trình đa luồng, từ đó có
thể suy ra được một số thông tin nhất định về dữ liệu bí mật. Phương pháp lập lịch
được sử dụng để xây dựng mơ hình chuyển trạng thái của chương trình đa luồng, và
tính tốn lượng tin rị rỉ của dữ liệu bí mật. Luận văn này mơ tả thuật tốn của chương
trình cũng như tổng hợp kết quả của một số ví dụ để kiểm chứng độ chính xác của
chương trình.
Từ khóa – bảo mật; đo lường; định lượng luồng tin; lượng tin rị rỉ; cơng cụ;

QUANTITATIVE INFORMATION FLOW ANALYSIS OF MULTITHREADED PROGRAM
Abstract – This thesis studies the security of multi-threaded programs and presents a
tool for analysing quantitative information flow (QIF) for multi-threaded programs
written in a core imperative language. The aim of the tool is to measure the leakage
of secret data. The tool is based on a method of the quantitative analysis where the
attacker is able to select the scheduling policy to attack the program. The scheduling
policy is used to construct the execution model of the program. We outline the
workings of the tool and summarise results derived from running the tool on a range
of case studies.
Keywords – security; measurement; quantitative information flow; information
leakage; tool;



DANH MỤC CÁC HÌNH
Số hiệu

Tên hình

Trang

3.1.

Cây trạng thái chương trình của ví dụ 1

26

3.2.

Cây trạng thái chương trình của ví dụ 2

28

3.3.

Cây trạng thái chương trình của ví dụ 3

29

3.4.

Cây trạng thái chương trình của ví dụ 4


32

4.1.

Cấu trúc chương trình mơ phỏng

36

4.2.

Thuật tốn chương trình mơ phỏng

38

4.3.

Thuật tốn hàm cập nhật khơng gian trạng thái

39

4.4.

Thuật tốn hàm tính tốn lượng tin rò rỉ

40


1


MỞ ĐẦU

1. Tính cấp thiết của đề tài
Cùng với sự phát triển mạnh mẽ của công nghệ thông tin, ngày càng có nhiều dữ
liệu được xử lý, lưu trữ và gửi đi trong mạng truyền thông. Một thực trạng không thể
tránh khỏi là người tham gia hệ thống có khả năng truy cập được các dữ liệu này. Vấn
đề quan trọng trong an tồn thơng tin là phải đảm bảo được việc truy cập nằm trong
phạm vi cho phép. Những thông tin bị truy cập bởi những đối tượng không được cấp
quyền đều được xem là những thông tin bị rị rỉ. Hậu quả của việc rị rỉ thơng tin này
ảnh hưởng nghiêm trọng đến những người sử dụng và khai thác hệ thống hợp pháp.
Có thể lấy một số ví dụ như các vụ việc rị rỉ thơng tin cá nhân nhạy cảm bao gồm mã
số tài khoản ngân hàng, thẻ tín dụng hay sự tiết lộ các hồ sơ mang tính bí mật của
cơng ty, quốc gia trên các mạng cơng cộng gần đây. Chính vì vậy, điều quan trọng
nhất trong truyền thơng là phải đảm bảo tính an tồn, bí mật của thơng tin.
Có ba phương pháp được sử dụng để bảo vệ thơng tin [9] đó là: điều khiển truy
cập, mật mã, và điều khiển luồng tin.
Điều khiển truy cập, ví dụ như tường lửa, là phương pháp phổ biến nhất để bảo
mật thông tin. Chỉ có những đối tượng hợp pháp mới được cấp quyền truy cập vào
dữ liệu. Tuy nhiên, phương pháp này không đảm bảo được rằng các đối tượng hợp
pháp sẽ không tiết lộ thông tin mật sau khi đã truy nhập được thơng tin.
Mật mã là kỹ thuật mã hóa dữ liệu trong quá trình truyền dẫn hoặc lưu trữ. Phương
pháp này có thể ngăn chăn các đối tượng khơng được cấp phép truy cập vào dữ liệu
thơng qua q trình nghe lén hay can thiệp vào việc truyền tin trong hệ thống. Cũng
giống như phương pháp điều khiển truy cập, phương pháp này cũng không đảm bảo
được việc người sử dụng hay chương trình phát tán dữ liệu sau khi giải mã dữ liệu.
Hơn nữa, nếu kỹ thuật mã hóa sử dụng không hiệu quả, nhiều khả năng các đối tượng
truy cập bất hợp pháp có thể giải mã dữ liệu một cách dễ dàng. Lúc này, chức năng
mã hóa sẽ khơng cịn ý nghĩa.
Một phương pháp bảo mật thơng tin mạnh hơn đó là điều khiển luồng tin, nghĩa
là giám sát thông tin di chuyển đến đâu và như thế nào trong hệ thống. Một hệ thống

được xem là khơng an tồn khi dữ liệu mật bằng một cách nào đó lại được lưu trữ ở
những vị trí mà những đối tượng khơng được cấp phép có thể truy cập được. Phương
pháp điều khiển luồng tin có thể phát hiện điều này. Đây là điểm khác biệt cơ bản so
với hai phương pháp nêu trên; phương pháp điều khiển luồng tin có thể đảm bảo


2
thông tin không bị phát tán (Smith, 2007) [10]. Phương pháp điều khiển luồng tin
đảm bảo mục tiêu ngăn chặn sự rị rỉ thơng tin hiệu quả hơn hai phương pháp cịn lại.
Q trình phân tích luồng tin về cơ bản có thể được thực hiện dựa trên một trong
hai phương pháp, định tính hoặc định lượng. Nếu như mục đích phân tích định tính
nhằm xác định một hệ thống có an tồn khơng bằng cách trả lời câu hỏi rằng hệ thống
có bị rị rỉ thơng tin hay khơng, thì phân tích định lượng, ngồi việc xác định luồng
di chuyển của thơng tin, cịn cho phép xác định hay ước lượng lượng tin mà người
tấn cơng có thể thu thập được khi hệ thống bị mất bảo mật. Hay nói cách khác, phân
tích định lượng cho phép xác định được có lượng thơng tin đã bị tiết lộ ra bên ngồi
trong trường hợp hệ thống rị rỉ thơng tin. Rõ ràng, phương pháp phân tích định lượng
hiệu quả hơn ở khía cạnh bảo mật thơng tin.
Vì vậy, đây chính là lý do luận văn sẽ tập trung nghiên cứu phương pháp định
lượng luồng tin, cụ thể áp dụng trong bảo mật chương trình đa luồng. Khái niệm đa
luồng sử dụng ở đây để chỉ ra trong các hệ thống hay chương trình có nhiều tiến trình
hoạt động song song đồng thời với nhau.
2. Mục đích nghiên cứu
-

Tìm hiểu cách thức phân tích định lượng luồng tin dựa trên lý thuyết thơng tin
[11], với một số tham số chính như: entropy, min-entropy.
Áp dụng phân tích định lượng luồng tin cho chương trình đa luồng.
Xây dựng chương trình tính tốn mơ phỏng định lượng luồng tin và kiểm thử
trên một số trường hợp cụ thể.


3. Đối tượng và phạm vi nghiên cứu
3.1. Đối tượng nghiên cứu
-

Lý thuyết thông tin (Shannon, 1948) [11]
Lý thuyết xác suất
Lý thuyết định lượng luồng tin
Chương trình đa luồng

3.2. Phạm vi nghiên cứu
-

Phương pháp định lượng luồng tin cho các chương trình đa luồng.
Kiểm tra ứng dụng thuật tốn cho các chương trình viết trên Matlab.

4. Phương pháp nghiên cứu
Phương pháp luận của luận văn là kết hợp nghiên cứu lý thuyết và mô phỏng để
làm rõ nội dung đề tài. Cụ thể như sau:


3

-

Nghiên cứu phương pháp phân tích định lượng luồng tin dựa vào lý thuyết
thông tin trên cơ sở khái niệm entropy.
Nghiên cứu mơ hình chương trình đa luồng và ứng dụng thuật tốn cho các
chương trình này.
Sử dụng Matlab để thực hiện tính tốn mơ phỏng định lượng luồng tin, và áp

dụng chương trình này để kiểm thử một số chương trình đa luồng đơn giản.
Đánh giá kết quả thực hiện.

5. Ý nghĩa khoa học và thực tiễn của đề tài
Bên cạnh thuật toán mang ý nghĩa khoa học trong lĩnh vực bảo mật thơng tin, đề
tài cịn đề xuất phương án xây dựng một chương trình mơ phỏng, tính tốn tự động
giá trị thơng tin bị rị rỉ, có khả năng áp dụng cho một số chương trình đơn giản trong
thực tế.
6. Cấu trúc của luận văn
Nội dung của luận văn gồm các 4 chương và có nội dung như sau:
Chương 1 – Cơ sở lý thuyết bảo mật thơng tin, trình bày các vấn đề về lý thuyết
thơng tin, xác suất, khái niệm lượng tin, khái niệm entropy làm cơ sở cho lý thuyết
bảo mật thông tin.
Chương 2 – Lượng tin rị rỉ của chương trình. Giới thiệu hai khía cảnh bảo mật
thơng tin, bao gồm định tính và định lượng luồng thông tin, chỉ ra một số phương
pháp tính tốn lượng tin rị rỉ của chương trình.
Chương 3 – Lượng tin rị rỉ của chương trình đa luồng. Định nghĩa chương trình
đa luồng, phương pháp tính tốn lượng tin rị rỉ của chương trình đa luồng dựa trên
mơ hình chuyển trạng thái trong thực thi chương trình đa luồng có ảnh hưởng của bộ
lập lịch.
Chương 4 – Xây dựng chương trình mơ phỏng phân tích định lượng luồng tin. Mơ
tả thuật tốn, hoạt động của cơng cụ tự động định lượng luồng tin bằng cách tính tốn
lượng tin rị rỉ của chương trình đa luồng. Áp dụng vào một số ví dụ để kiểm chứng
tính chính xác của chương trình.


4
CHƯƠNG 1. CƠ SỞ LÝ THUYẾT BẢO MẬT THÔNG TIN

1.1. Lý thuyết xác suất

Lý thuyết xác suất liên quan đến khảo sát có tính quy luật của các q trình ngẫu
nhiên. Các q trình ngẫu nhiên này có thể là một thí nghiệm cụ thể, đo đạc quan sát
hay thu thập dữ liệu từ một sự kiện cụ thể nào đó, và thực hiện dựa trên một tập các
điều kiện xác định trước. Biến cố xảy ra của phép thử là kết quả của phép thử đó và
thường có các tính chất như sau: độc lập, phân bố giống nhau và khơng thể dự đốn
một cách chắc chắn. Tần suất xuất hiện của mỗi biến cố của một quá trình ngẫu nhiên
được gọi là xác suất của biến cố đó. Có thể lấy ví dụ gieo đồng tiền là một phép thử
ngẫu nhiên, hai biến cố có thể xảy ra là xuất hiện mặt sấp và xuất hiện mặt ngửa, với
xác suất là ½ đối với số lần thử nhiều.
Lý thuyết xác suất gồm hai nhánh riêng biệt: phân bố xác suất rời rạc và phân bố
xác suất liên tục. Định nghĩa cho phân bố xác suất rời rạc được nêu ra như bên dưới.
Định nghĩa 1.1 [Biến ngẫu nhiên rời rạc] Một biến ngẫu nhiên rời rạc X là một
hàm ánh xạ các biến cố đến một tập các giá trị đếm được (ví dụ, số nguyên), với mỗi
giá trị nằm trong miền giá trị có xác suất lớn hơn 0, được xác định như sau: 𝑋: 𝐷 →
ℛ (𝐷 ), trong đó D là tập hữu hạn với phân bố xác suất xác định, và ℛ là miền giá trị
hữu hạn của X.
Định nghĩa 1.2 [Phân bố xác suất rời rạc] Gọi D là tập các giá trị của biến ngẫu
nhiên rời rạc X. Khi đó, phân bố xác suất rời rạc trên D được xác định sao cho
∑𝑥∈𝐷 𝑃(𝑋 = 𝑥) = 1.
Định nghĩa 1.3 [Xác suất liên kết] Một cặp biến ngẫu nhiên (𝑥, 𝑦) liên kết với một
sự kiện tạo thành một biến ngẫu nhiên liên kết.
Nếu x, y là rời rạc, sự phân bố xác suất liên kết này được định nghĩa là 𝑝𝑖𝑗 =
𝑃(𝑥 = 𝑥𝑖 , 𝑦 = 𝑦𝑗 ).
Định nghĩa 1.4 [Xác suất có điều kiện] Xác suất của y trong điều kiện đã biết x
được gọi là xác suất có điều kiện và được định nghĩa là:
𝑝 (𝑦 | 𝑥 ) =

𝑝(𝑥, 𝑦)
𝑝 (𝑥 )



5

1.2. Lý thuyết thông tin
1.2.1. Khái niệm thông tin
Khái niệm thông tin là một khái niệm trừu tượng, phi vật chất và rất khó được định
nghĩa một cách chính xác. Để hiểu các khía cạnh của khái niệm này, chúng ta xem
xét và phân tích ví dụ sau.
Ví dụ 1. Một người A đang muốn biết về một điều gì đó và hỏi người B, người B
trả lời cho người A biết. Chẳng hạn người A có thể hỏi người B: “Ai thắng trong trận
bóng đá ngày hơm qua?”, hoặc “Hơm nay có chuyện gì mới khơng?”, “Trường có
thơng báo gì mới khơng?”. Cái mà người A muốn biết là một cái nào đó hay một điều
gì đó trong một tập những cái/điều có thể. Tập có thể này người A có thể biết hoặc
khơng. Chẳng hạn trong câu hỏi đầu, “tập có thể” này người A có thể biết, cịn trong
hai câu hỏi sau “tập có thể” này người A có thể khơng biết. Cho dù trong trường hợp
nào, người A cũng muốn biết cái nào chính xác trong “tập có thể” này. Khi người B
trả lời có nghĩa là người B đang cung cấp thông tin giúp người A nhận biết chính xác
cái/điều này. Ví dụ này giúp chúng ta nhận ra rằng, thông tin là cái nhằm để giúp
người nhận biết được điều chính xác trong tập những điều có thể.
Định nghĩa 1.5 [Thơng tin] Ở đây giới thiệu một vài định nghĩa của thông tin theo
quan niệm thơng thường chứ khơng hồn tồn theo quan niệm kỹ thuật.
1. Thông tin là sự cảm nhận và hiểu biết của con người về thế giới xung quanh
(thông qua tiếp xúc với nó). Như vậy thơng tin là hiểu biết của con người, càng
tiếp xúc với môi trường xung quanh, con người càng hiểu biết và làm tăng
lượng thông tin thu nhận được.
2. Thông tin là một hệ thống những tin báo và mệnh lệnh giúp loại trừ sự không
chắc chắn trong trạng thái của nơi nhận tin.
3. Thông tin là một hiện tượng vật lý, nó thường tồn tại và được truyền đi dưới
dạng vật chất nào đó, chẳng hạn như âm thanh, dịng điện, sóng điện từ, sóng
ánh sáng… Những dạng vật chất hay những đại lượng vật lý dùng để mang

thơng tin được gọi là tín hiệu.
Về bản chất, thơng tin có tính chất ngẫu nhiên, có nghĩa là khơng biết trước. Thật
vậy, tin tức được thơng báo chỉ có ý nghĩa khi người nhận chưa biết trước, cịn nếu
người nhận đã biết trước thì tin tức khơng cịn ý nghĩa nữa. Vì vậy, tín hiệu mang tin
tức cũng là tín hiệu ngẫu nhiên và mơ hình tốn học của nó là các q trình ngẫu
nhiên. Lý thuyết thơng tin sẽ dựa trên tính ngẫu nhiên của tin tức, có nghĩa là xét đến
tính bất ngờ (hay tính bất định) của tin tức đối với nơi nhận tin.


6
1.2.2. Lượng tin
Để so sánh định lượng các tin tức với nhau, người ta đưa ra khái niệm lượng đo tin
tức hay nói vắn tắt là lượng tin. Vậy lượng tin của một tin được định nghĩa như thế
nào? Chúng ta thấy một tin tức đối với người nhận đều mang hai nội dung, một là độ
bất định (độ bất ngờ) của tin, hai là ý nghĩa của tin. Để có thể so sánh các tin với
nhau, chúng ta có thể lấy một trong hai hoặc cả hai tính chất trên làm thước đo. Truy
nhiên khía cạnh ngữ nghĩa của tin chỉ có ý nghĩa đối với con người chúng ta, chứ
khơng có ý nghĩa đối với các hệ thống thơng tin. Thay vào đó, khía cạnh quan trọng
nằm ở chỗ tin thực sự là một cái được chọn từ tập các tin có thể. Hệ thống được thiết
kế để hoạt động cho mỗi khả năng được lựa chọn, vì điều này không biết trước tại
thời điểm thiết kế. Chúng ta xét ví dụ sau để hiểu rõ hơn về điều này.
Ví dụ 2. Một người chọn ngẫu nhiên họ và tên một sinh viên trong một danh sách
gồm 16 sinh viên, và đố chúng ta làm sao để biết được anh ta đang chọn sinh viên
nào. Để biết được điều này, chúng ta có một số cách sau: Chúng ta sẽ hỏi các câu hỏi
“Đúng/Sai” và yêu cầu được trả lời. Như vậy sau khi hỏi bốn câu hỏi “Đúng/Sai”,
chúng ta sẽ biết chính xác họ tên sinh viên nào đang được chọn. Chẳng hạn câu hỏi
đầu tiên là “Cái được chọn có thuộc tám phần tử đầu hay khơng?” Nếu được trả lời
“Đúng” thì chúng ta ghi 0, ngược lại chúng ta ghi 1. Sau câu hỏi này chúng ta biết cái
được chọn thuộc vào tám phần tử nào (đầu hay cuối). Tiếp tục thêm ba câu hỏi kiểu
như trên, ta sẽ biết chính xác cái đang được chọn.

Như vậy, để biết chính xác cái nào đang được chọn (chúng ta có thể xem mỗi cái
là một tin), chúng ta sẽ sử dụng bốn câu hỏi “Đúng/Sai” và bốn câu trả lời tương ứng
sẽ cung cấp cho ta một lượng tin 4 bit để biết chính xác cái nào đang được chọn.
Tổng quát, nếu chúng ta cần biết chính xác cái nào đang được chọn trong một tập
n cái thì chúng ta có thể dùng 𝑙𝑜𝑔2 𝑛 câu hỏi “Đúng/Sai”, hoặc dùng 𝑙𝑜𝑔𝑚 𝑛 câu hỏi
mà mỗi câu có m câu trả lời. Mỗi câu hỏi tương ứng có một câu trả lời sẽ cung cấp
cho chúng ta một lượng tin để biết rõ hơn về cái đang cần biết. Vì vậy chúng ta có
thể xem lượng tin chính là số lượng câu hỏi cần dùng để biết chính xác cái nào đang
được chọn. Ví dụ trên đây cho chúng ta thấy, nếu số tin trong tập tin càng nhiều thì
sẽ mang lại một lượng tin càng lớn khi nhận được một tin.
Trong trường hợp trình bày ở trên, chúng ta đang coi các tin trong tập là bình đẳng
như nhau, có nghĩa là xác suất được chọn (hay xác suất xuất hiện) là như nhau. Bây
giờ chúng ta xét trường hợp tổng quát hơn các tin có thể có xác suất được chọn (hay
xuất hiện) khơng như nhau, và chúng ta được yêu cầu là dùng bao nhiêu câu hỏi để


7
nhận biết cái nào đang được chọn. Do xác suất được chọn khác nhau nên số câu hỏi
cho mỗi tin được chọn cũng sẽ khác nhau.
Ví dụ 3. Trên một con đường có bốn loại xe lưu thơng có các màu lần lượt là đỏ,
xanh, vàng, trắng. Ở một trạm kiểm sốt lưu thơng, dựa vào tần suất xe lưu thông qua
trạm, người ta thấy rằng trong một đơn vị thời gian, xác suất để xuất hiện xe đỏ là
1/2, xe xanh là 1/4, xe vàng là 1/8 và xe trắng là 1/8. Câu hỏi được đặt ra là cần tốn
bao nhiêu câu hỏi nhị phân để biết được xe nào đang chạy qua trạm?
Đối với xe đỏ, do xác suất xuất hiện là 1/2, có nghĩa là một trong hai khả năng có
thể. Do đó chỉ cần một câu hỏi nhị phân.
Đối với xe xanh, vì xác suất là 1/4, có nghĩa là một trong bốn khả năng có thể, như
vậy chúng ta cần sử dụng hai câu hỏi.
Tương tự như vậy, chúng ta cần có ba câu hỏi để biết được có phải xe vàng hay xe
trắng chạy qua không.

Tuy vậy, để trả lời câu hỏi: cần bao nhiêu câu hỏi để biết chính xác thì chúng ta có
thể tính trung bình theo xác suất xuất hiện của mỗi chiếc. Kết quả chúng ta cần sử
dụng số câu hỏi là,
1
1
1
1
( × 1) + ( × 2) + ( × 3) + ( × 3) = 1.75
2
4
8
8
Đối với bài tốn tổng qt, giả sử một tin 𝑥 có xác suất xuất hiện là 𝑝(𝑥), thì có
thể xem tin này như là một tin trong tập có 1/𝑝(𝑥) tin với các tin có xác suất xuất
hiện như nhau. Nếu 𝑝(𝑥) càng nhỏ thì 1/𝑝(𝑥) càng lớn, vì vậy số câu hỏi cần hỏi hay
lượng tin khi nhận được tin này cũng sẽ càng lớn. Như vậy, lượng tin của một tin tỷ
lệ thuận với số khả năng của một tin và tỷ lệ nghịch với xác suất xuất hiện của tin đó.
Đồng thời ta cũng thấy rằng xác suất xuất hiện của một tin tỷ lệ nghịch với độ bất
định (uncertainty) khi nhận được một tin. Thật vậy, nếu xác suất xuất hiện của tin
càng nhỏ thì độ bất định khi nhận được tin càng lớn.
Qua những điều đã trình bày ở trên, ta thấy rằng thật hợp lý khi dùng độ bất định
hay xác suất làm thước đo thông tin trong kỹ thuật. Một tin có xác suất xuất hiện càng
nhỏ thì có độ bất định càng lớn, lượng tin càng lớn, và ngược lại.
Định nghĩa 1.6 [Lượng tin] Lượng đo thông tin của một tin được đo bằng
logarithm của độ bất định của tin hay nghịch đảo xác suất xuất hiện của tin đó.
𝐼 (𝑥) = 𝑙𝑜𝑔2

1
= − 𝑙𝑜𝑔2 𝑝(𝑥)
𝑝 (𝑥 )



8
Đơn vị của lượng tin tuỳ thuộc vào cách chọn cơ số của logarithm. Nếu cơ số là 2
thì đơn vị là bit (cho các ký số nhị phân); nếu cơ số là e thì đơn vị là nats (cho đơn vị
tự nhiên); nếu cơ số là 10 thì đơn vị là hartley.
Định nghĩa 1.6 [Lượng tin trung bình] Lượng tin trung bình của một nguồn tin 𝑋
là lượng tin trung bình chứa trong một ký hiệu bất kỳ của nguồn tin. Nó thường được
ký hiệu là 𝐼 (𝑋 ) và được tính bằng cơng thức sau:
𝐼 (𝑋 ) = ∑ 𝑝(𝑥)𝐼(𝑥) = − ∑ 𝑝(𝑥) 𝑙𝑜𝑔2 𝑝(𝑥)
𝑥∈𝑋

𝑥∈𝑋

1.3. Entropy
Lượng tin riêng của một tin 𝑥 ∈ 𝑋 chỉ có ý nghĩa đối với chính tin đó mà thơi, chứ
khơng phản ánh được giá trị tin tức của nguồn 𝑋. Nói cách khác, 𝐼 (𝑥) chỉ mới đánh
giá được về mặt tin tức của một tin khi nó đứng riêng rẽ chứ không đánh giá được tin
tức của tập hợp chứa tin đó. Từ đó dẫn đến khái niệm giá trị trung bình củ các thơng
tin đó. Giá trị trung bình này cịn được gọi là lượng tin trung bình như đã trình bày ở
trên, hay cịn gọi là entropy.
Để tính tốn lượng tin trung bình, lý thuyết thơng tin sẽ sử dụng khái niệm entropy,
ℋ, để xác định sự bất định trong việc dự đoán giá trị của biến ngẫu nhiên. Ở đây, ta
sẽ xem xét hai loại entropy và sử dụng các khái niệm này trong khía cạnh bảo mật
thơng tin sẽ được trình bày ở chương tiếp theo.
1.3.1. Shannon entropy
Định nghĩa 1.7 [Shannon entropy [10]] Gọi 𝑝(𝑥) là xác suất của biến X nhận được
tại giá trị x, khi đó entropy ℋ (𝑋 ) của biến ngẫu nhiên X được định nghĩa như sau:
ℋ (𝑋 ) = ∑ 𝑝(𝑥) log 2
𝑥∈𝑋


1
𝑝 (𝑥 )

Entropy có đơn vị tính bằng bit, và xác định độ bất định của một biến ngẫu nhiên.
Về cơ bản, entropy chính là lượng bit thơng tin trung bình dung để mơ tả một biến
ngẫu nhiên.
Ví dụ 4. Entropy của một biến ngẫu nhiên mô tả quá trình tung hạt xúc xắc (với
1

1

6

6

xác suất xuất hiện của từng mặt là 1/6) là ∑𝑥∈{1,…,6} log 2 ≈ 2.58 𝑏𝑖𝑡𝑠. Giả sử hạt
xúc xắc có trong lượng khơng đều khiến cho mặt số sáu luôn luôn xuất hiện trong
mỗi lần gieo (hay phân bố xác suất gieo ra mặt số sáu là 1 và xác suất gieo ra các mặt
còn lại là 0), entropy của biến ngẫu nhiên lúc này sẽ là ∑𝑥∈{1,…,5} 0 log 2 0 +


9
∑𝑥∈{6} 1 log 2 1 = 0 𝑏𝑖𝑡𝑠. Điều này có nghĩa là giá trị biến ngẫu nhiên là xác định,
ln dự đốn chính xác được.
Định nghĩa entropy cho một biến ngẫu nhiên có thể mở rộng cho hai biến ngẫu
nhiên, gọi là entropy hợp.
Định nghĩa 1.8 [Entropy liên kết [10]] Entropy liên kết ℋ (𝑋, 𝑌) của hai biến ngẫu
nhiên rời rạc (𝑋, 𝑌) với xác suất hợp 𝑝(𝑥, 𝑦) được định nghĩa như sau:
ℋ (𝑋, 𝑌) = ∑ ∑ 𝑝(𝑥, 𝑦) log 2 𝑝(𝑥, 𝑦)

𝑥∈𝑋 𝑦∈𝑌

Entropy hợp của hai biến ngẫu nhiên xác định lượng thông tin kết hợp giữa chúng.
Đối với hai biến ngẫu nhiên độc lập, entropy hợp là tổng của các entropy thành phần,
bởi vì độ bất định của giá trị hai biến sẽ ít hơn so với trường hợp hai biến này độc
lập, hay nói cách khác ℋ (𝑋, 𝑌) ≤ ℋ (𝑋 ) + ℋ (𝑌).
Entropy có điều kiện đo lường sự khơng dự đoán được của một biến ngẫu nhiên
cho trước sao cho giả sử đã biết trước giá trị của một biến ngẫu nhiên khác. Entropy
có điều kiện được định nghĩa dựa trên entropy hợp của hai biến ngẫu nhiên và entropy
của biến ngẫu nhiên đã biết trước giá trị.
Định nghĩa 1.9 [Entropy có điều kiện [10]] Giả sử (𝑋, 𝑌) tuân theo phân bố xác
suất hợp 𝑝(𝑥, 𝑦), xác suất có điều kiện ℋ (𝑌|𝑋 ) = ∑𝑥 𝑝(𝑥)ℋ (𝑌|𝑋 = 𝑥) được xác
định như sau:
ℋ (𝑌|𝑋 ) = ∑ 𝑝(𝑥)ℋ (𝑌|𝑋 = 𝑥)
𝑥∈𝑋

= − ∑ 𝑝(𝑥) ∑ 𝑝(𝑦|𝑥) log 2 𝑝(𝑦|𝑥) = − ∑ ∑ 𝑝(𝑥, 𝑦) log 2 𝑝(𝑦|𝑥)
𝑥∈𝑋

𝑦∈𝑌

𝑥∈𝑋 𝑦∈𝑌

Để tính tốn lượng thơng tin của một biến ngẫu nhiên chứa trong giá trị một biến
ngẫu nhiên khác, chúng ta sử dụng khái niệm lượng tin tương hỗ. Lượng tin tương hỗ
chính là sự giảm độ bất định về một biến ngẫu nhiên khi đã biết về một biến ngẫu
nhiên khác.
Định nghĩa 1.10 [Lượng tin tương hỗ] Gọi 𝑝(𝑥, 𝑦) là phân bố xác suất hợp của
𝑥 ∈ 𝑋 và 𝑦 ∈ 𝑌, khi đó lượng tin tương hỗ giữa X và Y, ℐ(𝑋; 𝑌), được cho bởi công
thức sau:

ℐ (𝑋; 𝑌) = ∑ ∑ 𝑝(𝑥, 𝑦) log 2
𝑥∈𝑋 𝑦∈𝑌

𝑝(𝑥, 𝑦)
𝑝 (𝑥 ) 𝑝 (𝑦 )


10
= ℋ (𝑋 ) − ℋ (𝑋|𝑌) = ℋ (𝑌) − ℋ (𝑌|𝑋 )
1.3.2. Min-entropy
Định nghĩa 1.11 [Min-entropy [5]] Gọi 𝑝(𝑥) là xác suất của biến X nhận được tại
giá trị x, khi đó min-entropy ℋ𝑅é𝑛𝑦𝑖 (𝑋) của biến ngẫu nhiên X được định nghĩa như
sau:
ℋ𝑅é𝑛𝑦𝑖 (𝑋) = 𝑙𝑜𝑔2

1
= − 𝑙𝑜𝑔2 𝑚𝑎𝑥 𝑝(𝑥)
𝑥∈𝑋
𝑚𝑎𝑥 𝑝(𝑥)
𝑥∈𝑋

Như xác định theo công thức trên, chỉ có giá trị phân bố xác suất lớn nhất trong
tập phân bố xác suất của biến ngẫu nhiên X được sử dụng để tính tốn min-entropy.
Điều này có nghĩa là min-entropy chỉ quan tâm đến thành phần có ảnh hưởng lớn nhất
đến kết quả.
Định nghĩa 1.12 [Min-entropy có điều kiện theo Smith [5]] Min-entropy có điều
kiện của một biến ngẫu nhiên X với biến ngẫu nhiên Y cho trước được xác định theo
công thức sau:
ℋ𝑆𝑚𝑖𝑡ℎ (𝑋|𝑌) = − 𝑙𝑜𝑔2 ∑ 𝑝(𝑌 = 𝑦) ∙ 𝑚𝑎𝑥 𝑝(𝑋 = 𝑥|𝑌 = 𝑦)
𝑦∈𝑌


𝑥∈𝑋

Định nghĩa 1.13 [Min-entropy có điều kiện theo Cachin [7]] Min-entropy có điều
kiện của một biến ngẫu nhiên X với biến ngẫu nhiên Y cho trước được xác định theo
công thức sau:
ℋ𝐶𝑎𝑐ℎ𝑖𝑛 (𝑋|𝑌) = − ∑ 𝑝(𝑌 = 𝑦) ∙ 𝑙𝑜𝑔2 𝑚𝑎𝑥 𝑝(𝑋 = 𝑥|𝑌 = 𝑦)
𝑦∈𝑌

𝑥∈𝑋

1.4. Kết luận chương 1
Hai lý thuyết cơ bản sử dụng trong phân tích định lượng luồng tin đó là lý thuyết
xác suất và lý thuyết thông tin của Shannon. Các khái niệm liên quan đến xác suất,
thơng tin, entropy đã được trình bày. Đây là các khái niệm và công thức sẽ được sử
dụng xuyên suốt trong toàn luận văn.


11
CHƯƠNG 2. LƯỢNG TIN RỊ RỈ CỦA CHƯƠNG TRÌNH

2.1. Bảo mật luồng thông tin
Bảo mật luồng thông tin là điều khiển và giám sát sự di chuyển của thông tin trong
một chương trình hay hệ thống thơng tin. Một luồng thông tin được xem là bảo mật
nếu luồng thông tin này thoả mãn một chính sách bảo mật nhất định. Tương tự, một
chương trình được xem là bảo mật nếu tất cả các luồng thơng tin đều thoả mãn chính
sách bảo mật này.
Một chính sách bảo mật thơng tin có thể xem gồm hai tính chất chính cơ bản: tính
bảo mật (confidentiality) và tính tồn vẹn (integrity). Tính bảo mật luồng thơng tin
đảm bảo các thơng tin có tính bảo mật cao sẽ không ảnh hưởng đến các thông tin có

tính bảo mật thấp và có thể quan sát được trong hệ thống thơng tin. Tính chất này quy
định những đối tượng nào có thể đọc được dữ liệu và xác định được hướng di chuyển
tiếp theo của luồng thông tin trong hệ thống. Tính tồn vẹn luồng thơng tin đảm bảo
các thông tin không tin cậy sẽ không ảnh hưởng đến sự đúng đắn của kết quả của
chương trình hay hệ thống. Tính chất này ràng buộc những đối tượng nào có thể ghi
vào dữ liệu và xác định được luồng thông tin đến từ đâu trong hệ thống.
Luận văn này chủ yếu tập trung vào tính chất bảo mật luồng thơng tin, với mục
tiêu chính là tìm hiểu ảnh hưởng của dữ liệu chứa thơng tin bí mật lên dữ liệu chứa
thơng tin cơng cộng.
Một thuộc tính lý tưởng của tính bảo mật đó là tính chất khơng can nhiễu (noninterference), trong đó đảm bảo rằng khơng một thơng tin bí mật đầu vào nào có thể
thu được bằng cách quan sát dữ liệu đầu ra công cộng của chương trình. Điều này có
nghĩa là các dữ liệu bí mật sẽ khơng bị tiết lộ thơng tin của mình thơng qua q trình
thực thi chương trình hay hoạt động của hệ thống thơng tin.
Trái lại, ta có tính chất can nhiễu (interference). Tính chất can nhiễu giữa các biến
trong một chương trình có khả năng kết thúc có thể được chỉ ra như sau: Giả sử đối
với một chương trình P có khả năng kết thúc, với tập hợp các biến có mức độ bảo
mật cao 𝐻 = ℎ1 , … , ℎ𝑛 và tập các biến có mức độ bảo mật thấp 𝐿 = 𝑙1 , … , 𝑙𝑛 . Chương
trình P gọi là bảo mật nếu và chỉ nếu các giá trị của L tại thời điểm chương trình P
kết thúc là độc lập với các giá trị khởi tạo ban đầu của H. Can nhiễu xảy ra trong
trường hợp giá trị của biến này ảnh hưởng đến giá trị của biến khác trong chương
trình.


12
Phương pháp phân tích bảo mật luồng thơng tin về cơ bản có thể được chia làm
hai phương pháp chính: Phân tích định tính luồng thơng tin và phương pháp phân tích
định lượng luồng thơng tin.
2.1.1. Phân tích định tính luồng thơng tin
Một phương pháp phân tích luồng tin là phương pháp phân tích định tính luồng
thơng tin. Phương pháp này xác định thơng tin bí mật có bị tiết lộ thông qua các thông

tin công cộng hay không. Nếu có, hệ thống này sẽ bị xem là khơng bảo mật.
Luồng thơng tin chính là luồng di chuyển của thơng tin từ biến này đến biến khác
trong chương trình hay hệ thống thơng tin. Trong phương pháp phân tích luồng thông
tin, mỗi biến sẽ được gán một mức độ bảo mật. Thơng thường, một mơ hình cơ bản
sẽ bao gồm hai mức độ bảo mật: thấp (low) (L) và cao (high) (H), hay cịn gọi là
thơng tin cơng cộng có thể quan sát được (publicly observable) và thơng tin bí mật
(private). Phương pháp phân tích định tính luồng thơng tin sẽ chỉ ra có bất kỳ luồng
thơng tin nào từ mức độ bảo mật cao di chuyển đến mức độ bảo mật thấp. Ví dụ với
chương trình dưới đây:
𝑖𝑓 (𝑆 > 0) 𝑡ℎ𝑒𝑛 𝑂 ≔ 0 𝑒𝑙𝑠𝑒 𝑂 ≔ 1;
trong đó S là biến bí mật, O là biến cơng cộng.
Chương trình này khơng thoả mãn tính chất định tính bảo mật, vì thơng qua giá trị
của O, người tấn cơng có thể biết được thơng tin về S.
2.1.2. Phân tích định lượng luồng thơng tin
Nếu như mục đích phân tích định tính nhằm xác định một hệ thống có an tồn
khơng bằng cách trả lời câu hỏi rằng hệ thống có bị rị rỉ thơng tin hay khơng, thì phân
tích định lượng, ngồi việc xác định luồng di chuyển của thơng tin, cịn cho phép xác
định hay ước lượng lượng tin mà người tấn cơng có thể thu thập được khi hệ thống
bị mất bảo mật. Hay nói cách khác, phân tích định lượng cho phép xác định được có
lượng thơng tin đã bị tiết lộ ra bên ngồi trong trường hợp hệ thống rị rỉ thơng tin.
Rõ ràng, phương pháp phân tích định lượng hiệu quả hơn ở khía cạnh bảo mật thơng
tin. Phương pháp phân tích luồng thơng tin có u cầu xác định có bao nhiêu lượng
thông tin bị tiết lộ được gọi là phương pháp định lượng luồng thơng tin (Quantitative
Information Flow).
Như đã trình bày ở trên, tính chất khơng can nhiễu được sử dụng để chứng minh
rằng hệ thống hoạt động an toàn, trong khi tính can nhiễu sẽ chỉ ra một số điểm không
hoạt động tốt. Tuy nhiên, điều này chỉ đúng trong trường hợp sự can nhiễu lớn hơn


13

một mức ngưỡng (threshold) nào đó. Một ví dụ điển hình đó là hệ thống thơng tin sử
dụng điều khiển truy cập. Để có thể đăng nhập vào hệ thống, người sử dụng cần phải
thực hiện bước chứng thực bằng cách sử dụng một khố mật khẩu. Trong q trình
này, bất kể thông tin chứng thực được nhập vào là đúng hay sai, cũng đã làm rỏ rỉ
một phần nhỏ lượng thơng tin. Điều này có thể giải thích là dù cho người tấn công sử
dụng sai mật khẩu, cũng đã chỉ ra rằng mật khẩu đó khơng phải là mật khẩu đúng, từ
đó làm tiết lộ một phần nhỏ thơng tin bí mật. Trường hợp này, hệ thống đã xuất hiện
sự can nhiễu. Nếu sự can nhiễu này là đủ nhỏ, ta xem như hệ thống vẫn đảm bảo được
tính bảo mật của nó.
Để q trình phân tích định lượng luồng tin được rõ ràng và sáng tỏ, chúng ta giả
sử rằng: Thứ nhất, chương trình ln ln kết thúc, và người tấn công biết về mã
nguồn của chương trình. Chúng ta chỉ giới hạn chương trình chỉ có một đầu vào có
độ bảo mật cao S và một đầu ra có độ bảo mật thấp O. Mục tiêu đó là tính tốn lượng
thơng tin về S đã bị thu được bằng cách quan sát O. Chúng ta cũng giả sử rằng tập
giá trị của dữ liệu là hữu hạn.
Thứ hai, giả sử rằng có một phân bố xác suất tiền định, đã biết trước của các giá
trị của biến bí mật.
Cuối cùng, mơ hình sử dụng trong phân tích là mơ hình một lần thử (one-try
guessing), có nghĩa là sau khi quan sát đầu ra của chương trình, người tấn cơng chỉ
có thể dự đốn giá trị của S một lần duy nhất. Mơ hình này phù hợp với nhiều trường
hợp an ninh, ví dụ hệ thống sẽ kích hoạt chng báo động hoặc khố tài khoản nếu
người tấn công bấm sai mật khẩu một lần.
Xét một số ví dụ để hiểu rõ hơn về lượng tin bị tiết lộ khi các thực thi chương trình
như bên dưới:
(𝑃1 ) 𝑂 ≔ 𝑆;
(𝑃2 ) 𝑂 ≔ 𝑆 𝑚𝑜𝑑 2;
(𝑃3 ) 𝑖𝑓 (𝑆 == 0) 𝑡ℎ𝑒𝑛 𝑂 ≔ 0 𝑒𝑙𝑠𝑒 𝑂 ≔ 1;
trong đó S là biến bí mật, O là biến cơng cộng.
Chương trình 𝑃1 , người tấn cơng biết hồn tồn về thơng tin bí mật của S. Chương
trình 𝑃2 cho biết biến S là chẵn hay lẻ thơng qua biến O, hay chương trình đã làm tiết

lộ một bit thơng tin của S. Tương tự, chương trình 𝑃3 cũng làm một bit thông tin của
S di chuyển vào O, và O sẽ biết được biến S có bằng 0 hay không.


14
Ta nhận thấy rằng quá trình thực thi chương trình đã làm giảm sự khơng chắc chắn
về thơng tin bí mật và gây ra sự tiết lộ thông tin. Phương pháp định lượng luồng thông
tin sẽ cung cấp công cụ để tính tốn lượng thơng tin bị tiết lộ, từ đó so sánh với một
mức ngưỡng cho trước để xác định chương trình có bảo mật hay khơng. Các phương
pháp tính tốn định lượng luồng thơng tin chủ yếu dựa trên cơ sở của lý thuyết thơng
tin Shannon. Để tính tốn định lượng thơng tin, ta xem chương trình như một kênh
thơng tin. Khi đó, lý thuyết tốn học về thơng tin của Shannon sẽ phù hợp để tính
tốn lượng thơng tin qua các kênh truyền này.
2.2. Lượng tin rị rỉ
Phương pháp phân tích định lượng cổ điển sử dụng lý thuyết thơng tin để mơ hình
luồng thơng tin và định nghĩa luồng thơng tin rị rỉ. Điều cơ bản của các phương pháp
này xem chương trình như một kênh thơng tin.
Cho một kênh thơng tin ℳ có các thơng số như sau ℳ = (𝑋, 𝑌, 𝑀 ) trong đó X
biểu diễn một tập hữu hạn các giá trị bí mật đầu vào, Y biểu diễn một tập hữu hạn các
giá trị đầu ra có thể quan sát được, và M là một ma trận kênh |𝑋 | × |𝑌| chứa các xác
suất có điều kiện 𝑝(𝑦|𝑥) với mỗi 𝑥 ∈ 𝑋 và 𝑦 ∈ 𝑌. Mỗi phần tử trong ma trận M là
một giá trị thực trong khoảng 0 và 1, và tổng của mỗi hàng sẽ bằng 1.
Về cơ bản, phương pháp phân tích định lượng luồng tin cổ điển mơ hình chương
trình như một kênh đầu vào-đầu ra tiêu chuẩn với biến bí mật S là đầu vào và O là
biến đầu ra công cộng. Phương pháp phân tích sẽ chỉ ra có bao nhiêu thơng tin về S
mà một người tấn cơng có thể thu được từ thông tin quan sát được từ O. Hay nói cách
khác, đó chính là tính tốn lượng tin rị rỉ của chương trình.
Giả sử chương trình P được mơ hình như một ma trận kênh với S đầu vào và O
đầu ra. Lượng tin rò rỉ của P được định nghĩa bằng hiệu giữa độ bất định mà người
tấn cơng biết về S trước khi thực thi chương trình và độ bất định sau khi quan sát O.

Gọi ℋ (𝑆) là độ bất định ban đầu, và ℋ (𝑆|𝑂) là độ bất định sau khi chương trình đã
được thực thi và các đầu ra đã được quan sát. Lúc này, lượng tin rị rỉ của chương
trình được cho bởi,
ℒ (𝐶 ) = ℋ (𝑆) − ℋ (𝑆|𝑂)
Trong đó ℒ (𝐶 ) là lượng tin rò rỉ của P. ℋ sẽ được tính hoặc theo định nghĩa của
Shannon hoặc định nghĩa của min-entropy. Lượng tin rị rỉ có đơn vị tính bằng bit.
Ví dụ 2. Cho biến ngẫu nhiên X cới phân bố xác suất ban đầu là 𝜋 =
2

1

1

3

6

6

{𝑝(𝑋 = 𝑥1 ) = , 𝑝(𝑋 = 𝑥2 ) = , 𝑝(𝑋 = 𝑥3 ) = }. Từ đó, ta có các entropy như sau,


15
2
2 1
1 1
1
ℋ𝑆ℎ𝑎𝑛𝑛𝑜𝑛 (𝑋 ) = − ( log 2 + log 2 + log 2 )
3
3 6

6 6
6
2
3

ℋ𝑅é𝑛𝑦𝑖 (𝑋 ) = − log 2
Giả sử ma trận kênh M được cho như sau,

M y1
y2
x1 1/2 1/2
x2 1/6 5/6
x3 0
1
Ma trận xác suất hợp J của được xác định bởi ma trận kênh và phân bố xác suất 𝜋,
trong đó 𝐽[𝑥𝑖 , 𝑦𝑖 ] = 𝜋(𝑥𝑖 ) ∙ 𝑀[𝑥𝑖 , 𝑦𝑖 ].
M

y1

y2

x1

1/3

1/3

x2


1/36 5/36

x3

0

1/36

Phân bố xác suất của Y được rút ra từ ma trận xác suất hợp J như sau, 𝑝(𝑌 = 𝑦𝑖 ) =
1

1

+0=

13

3

36

, 𝑝(𝑋 = 𝑥2 |𝑌 = 𝑦1 ) =

∑∀𝑥𝑖 𝐽[𝑥𝑖 , 𝑦𝑖 ]. Do đó, 𝑝(𝑌 = 𝑦1 ) = +
23
36

36

1


5

3

36

, và 𝑝(𝑌 = 𝑦2 ) = +

+

.
𝐽[𝑥𝑖 ,𝑦𝑖 ]

Vì 𝑝(𝑋 = 𝑥𝑖 |𝑌 = 𝑦𝑖 ) =

, ta có:

𝑝(𝑌=𝑦𝑖 )

𝑝(𝑋 = 𝑥1 |𝑌 = 𝑦1 ) =

12

1

13

13


𝑝(𝑋 = 𝑥1 |𝑌 = 𝑦2 ) =

12
13

, 𝑝(𝑋 = 𝑥2 |𝑌 = 𝑦2 ) =

5

, 𝑝(𝑋 = 𝑥3 |𝑌 = 𝑦1 ) = 0
, 𝑝(𝑋 = 𝑥3 |𝑌 = 𝑦2 ) =

13

Từ đó, các entropy có điều kiện được tính như sau,
ℋ𝑆ℎ𝑎𝑛𝑛𝑜𝑛 (𝑋|𝑌)

13 12
12 1
1
∙ ( log 2
+
log 2 )
36 13
13 13
13
23 12
12 5
5
6

6

. ( log 2
+
log 2
+
log 2 )
36 23
23 23
23 23
23
=−

ℋ𝑆𝑚𝑖𝑡ℎ (𝑋|𝑌) = − log 2 (

13 12 23 12

+
∙ )
36 13 36 23

6
13

1
36

=



16
13
12 23
12
ℋ𝐶𝑎𝑐ℎ𝑖𝑛 (𝑋|𝑌) = − ( log 2
+
log 2 )
36
13 36
23
2.2.1. Lượng tin rò rỉ theo Shannon entropy
Nhiều tác giả đã sử dụng Shannon entropy để tính tốn lượng tin rị rỉ. Xét ví dụ
dưới đây minh hoạ cho tính tốn lượng tin rị rỉ bằng Shannon entropy.
Ví dụ 3 (Chương trình P1). 𝑂 ∶= 𝑆 & 511;
Trong đó S là biến kiểu ngun khơng dấu 64-bit có giá trị phân bố chuẩn trong
khoảng 0 ≤ 𝑆 ≤ 264 − 1. 031 là hằng số thập phân. Lượng tin rò rỉ sẽ được tính như
sau,
ℒ𝑆ℎ𝑎𝑛𝑛𝑜𝑛 (𝑃1) = ℋ𝑆ℎ𝑎𝑛𝑛𝑜𝑛 (𝑆) − ℋ𝑆ℎ𝑎𝑛𝑛𝑜𝑛 (𝑆|𝑂) = 64 − 55 = 9
Ở đây, giá trị thập phân 511 biễu diễn ở dạng nhị phân có 55 bit đầu có giá trị 0 và
9 bit cuối có giá trị 1, do đó chương trình P1 trên sẽ sao chép 9 bit tương ứng từ S
sang O, từ đó làm giảm số lượng bit chưa biết trong S xuống còn 55. Lúc này, giá trị
lượng tin rò rỉ sẽ bằng 9 bit.
Tuy nhiên, Smith đã chỉ ra rằng đối với mơ hình một lần thử (one-try guessing),
phương pháp tính bằng Shannon entropy khơng hồn tồn có kết quả tốt về mặt đảm
bảo bảo mật thông tin [5]. Xét chương trình dưới đây để hiểu rõ hơn về vấn đề này.
Ví dụ 4 (Chương trình P2).
𝑖𝑓 (𝑆 𝑚𝑜𝑑 8 = 0) 𝑡ℎ𝑒𝑛 𝑂 ≔ 𝑆 𝑒𝑙𝑠𝑒 𝑂 ≔ 1;
trong đó S là biến kiểu ngun khơng dấu 64-bit có giá trị phân bố chuẩn trong
khoảng 0 ≤ 𝑆 ≤ 264 − 1.
Ta nhận thấy khi giá trị của S chia hết cho 8, giá trị của S sẽ được sao chép vào O.

Ngược lại, giá trị O sẽ được đặt bằng 1. Độ bất định ban đầu của S được tính như sau,
ℋ𝑆ℎ𝑎𝑛𝑛𝑜𝑛 (𝑆) = − ∑

𝑝(𝑆 = 𝑠) 𝑙𝑜𝑔2 𝑝(𝑆 = 𝑠)

𝑠∈{0,…,264 −1}

1
1
1
1
64
log
=
−2
log
= 64
2
2
64
264
264
264
𝑠∈{0,…,264 −1} 2

=∑

Chương trình P2 là ln cho ra duy nhất một giá trị O với mỗi giá trị của S. Trong
số 264 giá trị có thể của S, có 261 giá trị sẽ có đầu ra là 𝑂 ≔ 𝑆, và có 264 − 261 =
7 ∙ 261 đầu vào cho kết quả đầu ra là 𝑂 ≔ 1. Lúc này, 𝑝(𝑂 = 1) =


7∙261
264

7

= .
8


17
Nếu giá trị của O khác 1, thơng tin bí mật đã bị tiết lộ, hay lúc này
𝑝(𝑆 = 𝑠|𝑂 = 𝑠) = 1. Khi giá trị O bằng 1, người tấn công chỉ biết được rằng S không
chia hết cho 8, hay là 3 bit cuối của S đều khơng bằng 0. Do đó, nếu 𝑂 ≔ 1, trong số
7 ∙ 261 giá trị có thể có của S, xác suất để đoán ra được giá trị của biến bí mật là
𝑝(𝑆 = 𝑠|𝑂 = 1) =

1
7∙261

. Vì vậy,

ℋ𝑆ℎ𝑎𝑛𝑛𝑜𝑛 (𝑆|𝑂) = 261 ∙

1
7
1
(
)
(−

) = 55.83

log
1
+
log
2
2
264
8
7 ∙ 261

Lượng tin rò rỉ của chương trình P2 tính theo Shannon entropy sẽ là,
ℒ𝑆ℎ𝑎𝑛𝑛𝑜𝑛 (𝑃2) = ℋ𝑆ℎ𝑎𝑛𝑛𝑜𝑛 (𝑆) − ℋ𝑆ℎ𝑎𝑛𝑛𝑜𝑛 (𝑆|𝑂) = 64 − 55.86 = 8.17
Đối với chương trình P2, ta nhận thấy rằng bất cứ khi nào kết quả đầu ra là 𝑂 ≠ 1,
người tấn cơng sẽ biết được hồn tồn giá trị của S. Do đó, xác suất để dự đốn chính
xác S sẽ lớn hơn 261 ∙

1
264

1

= . Đối với chương trình P1, với bất kỳ giá trị nào của O,
8

xác suất dự đốn S chính xác trong một lần thử sẽ là

1
255


, bởi vì 55 bits đầu tiên của S

là ln chưa biết. Điều này có nghĩa là đối với mơ hình một lần thử, C2 về cơ bản sẽ
không bảo mật hơn C1, hay lượng tin rò rỉ dự kiến sẽ lớn hơn so với C1. Tuy nhiên,
nếu áp dụng Shannon entropy, kết quả lại chỉ ra sự ngược lại.
2.2.2. Lượng tin rò rỉ theo min-entropy
Một phương pháp định lượng luồng thông tin khác được Smith phát triển dựa trên
min-entropy [5]. Smith đã định nghĩa độ bất định chính là tính chất dễ bị tấn cơng
của S trong một lần thử. Tính chất dễ bị tấn cơng của một biến ngẫu nhiên X chính là
xác suất lớn nhất trong số các giá trị có thể có của X.
Ví dụ 5 (Chương trình P3: Kiểm tra mật khẩu)
𝑖𝑓 (𝑆 = 𝐿𝑖𝑛 ) 𝑡ℎ𝑒𝑛 𝑂 ≔ 1 𝑒𝑙𝑠𝑒 𝑂 ≔ 0;
trong đó 𝑆 là mật khẩu, 𝐿𝑖𝑛 là chuỗi được nhập vào, và 𝑂 là kết quả trả về, ví dụ
đúng hay sai.
Giả sử S là biến kiểu nguyên không dấu với phân bố xác suất đều cho trước. Khi
1

đó, ta có ℋ𝑅é𝑛𝑦𝑖 (𝑆) = − 𝑙𝑜𝑔2 |𝑆| = 𝑙𝑜𝑔2 |𝑆|, trong đó |𝑆| là số giá trị có thể có của S.
Nếu kết quả đầu ra 𝑂 = 1, người tấn cơng biết được mật khẩu chính xác, hay lúc này
𝑝(𝑆 = 𝐿𝑖𝑛 |𝑂 = 1) = 1. Nếu kết quả đầu ra 𝑂 = 0, người tấn cơng biết được mật
1

khẩu chính xác, hay lúc này 𝑝(𝑆 = 𝑠|𝑂 = 0) = |𝑆|−1.


18
1

Xác suất để chuỗi 𝐿𝑖𝑛 trùng với mật khẩu 𝑝(𝑂 = 1) = |𝑆|. Do đó, 𝑝(𝑂 = 1) =

|𝑆−1|

1

. Do đó, theo cơng thức min-entropy của Smith, ℋ𝑅é𝑛𝑦𝑖 (𝑆|𝑂) = − 𝑙𝑜𝑔2 (|𝑆| ∙ 1 +

|𝑆|
|𝑆−1|
|𝑆|

1

∙ |𝑆|−1) = 𝑙𝑜𝑔2 |𝑆| − 1.

Từ đó, lượng tin rị rỉ sẽ là,
ℒ𝑆𝑚𝑖𝑡ℎ (𝑃3) = ℋ𝑅é𝑛𝑦𝑖 (𝑆) − ℋ𝑅é𝑛𝑦𝑖 (𝑆|𝑂) = 1
Ví dụ 6 (Chương trình P4: Tìm kiếm nhị phân)
𝑖𝑓 (𝑆 ≥ 𝐿𝑖𝑛 ) 𝑡ℎ𝑒𝑛 𝑂 ≔ 1 𝑒𝑙𝑠𝑒 𝑂 ≔ 0;
trong đó 𝑆 là biến kiểu ngun khơng dấu, 𝐿𝑖𝑛 =

|𝑆|
2

là một tham số của chương

trình.
Đối với ví dụ này, ta có 𝑝(𝑂 = 1) = 𝑝(𝑂 = 1) =
𝑝(𝑆 = 𝑠|𝑂 = 1) =

1

|𝑆|
2

1
2

và 𝑝(𝑆 = 𝑠|𝑂 = 0) =

. Lúc này, ℋ𝑅é𝑛𝑦𝑖 (𝑆|𝑂) = 𝑙𝑜𝑔2 |𝑆| − 1

Lượng tin rò rỉ sẽ là,
ℒ𝑆𝑚𝑖𝑡ℎ (𝑃4) = ℋ𝑅é𝑛𝑦𝑖 (𝑆) − (𝑆|𝑂) = 1
2.3. Kết luận chương 2
Để tiến hành phân tích định lượng luồng thông tin, ta sử dụng một tham số được
gọi là lượng tin rò rỉ. Đây là một đại lượng để đo lượng tin của biến bí mật bị thu
được nhờ vào việc quan sát biến công cộng. Có hai phương pháp sử dụng để tính tốn
lượng tin này, bằng cách sử dụng Shannon entropy và min-entropy. Như một số ví dụ
đã nêu ở trên, việc áp dụng công thức nào tuỳ thuộc vào từng trường hợp phân tích
và chương trình cụ thể, và khơng thể chỉ ra một cách khái quát hoá được.


19
CHƯƠNG 3. LƯỢNG TIN RỊ RỈ CỦA CHƯƠNG TRÌNH ĐA LUỒNG

3.1. Bảo mật luồng thơng tin trong chương trình đa luồng
3.1.1. Chương trình đa luồng
Có rất nhiều các hệ thống yêu cầu tính bảo mật cao hoạt động dựa trên cơ sở của
đa luồng tin (multi-threading). Khái niệm đa luồng tin sử dụng để chỉ ra trong các hệ
thống này có nhiều tiến trình hoạt động song song đồng thời với nhau. Một số ví dụ
về các hệ thống này đó là dịch vụ hướng web (web-based services), cơ sở dữ liệu và

hệ điều hành. Cùng với sự phổ biến của các bộ vi xử lý đa nhân, hay các hệ thống
song song như bộ xử lý đồ hoạ, đa luồng đang dần trở thành một tiêu chuẩn trong xử
lý thông tin. Tuy nhiên, để đảm bảo được vấn đề bảo mật trong chương trình đa luồng
là một thách thức thực sự, do dữ liệu trong các chương trình này thường khó dự đốn
được trong q trình thực thi chương trình, và do đó rất khó để dự đốn được người
tấn cơng đã quan sát được gì.
Xét ví dụ về một chương trình đa luồng như bên dưới, với 𝑆 là biến lưu thơng tin
bí mật, 𝑂 là biến lưu thơng tin cơng cộng, trong đó 𝑆 ∈ 𝐻 (tập các biến có mức độ
bảo mật cao, hay là thơng tin bí mật), và 𝑂 ∈ 𝐿 (tập các biến có mức độ bảo mật thấp,
hay là thơng tin cơng cộng có thể quan sát được).
Ví dụ 7 (Chương trình đa luồng)
𝑂 ≔ 0;
({𝑖𝑓 (𝑂 = 1) 𝑡ℎ𝑒𝑛 𝑂 ≔ 𝑆 𝑒𝑙𝑠𝑒 𝑠𝑘𝑖𝑝} ∥ 𝑂 ≔ 1; )
𝑂 ≔ 1;
Gọi 𝐶1 và 𝐶2 là hai toán hạng ở bên trái và bên phải của toán tử song song ∥. 𝐶1 và
𝐶2 là hai luồng của chương trình đa luồng. Khi thực thi chương trình này, ta thu được
vệt chương trình 𝑇|𝑂 theo biến 𝑂, hay chính là các trạng thái tuần tự của 𝑂 khi thực
hiện chương trình, phụ thuộc vào luồng nào được thực hiện trước.
𝑇|𝑂 = {

[0,1,1]
[0,1, 𝑆, 1]

𝑛ế𝑢 𝐶1 𝑡ℎự𝑐 ℎ𝑖ệ𝑛 𝑡𝑟ướ𝑐
𝑛ế𝑢 𝐶2 𝑡ℎự𝑐 ℎ𝑖ệ𝑛 𝑡𝑟ướ𝑐

3.1.2. Tính bảo mật của chương trình đa luồng
Như đã trình bày ở trên, tính chất khơng can nhiễu (non-interference) là một tính
chất bảo mật cơ bản thường được sử dụng trong các chương trình tuần tự. Tính chất
khơng can nhiễu sẽ chỉ ra rằng chương trình được xem là bảo mật khi một tập các giá



×