1. Trang chủ
  2. » Tất cả

BÁO CÁO BÀI TẬP LỚN LÝ THUYẾT MẬT MÃ _Đề tài: A NEURAL CRYPTOGRAPHY BASED ON COMPLEXVALUED NEURAL NETWORK

16 5 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề A Neural Cryptography Based On Complex-Valued Neural Network
Tác giả Nguyễn Thái Dương, Nguyễn Huy Đức, Đỗ Bá Huy, Lê Văn Long
Người hướng dẫn TS. Hán Trọng Thanh
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Điện Tử - Viễn Thông
Thể loại Báo cáo
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 16
Dung lượng 0,98 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

BÁO CÁO BÀI TẬP LỚN LÝ THUYẾT MẬT MÃ Đề tài: A NEURAL CRYPTOGRAPHY BASED ON COMPLEXVALUED NEURAL NETWORK MỤC LỤC CHƯƠNG 1. GIỚI THIỆU VỀ NEURAL CRYPTOGRAPHY 3 1.1. Tổng quan về Neural Network 3 1.2. Ứng dụng Neuron Network vào mật mã học 4 CHƯƠNG 2. HỆ MẬT CVTPM 5 2.1. Network 5 2.2. Learning rules 6 2.3. Khảo sát tính bảo mật của CVTPM 9 2.4. Một số cách thức tấn công hệ mật CVTPM 10 2.4.1. Brute Force 10 2.4.2. Geometric Attack 10 CHƯƠNG 3. MÔ PHỎNG 11 3.1. Kiểm tra quá trình đồng bộ 11 3.2. Tiến hành mô phỏng 11 CHƯƠNG 4. KẾT LUẬN 14 TÀI LIỆU THAM KHẢO 15 BTL

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐIỆN TỬ - VIỄN THÔNG

BÁO CÁO BÀI TẬP LỚN

LÝ THUYẾT MẬT MÃ

Đề tài:

A NEURAL CRYPTOGRAPHY BASED ON COMPLEX-VALUED NEURAL NETWORK

Hà nội, 5-2021

Sinh viên thực hiện: Nguyễn Thái Dương 20182456

Giảng viên hướng dẫn: TS Hán Trọng Thanh

Trang 2

MỤC LỤC

CHƯƠNG 1 GIỚI THIỆU VỀ NEURAL CRYPTOGRAPHY 3

1.1 Tổng quan về Neural Network 3

1.2 Ứng dụng Neuron Network vào mật mã học 4

CHƯƠNG 2 HỆ MẬT CVTPM 5

2.1 Network 5

2.2 Learning rules 6

2.3 Khảo sát tính bảo mật của CVTPM 9

2.4 Một số cách thức tấn công hệ mật CVTPM 10

2.4.1 Brute Force 10

2.4.2 Geometric Attack 10

CHƯƠNG 3 MÔ PHỎNG 11

3.1 Kiểm tra quá trình đồng bộ 11

3.2 Tiến hành mô phỏng 11

CHƯƠNG 4 KẾT LUẬN 14

TÀI LIỆU THAM KHẢO 15

Trang 3

CHƯƠNG 1 GIỚI THIỆU VỀ NEURAL CRYPTOGRAPHY

1.1 Tổng quan về Neural Network

Neural Network (NN) là một mạng lưới xử lý thông tin sử dụng các mô hình tính toán phức tạp dựa trên sự hoạt động của các neuron trong hệ thần kinh của con người Mô hình tổng quát của một NN có dạng như sau:

Hình 1.1 Mô hình tổng quát của một Neural Network

Một NN gồm có 3 layer: input, hidden và output Trong đó ouput layer sẽ được tính toán từ input và hidden layer thông qua các thuật toán phi tuyến Các đường kết nối giữa các neuron ở các layer được gọi là edge, ứng với mỗi neuron và mỗi edge sẽ có một giá trị weight, giá trị weight này sẽ thay đổi trong quá trình huấn luyện (train) của mạng

