Tải bản đầy đủ (.pdf) (26 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 (1.32 MB, 26 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

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

Đà Nẵng - Năm 2017


Công trình được hoàn thành tại
TRƯỜNG ĐẠI HỌC BÁCH KHOA

Người hướng dẫn khoa học: TS Ngô Minh Trí

Phản biện 1: TS. Phan Trần Đăng Khoa
Phản biện 2: TS. Ngô Văn Sỹ

Luận văn được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ
Kỹ thuật điện tử họp tại Trường Đại học Bách khoa vào ngày 15 tháng
07 năm 2017.



Có thể tìm hiểu luận văn tại:
 Trung tâm Học liệu, Đại học Đà Nẵng tại Trường Đại học Bách khoa
 Thư viện Khoa Điện tử-Viễn thông, Trường Đại học Bách khoa –
ĐHĐN.


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 toà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 toà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.


2
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 quá 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 toà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 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.
Quá 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 toà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, ngoà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



3
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 ngoà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,
lượng tin tương hỗ, 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 toá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


4
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 toá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:
-

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
toán cho các chương trình này.

-

Sử dụng Matlab để thực hiện tính toá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 toá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:



5
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 toá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 toá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 toán, hoạt động của công cụ tự động định
lượng luồng tin bằng cách tính toá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.


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

1.1. Lý thuyết xác suất
Đị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à:
𝑝(𝑦 | 𝑥) =

𝑝(𝑥, 𝑦)
𝑝(𝑥)

1.2. Lý thuyết thông tin
1.2.1. Khái niệm thông tin
Đị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 hoàn toàn theo quan
niệm kỹ thuật.


7
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 toán học của nó là các quá 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.
1.2.2. Lượng tin
Đị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
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.
Đị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 𝑝(𝑥, 𝑦)
𝑥∈𝑋 𝑦∈𝑌


9
Đị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 𝑝(𝑦|𝑥)
𝑥∈𝑋 𝑦∈𝑌

Đị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
𝑥∈𝑋 𝑦∈𝑌

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

= ℋ(𝑋) − ℋ(𝑋|𝑌) = ℋ(𝑌) − ℋ(𝑌|𝑋)
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 nghĩa 1.12 [Min-entropy có điều kiện theo Smith [5]] Minentropy 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:


10
ℋ𝑆𝑚𝑖𝑡ℎ (𝑋|𝑌) = − 𝑙𝑜𝑔2 ∑ 𝑝(𝑌 = 𝑦) ∙ 𝑚𝑎𝑥 𝑝(𝑋 = 𝑥|𝑌 = 𝑦)
𝑦∈𝑌

𝑥∈𝑋

Định nghĩa 1.13 [Min-entropy có điều kiện theo Cachin [7]] Minentropy 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
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.
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 toà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, ngoà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 ngoà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ó yê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).


12

2.2. Lượng tin rò rỉ
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.
2.2.1. Lượng tin rò rỉ theo Shannon entropy
2.2.2. Lượng tin rò rỉ theo min-entropy
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 toá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.


13
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ự đoán được trong quá
trình thực thi chương trình, và do đó rất khó để dự đoán được người
tấn công đã quan sát được gì.
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 (noninterference) 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á trị cuối
cùng có thể có của các biến công cộng là độc lập với tập các giá trị ban


14
đầu của các biến bí mật. Tuy nhiên, tính chất này lại không phù hợp
với chương trình đa luồng. Có hai lý do để giải thích điều này.
Thứ nhất, do sự trao đổi các kết quả trung gian trong quá trình thực
thi chương trình đa luồng, việc phân tích luông thông tin cần phải xem
xét them sự rò rỉ thông tin ở các trạng thái trung gian này.
Thứ hai, một chương trình đa luồng thực thi các luồng từ một tập
các luồng không kết thúc. Trong quá trình thực thi này, bộ lập lịch sẽ
lựa chọn lập đi lặp lại luồng nào sẽ được thực thi tiếp theo với một xác
suất xác định. Do đó, vệt dữ liệu của chương trình đa luồng sẽ phụ
thuộc vào bộ lập lịch được áp dụng trong chương trình. Trong trường
hợp này, chúng ta sử dụng khái niệm chương trình có tính xác suất

(probabilistic programs), trong đó giả sử chúng ta biết trước về xác
suất của bộ lập lịch khi lựa chọn các luồng.
3.1.3. Ảnh hưởng của bộ lập lịch trong chương trình đa luồng
Vì đầu ra của chương trình đa luồng phụ thuộc vào bộ lập lịch, do
đó để có thể xây dựng một mô hình phù hợp cho chương trình đa luồng,
chúng ta cần phải biết được người tấn công đã thu được những thông
tin gì dựa trên bộ lập lịch được lựa chọn.
Vì vậy, để xây dựng một mô hình phân tích định lượng luồng tin
cho chương trình đa luồng, ta cần phải xem xét một số yếu tố sau: (1)
giá trị của biến công cộng ở các trạng thái trung gian có ảnh hưởng
như thế nào đến dữ liệu bí mật mà người tấn công có thể thu được, (2)
ảnh hưởng của bộ lập lịch đến lượng thông tin rò rỉ của chương trình.
3.1.4. Mô hình chương trình đa luồng


15
Mô hình chương trình đa luồng được xây dựng dựa trên bộ lập lịch
có tính xác suất.
Định nghĩa 3.1 (Mô hình chương trình) Mô hình chương trình
được biểu diễn dưới dạng 𝒜 = 〈𝒮, ℐ, 𝑉𝑎𝑟, 𝒱, →〉, trong đó:
1. 𝒮 là tập trạng thái có thể có trong chương trình,
2. ℐ ∈ 𝒮 là trạng thái đầu tiên.
3. 𝑉𝑎𝑟 = 𝐻 ∪ 𝐿 là tập hữu hạn biến của chương trình đa luồng.
4. Hàm nhãn 𝒱 ∶ 𝒮 → 𝒟(𝑆), với 𝑆 ∈ 𝐻, đánh nhãn các trạng thái
với phân bố xác suất của biến bí mật 𝑆, nghĩa là ánh xạ phân bố
xác suất 𝜇 ∈ 𝒟(𝑆) đến từng trạng thái 𝑐 ∈ 𝒮, mô tả thông tin
mà người tấn công biết được về 𝑆 tại mỗi trạng thái.
5. → chỉ mối quan hệ chuyển trạng thái, → ⊆ 𝒮 → 𝒟(𝑆).
Phân bố xác suất của 𝑆 thay đổi từ trạng thái này sang trạng thái
tiếp theo dọc theo đường thực thi chương trình, phụ thuộc vào giá trị

của biến công cộng ở các trạng thái và lệnh của chương trình.
3.2. Lượng tin rò rỉ của chương trình đa luồng
3.2.1. Lượng tin rò rỉ theo vệt chương trình
Lượng tin rò rỉ = Độ bất định ban đầu – Độ bất định còn lại.
Tính độ bất định. Với một phân bố xác suất của bí mật cho trước,
trong mô hình dự đoán cho một lần thử, phương án tốt nhất chính là
chọn giá trị với xác suất lớn nhất, có nghĩa là xác suất cho việc dự đoán
sai sẽ nhỏ nhất. Gọi 𝐒 là tập giá trị có thể của 𝑆, giá trị ảnh hưởng đến
độ bất định là 𝑚𝑎𝑥𝑠∈𝑺 𝑝(𝑠). Nếu 𝑚𝑎𝑥𝑠∈𝑺 𝑝(𝑠) = 1, mức độ bất định
phải bằng 0, lúc này người tấn công biết hoàn toàn về giá trị của 𝑆. Do


16
đó, biểu thức tính độ bất định sẽ bằng trừ logarithm của 𝑚𝑎𝑥𝑠∈𝑺 𝑝(𝑠),
hay độ bất định = − 𝑙𝑜𝑔2 𝑚𝑎𝑥𝑠∈𝑺 𝑝(𝑠), trong đó dấu “-” biểu thị cho
sự không âm của độ bất định. Biểu thức này hoàn toàn phù hợp với
công thức tính min-entropy của Rényi.
Định nghĩa 3.2. Gọi 𝐗 là tập hữu hạn các giá trị của biến ngẫu nhiên
𝑋. Biểu thức tính min-entropy Rényi của X được định nghĩa bởi:
ℋ𝑅é𝑛𝑦𝑖 (𝑋) = 𝑙𝑜𝑔2

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

Với phân bố xác suất 𝑆 cho trước, độ bất định của người tấn công
về thông tin bí mật sẽ là: Độ bất định = ℋ𝑅é𝑛𝑦𝑖 (𝑆).
Do vậy, lượng thông tin rò rỉ theo vệt chương trình 𝑇, là ℒ(𝑇), được

tính theo công thức,
𝑓

ℒ(𝑇) = ℋ𝑅é𝑛𝑦𝑖 (𝑆𝑇𝑖 ) − ℋ𝑅é𝑛𝑦𝑖 (𝑆𝑇 )
trong đó ℋ𝑅é𝑛𝑦𝑖 (𝑆𝑇𝑖 ) là min-entropy của 𝑆 ứng với phân bố xác suất
𝑓

ban đầu, và ℋ𝑅é𝑛𝑦𝑖 (𝑆𝑇 ) là min-entropy tương ứng với phân bố xác
suất cuối cùng, tại thời điển trạng thái cuối cùng khi kết thúc chương
trình.
3.2.2. Lượng tin rò rỉ của chương trình đa luồng
Quá trình thực thi chương trình đa luồng 𝐶 dưới sự điều khiển của
bộ lập lịch 𝛿 sẽ có kết quả là một tập các vệt chương trình 𝑇𝑟𝑎𝑐𝑒(𝒜𝛿 ).
Do đó, lượng tin rò rỉ của 𝐶 sẽ là giá trị rò rỉ tính trên tất cả các vệt
chương trình.


17
ℒ(𝐶, 𝜋) = ∑
=∑

𝑇∈𝑇𝑟𝑎𝑐𝑒(𝒜𝛿 )

𝑝(𝑇) ∙ ℒ(𝑇)
𝑓

𝑇∈𝑇𝑟𝑎𝑐𝑒(𝒜𝛿 )

𝑝(𝑇) ∙ (ℋ𝑅é𝑛𝑦𝑖 (𝑆𝑇𝑖 ) − ℋ𝑅é𝑛𝑦𝑖 (𝑆𝑇 ))


Vì ℋ𝑅é𝑛𝑦𝑖 (𝑆𝑇𝑖 ) là như nhau đối với mọi 𝑇 ∈ 𝑇𝑟𝑎𝑐𝑒(𝒜𝛿 ), ta viết lại
là ℋ𝑅é𝑛𝑦𝑖 (𝑆 𝑖 ). Biểu thức trên trở thành,
ℒ(𝐶, 𝜋) = ℋ𝑅é𝑛𝑦𝑖 (𝑆 𝑖 ) − ∑

𝑓

𝑇∈𝑇𝑟𝑎𝑐𝑒(𝒜𝛿 )

𝑝(𝑇) ∙ ℋ𝑅é𝑛𝑦𝑖 (𝑆𝑇 )

với 𝑝(𝑇) là xác suất tích luỹ dọc theo vệt chương trình 𝑇.
3.2.3. Ví dụ minh hoạ 1
3.2.4. Ví dụ minh hoạ 2
3.2.5. Ví dụ minh hoạ 3
3.2.6. Ví dụ minh hoạ 4
3.3. Kết luận chương 3
Chương này đã áp dụng phân tích định lượng luồng tin vào chương
trình đa luồng, phương pháp tính toán lượng tin rò rỉ, và xây dựng các
ví dụ minh hoạ đơn giản. Từ các ví dụ này, bằng cách thực thi chương
trình đa luồng dưới sự điều khiển của bộ lập lịch theo mô hình chuyển
trạng thái theo xác suất, phân bố xác suất của biến bí mật thay đổi liên
tục qua từng trạng thái, phụ thuộc vào mối quan hệ của biến bí mật và
biến công cộng, cũng như các câu lệnh tác động lên biến công cộng.
Quá trình phân tích cũng cho ra kết quả tương đối chính xác, phù hợp
với nhận định ban đầu về mức độ rò rỉ của chương trình. Qua đây ta
cũng nhận thấy rằng quá trình phân tích định lượng đối với chương


18
trình đa luồng thực sự khá phức tạp, đặc biệt khi có nhiều đa luồng

được sử dụng.
Trên đây là những nhận định sẽ được sử dụng để làm nền tảng cho
việc xây dựng một chương trình mô phỏng tính toán tự động lượng tin
rò rỉ của chương trình đa luồng.


19
CHƯƠNG 4. XÂY DỰNG CHƯƠNG TRÌNH MÔ PHỎNG
PHÂN TÍCH ĐỊNH LƯỢNG LUỒNG TIN
4.1. Tổng quan chương trình mô phỏng
Luận văn giới thiệu một phương pháp xây dựng chương trình mô
phỏng tính toán lượng thông tin rò rỉ của chương trình đa luồng.
Chương trình mô phỏng được xây dựng dựa sự biến đổi phân bố xác
suất của biến thông tin bí mật và tính toán lượng thông tin rò rỉ theo
phân bố xác suất được cập nhật.
Dựa trên phân bố xác suất ban đầu, tập giá trị của biến bí mật, và
mã nguồn của chương trình đa luồng, chương trình mô phỏng sẽ thực
hiện từng câu lệnh, tính toán cập nhật lại phân bố xác suất, hình thành
không gian trạng thái của chương trình. Từ đó, công cụ sẽ dựa trên
không gian trạng thái và phân bố xác suất cuối cùng để tính toán lượng
thông tin rò rỉ. Đầu ra của chương trình mô phỏng này lượng thông tin
rò tỉ tại thời điểm kết thúc của chương trình.
Chương trình mô phỏng tính toán lượng thông tin rò rỉ được lập
trình trên phần mềm MATLAB®. Tất cả cú pháp câu lệnh, kiểu dữ
liệu, các biểu thức, hàm tuân theo ngôn ngữ lập trình MATLAB.
4.2. Cấu trúc chung của chương trình mô phỏng
Cấu trúc công cụ gồm ba phần chính: Đầu vào (Input), Tính toán
mô phỏng (Simulation), Đầu ra (Output).
4.3. Thuật toán chương trình mô phỏng
4.3.1. Thuật toán phân tích không gian trạng thái

4.3.2. Thuật toán tính toán lượng tin rò rỉ


20
4.4. Tính toán lượng tin rò rỉ với min-entropy
Lượng tin rò rỉ của chương trình sẽ được tính theo công thức bên
dưới,
ℒ(𝐶, 𝜋) = ℋ𝑅é𝑛𝑦𝑖 (𝑆 𝑖 ) − ∑

𝑓

𝑇∈𝑇𝑟𝑎𝑐𝑒(𝒜𝛿 )

𝑝(𝑇) ∙ ℋ𝑅é𝑛𝑦𝑖 (𝑆𝑇 )

trong đó, ℋ𝑅é𝑛𝑦𝑖 (𝑆 𝑖 ) tương ứng với phân bố xác suất ban đầu của biến
𝑓

bí mật, ℋ𝑅é𝑛𝑦𝑖 (𝑆𝑇 ) là phân bố xác suất cuối cùng của biến bí mật theo
vệt chương trình tương ứng, và 𝑝(𝑇) là xác suất của vệt chương trình.
4.5. Tính toán lượng tin rò rỉ với Shannon entropy
Đối với trường hợp tính toán lượng tin rò rỉ bằng cách sử dụng công
thức tính entropy của Shannon, công thức tính lượng tin rò rỉ sẽ trở
thành,
ℒ(𝐶, 𝜋) = ℋ𝑆ℎ𝑎𝑛𝑛𝑜𝑛 (𝑆 𝑖 ) − ∑

𝑓

𝑇∈𝑇𝑟𝑎𝑐𝑒(𝒜𝛿 )


𝑝(𝑇) ∙ ℋ𝑆ℎ𝑎𝑛𝑛𝑜𝑛 (𝑆𝑇 )

trong đó, ℋ𝑆ℎ𝑎𝑛𝑛𝑜𝑛 sẽ được tính theo công thức, ℋ𝑆ℎ𝑎𝑛𝑛𝑜𝑛 (𝑋) =
∑𝑥∈𝑋 𝑝(𝑥) log 2

1
.
𝑝(𝑥)

4.6. Kết quả tính toán mô phỏng
Áp dụng chương trình mô phỏng đối với 4 trường hợp ví dụ minh
hoạ (Case study) như đã trình bày ở chương 3. Kết quả mô phỏng tính
toán được chỉ ra như bảng bên dưới.
Chương trình
Case
study 1

𝐎 ≔ 𝟎;
(𝐢𝐟 (𝐎 = 𝟏) 𝐭𝐡𝐞𝐧 𝐎 ≔ 𝐒⁄𝟐 𝐞𝐥𝐬𝐞 𝐎 ≔ 𝐒 𝐦𝐨𝐝 𝟐) ∥ 𝐎 ≔ 𝟏;
S là biến kiểu nguyên không dấu 2-bit


21
Lượng tin rò rỉ theo min-entropy = 1 bit
Lượng tin rò rỉ theo Shannon entropy = 1 bit
Case
study 2

𝐎 ≔ 𝟎;
(𝐢𝐟 (𝐎 = 𝟏) 𝐭𝐡𝐞𝐧 𝐎 ≔ 𝐒⁄𝟒 𝐞𝐥𝐬𝐞 𝐎 ≔ 𝐒 𝐦𝐨𝐝 𝟐) ∥ 𝐎 ≔ 𝟏;

𝐎 ≔ 𝐒 𝐦𝐨𝐝 𝟒;
S là biến kiểu nguyên không dấu 3-bit
Lượng tin rò rỉ theo min-entropy = 2.5 bits
Lượng tin rò rỉ theo Shannon entropy = 2.5 bits

Case
study 3

𝐒 ≔ 𝐒 𝐦𝐨𝐝 𝟐;
𝐎 ∶= 𝐒; ∥ (𝐎 ≔ 𝟏 ∥ 𝐎 ≔ 𝟎; )
S là biến kiểu nguyên không dấu 2-bit
Lượng tin rò rỉ theo min-entropy = 1 bit
Lượng tin rò rỉ theo Shannon entropy = 1 bit
𝐎 ≔ 𝟎;

Case
study 4

(𝐢𝐟 (𝐎 = 𝟎) 𝐭𝐡𝐞𝐧 𝐎 ≔ 𝐒⁄𝟖 𝐞𝐥𝐬𝐞 𝐎 ≔ 𝐒 𝐦𝐨𝐝 𝟐) ∥ 𝐎 ≔ 𝟏;
𝐒 ≔ 𝐒 𝐦𝐨𝐝 𝟒;
𝐎 ≔ 𝐒 ∥ 𝐎 ≔ 𝟎;
S là biến kiểu nguyên không dấu 4-bit
Lượng tin rò rỉ theo min-entropy = 1.5 bits
Lượng tin rò rỉ theo Shannon entropy = 1 bit

4.7. Đánh giá chương trình mô phỏng
Chương trình mô phỏng đã cho ra một không gian trạng thái đúng
và đầy đủ như đối với quá trình phân tích bằng tay. Kết quả từ chương



22
trình cũng là hoàn toàn phù hợp như phân tích ban đầu. Kết quả lượng
tin rò rỉ khi sử dụng công thức Shannon entropy và min-entropy là
giống nhau hoàn toàn.
Khi sử dụng nhiều đa luồng trong chương trình, quá trình phân tích
trở nên phức tạp và khó khăn hơn, dẫn đến chương trình tính toán mô
phỏng sẽ phức tạp hơn để có thể hình thành đầy đủ không gian trạng
thái.
Hiện tại chương trình mô phỏng vẫn còn nhiều hạn chế, cụ thể
chương trình mô phỏng này chỉ có thể thực hiện đối với một số câu
lệnh nhất định, ví dụ như các phép toán cộng, trừ, nhân, chia; phép
toán logic, phép gán; câu lệnh điều kiện. Chương trình vẫn chưa thực
hiện được đối với câu lệnh vòng lặp.
4.8. Kết luận chương 4
Chương trình mô phỏng tính toán lượng tin rò rỉ là một bước đầu
tiên trong quá trình xây dựng công cụ tính tự động trong quá trình phân
tích định lượng luồng tin. Chương trình được xây dựng dựa trên mô
hình chuyển trạng thái, kết hợp với tính toán phân bố xác suất các giá
trị của biến bí mật thông qua quan sát giá trị của biến công cộng.
Phương pháp tính toán sử dụng công thức tính entropy. Chương trình
cũng mở ra nhiều hướng phát triển, cụ thể hoá bằng thiết kế áp dụng
cho một số ngôn ngữ phổ biến, như một thư viện mở rộng nhằm đánh
giá mức độ bảo mật của một hệ thống cụ thể.


23
KẾT LUẬN VÀ KIẾN NGHỊ

Luận văn đã áp dụng phân tích định lượng luồng tin vào chương
trình đa luồng, phương pháp tính toán lượng tin rò rỉ, và xây dựng các

ví dụ minh hoạ đơn giản. Từ các ví dụ này, bằng cách thực thi chương
trình đa luồng dưới sự điều khiển của bộ lập lịch theo mô hình chuyển
trạng thái theo xác suất, phân bố xác suất của biến bí mật thay đổi liên
tục qua từng trạng thái, phụ thuộc vào mối quan hệ của biến bí mật và
biến công cộng, cũng như các câu lệnh tác động lên biến công cộng.
Quá trình phân tích cũng cho ra kết quả tương đối chính xác, phù hợp
với nhận định ban đầu về mức độ rò rỉ của chương trình. Qua đây ta
cũng nhận thấy rằng quá trình phân tích định lượng đối với chương
trình đa luồng thực sự khá phức tạp, đặc biệt khi có nhiều đa luồng
được sử dụng.
Hiện tại chương trình mô phỏng vẫn còn nhiều hạn chế, cụ thể
chương trình mô phỏng này chỉ có thể thực hiện đối với một số câu
lệnh nhất định, ví dụ như các phép toán cộng, trừ, nhân, chia; phép
toán logic, phép gán; câu lệnh điều kiện. Chương trình vẫn chưa thực
hiện được đối với câu lệnh vòng lặp. Ngoài ra, việc truyền câu lệnh
vào chương trình mô phỏng vẫn còn phải thực hiện thủ công bằng cách
truyền cứng từng lệnh vào. Đây vẫn là một điểm hạn chế của chương
trình mô phỏng.
Chương trình mô phỏng tính toán lượng tin rò rỉ là một bước đầu
tiên trong quá trình xây dựng công cụ tính tự động trong quá trình phân
tích định lượng luồng tin. Chương trình được xây dựng dựa vào mô


×