Để train cho một mạng NN, cần có một lượng lớn thông tin là tập hợp các cặp dữ liệu đầu vào – đầu ra Khi đã được huấn luyện với lượng dữ liệu đáng kể, mạng sẽ phân loại các dữ liệu trong tương lai dựa trên những gì nó phát hiện được trong các lớp khác nhau

Neuron Network có nhiều ứng dụng trong thời đại hiện nay như: nhận dạng chữ viết, dự đoán giao dịch chứng khoán, nén hình ảnh, …

Trang 4

1.2 Ứng dụng Neuron Network vào mật mã học

Hệ mật mã khóa công khai là một hệ mật do Diffie và Hellman phát triển Thông qua hệ mật này, 2 bên A và B có thể tạo ra một khóa bí mật chung, trong khi thông tin họ trao đổi với nhau lại ở trên một kênh truyền với tính bảo mật không cao

Một hệ mật được gọi là lý tưởng khi mà kẻ tấn công không thể truy được khóa của

hệ, ngay cả khi kẻ đó biết được thuật toán tạo khóa và quan sát được mọi dữ liệu trên kênh truyền Sự đồng bộ giữa các Neural Network đã mở ra cơ hội để đạt được điều này Với sự phát triển của Neural Network trong những năm trở lại đây, Neural Network đang được ứng dụng rất nhiều vào mật mã học Hệ mật mã này được biết đến với tên gọi Neural Cryptography

Neural Cryptography là một hệ mật mã khóa công khai dựa trên tính đồng bộ của Neural Network Tại đây, 2 bên A và B có thể thống nhất được một khóa bí mật chung thông qua việc trao đổi thông tin trên một kênh truyền, trong khi kẻ tấn công dù biết thuật toán và biết được thông tin trao đổi giữa 2 bên nhưng gần như không thể biết được khóa

bí mật

Việc đồng bộ của hệ mật không tiêu tốn quá nhiều tài nguyên của hệ thống, vì vậy Neural Cryptography nhận được rất nhiều sự quan tâm Một số ứng dụng của hệ mật đó là: mạng sensor không dây, UAV, điện toán đám mây, …

Tính đến hiện tại, các nghiên cứu về Neural Cryptography chủ yếu dựa trên Neural Network với số thực (gọi là Tree Parity Machine – TPM) Vì vậy, bài báo đề xuất hệ mật Neural Cryptography dựa trên Tree Parity Machine với số phức (CVTPM)

Trong CVTPM, các giá trị input, output và weight của mỗi bên sẽ là các giá trị phức Có thể coi CVTPM là bản mở rộng của TPM CVTPM có 2 ưu điểm như sau:

1 CVTPM bảo mật tốt hơn so với TPM có cùng các tham số K, N, L

2 2 bên trong hệ mật có thể trao đổi khóa cho nhau trong một lần đồng bộ

Trang 5

CHƯƠNG 2 HỆ MẬT CVTPM

2.1 Network

Kiến trúc của CVTPM được mô tả như hình bên dưới, nó là một tree neural network

Hình 2.1 CVTPM với K=3, N=4

Giống với TPM có 3 lớp: input, hidden và output, với các giá trị là số phức Lớp input có KxN neuron vào Lớp hidden có K hidden neuron Mỗi neuron được coi như là một perceptron độc lập Lớp output có một neuron ra Trọng số weight của CVTPM là một giá trị phức, nó được định nghĩa như sau:

ωk, j = ak, j + bk, j i

Trong đó: ak, j ∈ {-L, -L + 1, …, L},

Hệ số k = 1,2…M kí hiệu cho hidden unit thứ k của network

Hệ số j = 1,2…N kí hiệu cho các phần tử của vector

L là hệ số synaptic depth của CVTPM

Một vector đầu vào xk, j được định nghĩa như sau:

xk, j = ax + bxi

Trang 6

Trong đó: ax ∈ {-1, 1}, bx ∈ {-1, 1}

Hidden unit thứ k được định nghĩa như sau:

h k= 1

j=1

N

(a k , j a x)+i

j=1

N

(b k , j b x) )

σi = aσi + bσii

Trong đó: a σi = sgn(Re(h i))

b σi = sgn(Im(h i))

Khi x=0 thì hàm sgn(x) được điều chỉnh để trả về giá trị là -1.

Output của CVTPM là:

τ =

i=1

K

ℜ(σ i)+i

i=1

K

ℑ(σ i)

Nhận xét:

 Nếu bx = 0, bω = 0 và bσ = 0 thì CVTPM sẽ thành TPM  TPM là một trường hợp đặc biệt của CVTPM

 Khi hai network được đồng bộ, chúng có cùng weight Lúc này, weight có thể được sử dụng như là một khóa bí mật Vì weight của CVTPM là một giá trị phức, CVTPM có thể trao đổi hai nhóm khóa trong cùng một quá trình đồng bộ (thu được một bộ khóa cho phần thực và một bộ khóa cho phần ảo)

 Hidden unit thứ k có thể được định nghĩa như sau:

h k= 1

j=1

N

(a k , j a x −b k , j b x)+i

j=1

N

(a k , j a x +b k, j b x) )

σi = aσi + bσi i

Trong đó: a σi = sgn(Re(h i))

b σi = sgn(Im(h i))

Với cách tính này, hidden unit không làm tăng thêm tính bảo mật mà còn làm tăng thời gian đồng bộ

2.2 Learning rules

Giả sử có hai bên A và B muốn trao đổi một khóa bí mật thông qua một kênh truyền công khai Cả A và B đều được cài đặt CVTPM Sau đó, chúng ta đưa ra một thuật toán học lẫn nhau (mutual learning algorithm) của CVTPM như sau:

(1)

(2)

Trang 7

1 CVTPM của A và B (cùng K, N, L) khởi tạo weight ω i A và ωi B với giá trị phức

ngẫu nhiên một cách độc lập với nhau

2 Ở mỗi bước, A và B nhận chung một input vector xij, được tạo ra một cách ngẫu nhiên và tính toán đầu ra τ A/B bằng (1) và (2) Sau đó, A và B trao đổi τ A và τ B

với nhau thông qua kênh truyền công khai

3 Khi A (B) nhận được τ B A), sau đó A (B) cập nhật weight bằng cách sau:

a. Nếu τre A ≠ τreBτim A ≠ τimB thì weight ωi A/B không được cập nhật

b Nếu τ re A = τ reB = Re(σ i A/B ) và τ im A = τ imB = Im(σ i A/B ) thì cập nhật weight

ω i, j của σi A/B

c Nếu τ re A = τ reB = Re(σ i A/B ) τ im A = τ imB ≠ Im(σ i A/B ) thì chỉ cập nhật phần

thực của weight ωi, j của σi A/B

d Nếu τ re A = τ reB ≠ Re(σ i A/B ) và τ im A = τ imB = Im(σ i A/B ) thì chỉ cập nhật phần

ảo của weight ωi, j của σi A/B

4 Dùng một trong những learning rules sau được sử dụng để cập nhật giá trị weight:

Theo công thức trong bài báo:

a Hebbian learning rules

b Anti-Hebbian learning rules

c Random walk learning rules

Trong đó σ i R = Re(σ i ), σ i I = Im(σ i ), ω i, j I+ = Im (ω i, j + ), ω i, j R+ = Re (ω i, j + ) và hàm g(ω) được sử dụng để đảm bảo rằng các phần tử của ω A/B thuộc đoạn [-L, +L], hàm này

được định nghĩa như sau:

Và θ(xy) là hàm bước Heaviside, được định nghĩa như sau:

Θ(xy) = 1, với x = y

= 0, với x ≠ y

Trang 8

Nhận xét:

Ta thấy, θ(σ i R τ)θ(τA τB) chỉ nhận giá trị là 0 hoặc 1, trong khi τre cũng chỉ nhận các giá trị là -1 và 1, nên giá trị của ω sau khi được update chỉ nhận được 3 giá trị là 0, ω và 2ω Tức là, một khi giá trị của một weight nào đó bằng 0 sau quá trình update, nó sẽ tiếp tục bằng 0 trong toàn bộ quá trình update sau đó, do tham số của hàm g lúc này sẽ luôn là 0

 Sau một vài quá trình update, tất cả giá trị của ωi sẽ bằng 0 Lúc này, khóa

bí mật giữa 2 bên A và B sẽ là tập các giá trị 0 Điều này khiến hệ mật trở nên vô nghĩa Khi mô phỏng trong phần mềm MATLAB, chúng em nhận

được kết quả giống như nhận xét trên Như vậy, công thức của các luật

học dùng để update các giá trị weight được nêu trong bài báo là không hợp lý.

 Chúng em tiến hành so sánh quá trình update của 2 hệ mật CVTPM và TPM, chúng em thấy có điểm khác biệt, đó là hàm update của hệ mật TPM

có sử dụng các giá trị input, ví dụ như Hebbian learning rules của TPM:

Dễ thấy rằng giá trị của ωi sau khi update được trải đều trong đoạn [-L, +L] Công thức này hợp lý hơn rất nhiều so với công thức được đưa ra trong bài

báo Khi tiến hành mô phỏng, chúng em nhận được kết quả như mong

 Vì vậy, công thức đúng cho luật học của hệ mật sẽ như bên dưới đây, cũng

sẽ là công thức được chúng em áp dụng trong quá trình mô phỏng ở chương sau:

a Hebbian learning rules

ω i , j R+¿= g(ωi, j

R+ (x i , j R τℜ )Θ(σ i R τℜ )Θ(τA τB) )¿

ω i , j I +¿= g(ωi, j

I

+ (x i ,j I τℑ )Θ(σ i τℑ )Θ(ττℑ ) )¿

b Hebbian learning rules

ω i , j R+¿= g(ωi, j

R− (x i, j R τℜ )Θ(σ i R τℜ )Θ(τA τB) )¿

ω i , j I +¿= g(ωi, j I − (x i, j I τℑ )Θ(σ i τℑ )Θ(ττℑ ) )¿

c Random walk learning rules

ω i , j R+¿= g(ωi, j R + x i, j R Θ(σ i R τℜ )Θ(τA τ Bℜ ) )¿

ω i , j I +¿= g(ωi, j

I

+ x i, j I Θ(σ i τℑ )Θ(ττℑ ) )¿

5 Lặp lại các bước từ 2-4 cho tới khi đạt được đồng bộ (ω A = ω B) Vector weight

ω A/B lúc này có thể được sử dụng như là một khóa bí mật giữa A và B

Trang 9

Trong toàn bộ quá trình đồng bộ, trạng thái của vector σ A/B là hoàn toàn không

thể truy cập từ bất cứ bên nào khác Do vậy, có bốn khả năng khi cập nhật là:

a Nếu τ re A = τ reB = Re(σi A/B ) thì phần thực của ω A/B được cập nhật Phần

thực của weight của 2 bên có thể được đồng bộ khi trường hợp này xuất hiện liên tục

b Nếu τ im A = τ imB = Im(σi A/B ) thì phần ảo của ω A/B được cập nhật Phần ảo

của weight của 2 bên có thể được đồng bộ khi trường hợp này xuất hiện liên tục

c Nếu τre A = τ reB, Re(σi A ) ≠ Re(σ i B ) thì chỉ phần thực của weight của 1 trong

2 bên A hoặc B được cập nhật Tốc độ đồng bộ phần thực có thể giảm

khi trường hợp này xuất hiện liên tục

d Nếu τim A = τ imB, Im(σi A ) ≠ Im(σ i B ) thì chỉ phần ảo của weight của 1 trong 2 bên A hoặc B được cập nhật Tốc độ đồng bộ phần ảo có thể giảm khi

trường hợp này xuất hiện liên tục

2.3 Khảo sát tính bảo mật của CVTPM

Trong chương này, nhóm tác giả của bài báo khảo sát tính bảo mật của CVTPM Một hệ mật Neural Cryptography bảo mật cần phải đáp ứng các điều kiện sau:

1 Độ sâu synaptic L của CVTPM tỉ lệ thuận với thời gian đồng bộ trung bình giữa hai Neural Network theo hàm đa thức

2 Thời gian đồng bộ trung bình của kẻ tấn công E với cùng kiến trúc mạng và thuật toán learning rule tăng theo hàm số mũ

Tính bảo mật của CVTPM bị ảnh hưởng bởi quá trình đồng bộ hóa CVTPM Mức

độ đồng bộ của một hệ CVTPM là hệ số overlap (chồng lẫn) Hệ số overlap ρ của σ i được

tính theo công thức:

ρ= ρ+ ρ

2 Trong đó:

ρℜ = ℜ(ω i A)ℜ(ω i B)

√ℜ(ω i A)ℜ(ω i A) √ℜ(ω i B)ℜ(ω i B)[0,1]

ρℑ= ℑ(ω i A)ℑ(ω i B)

√ℑ(ω i A)ℑ(ω i A) √ℑ(ω i B)ℑ(ω i B)[0,1] Khi bắt đầu đồng bộ, do các vector weight ban đầu của A và B là ngẫu nhiên, ta có thể coi ρ = 0 Khi weight của 2 bên A và bên được đồng bộ thì ρ = 1

Trang 10

Dễ thấy quá trình đồng bộ phần thực (phần ảo) của CVTPM giống với quá trình đồng bộ của TPM, nên khả năng bảo mật của phần thực (phần ảo) của CVTPM so với khả năng bảo mật của TPM là như nhau Kẻ tấn công cần biết cả phần thực và phần ảo của weight thì mới có được khóa chung của 2 bên Do quá trình đồng bộ phần thực và phần ảo của weight là độc lập, ta có công thức sau:

P CVTPM E =P E× P E<P E TPM

Trong đó, Pℜ / ℑE là xác suất để kẻ tấn công biết được toàn bộ phần thực/ảo của weight của hệ khi quá trình đồng bộ hoàn tất Vì PEPE có giá trị nhỏ hơn 1 nên CVTPM bảo mật tốt hơn so với TPM có cùng hệ số K, N, L

2.4 Một số cách thức tấn công hệ mật CVTPM

Có một số phương pháp được đưa ra để tấn công hệ mật CVTPM Tại đây, ta giả

sử rằng kẻ tấn công E có được toàn bộ thông tin trên đường truyền của 2 bên trong hệ mật (bao gồm giá trị input, giá trị ouput, luật học và các giá trị K, L, N) và tạo ra một neural network với thông số tương đương, chỉ có các hệ số weight là khác vì chúng không xuất hiện trên đường truyền Sau đây chúng em giới thiệu 2 cách đó là Brute Force và Geometric Attack

2.4.1 Brute Force

Do các giá trị weight không có trên đường truyền nên E sẽ phải thử với toàn bộ giá trị weight Mỗi bên A và B sẽ có KxN giá trị weight, mỗi giá trị weight là một số phức với phần thực và phần ảo nằm trong đoạn [-L, +L], nghĩa là để thử tất cả các giá trị của weight, E sẽ phải thử (2L+1)2KN trường hợp, điều này là bất khả thi vì nó quá sức với mọi

hệ thống tính toán trên thế giới ở thời điểm hiện tại

2.4.2 Geometric Attack

Khi τE = τA = τB, E chỉ cần thực hiện bước update các giá trị weight Trong trường hợp khác nhau, E không thể ngăn việc A và B update các giá trị ωA và ωB Thay vào đó, E

sẽ cố gắng điều chỉnh các giá trị σ của hệ mình dựa trên một tập gồm K giá trị từ h1 đến

hK Khi giá trị tuyệt đối của hi càng nhỏ thì xác suất σ i E ≠ σ i A là càng lớn E sẽ thay đổi giá trị σ i E tương ứng với giá trị |h i| nhỏ nhất và tính lại giá trị của τE trước khi tiến hành bước update

Việc ước lượng các giá trị của σ i A không phải dễ dàng và rất khó để làm được Trong trường hợp có rất nhiều giá trị σ i E ≠ σ i A thì việc chỉ thay đổi một giá trị σ i E tương ứng

Trang 11

với giá trị |h i| nhỏ nhất là không đủ Thậm chí trong trường hợp giá trị σ i E =σ i A tại vị trí |h i|

nhỏ nhất thì việc thay đổi lại gây ra tác dụng ngược lại

Tuy vẫn còn các hạn chế nêu trên, Geometric Attack vẫn được coi là phương pháp tấn công ổn nhất khi tấn công hệ mật CVTPM Điều này chỉ ra rằng việc tấn công hệ mật CVTPM vẫn sẽ là một bài toán khó ở hiện tại

Trang 12

CHƯƠNG 3 MÔ PHỎNG

Trong chương này, chúng em tiến hành mô phỏng trên MATLAB với hệ mật CVTPM sử dụng luật học Hebbian learning rules, công thức của luật học là công thức đã được chỉnh sửa như trong phần nhận xét ở chương trước

3.1 Kiểm tra quá trình đồng bộ

Ở chương trước, ta biết được khi quá trình đồng bộ hoàn tất, weight của 2 bên A và

B sẽ có giá trị như nhau và giá trị này được sử dụng làm khóa chung của 2 bên Do đó, để kiểm tra quá trình đồng bộ trong khi mô phỏng, ta sẽ dùng công thức sau đây:

ED=

i=1

K

j=1

N

ω i , j A −ω i , j B‖ Với ED là khoảng cách Euclidean giữa 2 weight của 2 bên A và B Khi quá trình đồng bộ hoàn tất thì ED có giá trị là 0

3.2 Tiến hành mô phỏng

Dưới đây là giao diện của phần mềm mô phỏng hệ mật CVTPM:

Hình 3.1 Giao diện GUI cho việc mô phỏng hệ mật CVTPM

Trang 13

Chúng em tiến hành mô phỏng với các hệ số giống với ví dụ được nêu trong bài báo, với K=3, N=1000, L=9 Dưới đây là giao diện phần mềm sau khi các giá trị ban đầu được khởi tạo:

Hình 3.2 Khởi tạo các giá trị

Khi ấn RUN, phần mềm sẽ tiến hành quá trình đồng bộ 2 hệ mật Đồ thị bên phải

là đồ thị của giá trị ED và số bước update Kết quả cuối cùng sau khi chạy như sau:

Hình 3.3 Kết thúc quá trình đồng bộ

Trang 14

Ở đồ thị ta thấy 2 đường, đường màu xanh là hệ số ED của hệ mật CVTPM theo số

số lần update, đường màu đỏ là của hệ mật TPM

Khi so sánh với kết quả trong bài báo với kết quả mô phỏng được (các hệ số K, N,

L giống nhau), chúng em thấy 2 kết quả là tương đồng:

Hình 3.4 Kết quả mô phỏng của bài báo

Trang 15

CHƯƠNG 4 KẾT LUẬN

Nhóm chúng em đã hoàn thành mục tiêu đề ra, đó là mô phỏng hệ mật CVTPM và viết một phần mềm cho việc mô phỏng bằng ngôn ngữ lập trình MATLAB

Trong quá trình thực hiện, chúng em đã nhận thấy sự không hợp lý trong các công thức về luật học của bài báo mà thầy giao cho Chúng em đã tham khảo các tài liệu về hệ mật TPM và sửa lại các công thức trên Kết quả mô phỏng sau đó là hợp lý hơn và khớp với kết quả tại phần mô phỏng của bài báo

Chúng em xin cảm ơn thầy Hán Trọng Thanh đã giúp đỡ để chúng em có thể hoàn thiện bài tập lớn này

Ngày đăng: 21/03/2023, 09:05

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w