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
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 Sinh viên thực hiện: Giảng viên hướng dẫn: Nguyễn Thái Dương 20182456 Nguyễn Huy Đức 20182434 Đỗ Bá Huy 20182575 Lê Văn Long 20182654 TS Hán Trọng Thanh Hà nội, 5-2021 MỤC LỤC CHƯƠNG GIỚI THIỆU VỀ NEURAL CRYPTOGRAPHY 1.1 Tổng quan Neural Network 1.2 Ứng dụng Neuron Network vào mật mã học CHƯƠNG HỆ MẬT CVTPM .5 2.1 Network 2.2 Learning rules .6 2.3 Khảo sát tính bảo mật CVTPM 2.4 Một số cách thức công hệ mật CVTPM 10 2.4.1 Brute Force .10 2.4.2 Geometric Attack 10 CHƯƠNG MÔ PHỎNG 11 3.1 Kiểm tra trình đồng 11 3.2 Tiến hành mô 11 CHƯƠNG KẾT LUẬN 14 TÀI LIỆU THAM KHẢO 15 CHƯƠNG GIỚI THIỆU VỀ NEURAL CRYPTOGRAPHY 1.1 Tổng quan Neural Network Neural Network (NN) mạng lưới xử lý thông tin sử dụng mơ hình tính tốn phức tạp dựa hoạt động neuron hệ thần kinh người Mơ hình tổng qt NN có dạng sau: Hình 1.1 Mơ hình tổng quát Neural Network Một NN gồm có layer: input, hidden output Trong ouput layer tính tốn từ input hidden layer thơng qua thuật toán phi tuyến Các đường kết nối neuron layer gọi edge, ứng với neuron edge có giá trị weight, giá trị weight thay đổi trình huấn luyện (train) mạng Để train cho mạng NN, cần có lượng lớn thơng tin tập hợp cặp liệu đầu vào – đầu Khi huấn luyện với lượng liệu đáng kể, mạng phân loại liệu tương lai dựa phát lớp khác Neuron Network có nhiều ứng dụng thời đại như: nhận dạng chữ viết, dự đốn giao dịch chứng khốn, nén hình ảnh, … 1.2 Ứng dụng Neuron Network vào mật mã học Hệ mật mã khóa cơng khai hệ mật Diffie Hellman phát triển Thông qua hệ mật này, bên A B tạo khóa bí mật chung, thơng tin họ trao đổi kênh truyền với tính bảo mật khơng cao Một hệ mật gọi lý tưởng mà kẻ công khơng thể truy khóa hệ, kẻ biết thuật tốn tạo khóa quan sát liệu kênh truyền Sự đồng Neural Network mở hội để đạt điều Với phát triển Neural Network năm trở lại đây, Neural Network ứng dụng nhiều vào mật mã học Hệ mật mã biết đến với tên gọi Neural Cryptography Neural Cryptography hệ mật mã khóa cơng khai dựa tính đồng Neural Network Tại đây, bên A B thống khóa bí mật chung thơng qua việc trao đổi thông tin kênh truyền, kẻ cơng dù biết thuật tốn biết thông tin trao đổi bên gần khơng thể biết khóa bí mật Việc đồng hệ mật không tiêu tốn nhiều tài nguyên hệ thống, Neural Cryptography nhận nhiều quan tâm Một số ứng dụng hệ mật là: mạng sensor khơng dây, UAV, điện tốn đám mây, … Tính đến tại, nghiên cứu Neural Cryptography chủ yếu dựa Neural Network với số thực (gọi Tree Parity Machine – TPM) Vì vậy, báo đề xuất hệ mật Neural Cryptography dựa Tree Parity Machine với số phức (CVTPM) Trong CVTPM, giá trị input, output weight bên giá trị phức Có thể coi CVTPM mở rộng TPM CVTPM có ưu điểm sau: CVTPM bảo mật tốt so với TPM có tham số K, N, L 2 bên hệ mật trao đổi khóa cho lần đồng CHƯƠNG HỆ MẬT CVTPM 2.1 Network Kiến trúc CVTPM mơ tả hình bên dưới, tree neural network Hình 2.1 CVTPM với K=3, N=4 Giống với TPM có lớp: input, hidden output, với giá trị số phức Lớp input có KxN neuron vào Lớp hidden có K hidden neuron Mỗi neuron coi perceptron độc lập Lớp output có neuron Trọng số weight CVTPM giá trị phức, định nghĩa sau: ωk, j = ak, j + bk, j i Trong đó: ak, j ∈ {-L, -L + 1, …, L}, bk, j ∈ {-L, -L + 1, …, L} Hệ số k = 1,2…M kí hiệu cho hidden unit thứ k network Hệ số j = 1,2…N kí hiệu cho phần tử vector L hệ số synaptic depth CVTPM Một vector đầu vào xk, j định nghĩa sau: xk, j = ax + bxi Trong đó: ax ∈ {-1, 1}, bx ∈ {-1, 1} Hidden unit thứ k định nghĩa sau: h k= √N (∑ ( N j=1 ) N ak , j ax ) +i ∑ ( b k , j b x ) j=1 (1) σi = aσi + bσii Và Trong đó: aσi = sgn(Re(hi)) bσi = sgn(Im(hi)) Khi x=0 hàm sgn(x) điều chỉnh để trả giá trị -1 Output CVTPM là: K K i=1 i=1 τ =∏ ℜ ( σ i ) +i ∏ ℑ ( σ i ) (2) Nhận xét: Nếu bx = 0, bω = bσ = CVTPM thành TPM TPM trường hợp đặc biệt CVTPM Khi hai network đồng bộ, chúng có weight Lúc này, weight sử dụng khóa bí mật Vì weight CVTPM giá trị phức, CVTPM trao đổi hai nhóm khóa trình đồng (thu khóa cho phần thực khóa cho phần ảo) Hidden unit thứ k định nghĩa sau: h k= làm 2.2 √N ( N N j=1 j=1 ) ∑ ( ak , j ax−bk , j b x) +i ∑ ( a k , j a x +b k, j b x ) Và σi = aσi + bσi i Trong đó: aσi = sgn(Re(hi)) bσi = sgn(Im(hi)) 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 tăng thời gian đồng Learning rules Giả sử có hai bên A B muốn trao đổi khóa bí mật thơng qua kênh truyền cơng khai Cả A B cài đặt CVTPM Sau đó, đưa thuật toán học lẫn (mutual learning algorithm) CVTPM sau: CVTPM A B (cùng K, N, L) khởi tạo weight ωiA ωiB với giá trị phức ngẫu nhiên cách độc lập với Ở bước, A B nhận chung input vector x ij, tạo cách ngẫu nhiên tính tốn đầu τ A/B (1) (2) Sau đó, A B trao đổi τ A τ B với thông qua kênh truyền công khai Khi A (B) nhận τ B (τ A), sau A (B) cập nhật weight cách sau: a Nếu τre A ≠ τreB τim A ≠ τimB weight ωiA/B không cập nhật b Nếu τre A = τreB = Re(σiA/B) τim A = τimB = Im(σiA/B) cập nhật weight ωi, j σiA/B c Nếu τre A = τreB = Re(σiA/B) τim A = τimB ≠ Im(σiA/B) cập nhật phần thực weight ωi, j σi A/B d Nếu τre A = τreB ≠ Re(σiA/B) τim A = τimB = Im(σiA/B) cập nhật phần ảo weight ωi, j σi A/B Dùng learning rules sau sử dụng để cập nhật giá trị weight: Theo công thức báo: a Hebbian learning rules b Anti-Hebbian learning rules c Random walk learning rules Trong σiR = Re(σi), σiI = Im(σi), ωi, jI+ = Im (ωi, j+), ωi, jR+ = Re (ωi, j+) hàm g(ω) sử dụng để đảm bảo phần tử ωA/B thuộc đoạn [-L, +L], hàm định nghĩa sau: Và θ(xy) hàm bước Heaviside, định nghĩa sau: Θ(xy) = 1, với x = y = 0, với x ≠ y Nhận xét: Ta thấy, θ( σ iR τ ℜ) θ(τ ℜA τ Bℜ ) nhận giá trị 1, τre nhận giá trị -1 1, nên giá trị ω sau update nhận giá trị 0, ω 2ω Tức là, giá trị weight sau q trình update, tiếp tục tồn q trình update sau đó, tham số hàm g lúc Sau vài trình update, tất giá trị ω i Lúc này, khóa bí mật bên A B tập giá trị Điều khiến hệ mật trở nên vô nghĩa Khi mô phần mềm MATLAB, chúng em nhận kết giống nhận xét Như vậy, công thức luật học dùng để update giá trị weight nêu báo không hợp lý Chúng em tiến hành so sánh trình update hệ mật CVTPM TPM, chúng em thấy có điểm khác biệt, hàm update hệ mật TPM có sử dụng giá trị input, ví dụ Hebbian learning rules TPM: Dễ thấy giá trị ωi sau update trải đoạn [-L, +L] Công thức hợp lý nhiều so với công thức đưa báo Khi tiến hành mô phỏng, chúng em nhận kết mong muốn sử dụng giá trị input xi, j luật học Vì vậy, cơng thức cho luật học hệ mật bên đây, công thức chúng em áp dụng q trình mơ chương sau: a Hebbian learning rules R +¿= g(ωi, j + ( xi , j τ ℜ ) Θ ( σ i τ ℜ ) Θ ( τ ℜ τ ℜ ))¿ R ωi , j R R A B I +¿= g(ωi, j + ( xi ,j τ ℑ) Θ ( σ i τ ℑ ) Θ ( τ ℑ τ ℑ) )¿ I ωi , j I I A B b Hebbian learning rules R +¿= g(ωi, j − ( x i, j τ ℜ ) Θ ( σ i τ ℜ ) Θ ( τ ℜ τ ℜ ) )¿ R ωi , j R R A B I +¿= g(ωi, j − ( x i, j τ ℑ ) Θ ( σ i τ ℑ) Θ ( τ ℑ τ ℑ ))¿ I ωi , j I I A B c Random walk learning rules R +¿= g(ωi, j + x i, j Θ ( σi τ ℜ ) Θ ( τ ℜ τ ℜ ))¿ ωi , j R R R A B I +¿= g(ωi, j + x i, j Θ (σ i τ ℑ ) Θ ( τ ℑ τ ℑ ))¿ ωi , j I I I A B Lặp lại bước từ 2-4 đạt đồng (ωA = ωB) Vector weight ωA/B lúc sử dụng khóa bí mật A B Trong tồn q trình đồng bộ, trạng thái vector σA/B hồn tồn khơng thể truy cập từ bên khác Do vậy, có bốn khả cập nhật là: a Nếu τre A = τreB = Re(σiA/B) phần thực ωA/B cập nhật Phần thực weight bên đồng trường hợp xuất liên tục b Nếu τim A = τimB = Im(σiA/B) phần ảo ωA/B cập nhật Phần ảo weight bên đồng trường hợp xuất liên tục c Nếu τreA = τreB, Re(σiA) ≠ Re(σiB) phần thực weight bên A B cập nhật Tốc độ đồng phần thực giảm trường hợp xuất liên tục d Nếu τim A = τimB, Im(σiA) ≠ Im(σiB) phần ảo weight bên A B cập nhật Tốc độ đồng phần ảo giảm trường hợp xuất liên tục 2.3 Khảo sát tính bảo mật CVTPM Trong chương này, nhóm tác giả báo khảo sát tính bảo mật CVTPM Một hệ mật Neural Cryptography bảo mật cần phải đáp ứng điều kiện sau: Độ sâu synaptic L CVTPM tỉ lệ thuận với thời gian đồng trung bình hai Neural Network theo hàm đa thức Thời gian đồng trung bình kẻ cơng E với kiến trúc mạng thuật toán learning rule tăng theo hàm số mũ Tính bảo mật CVTPM bị ảnh hưởng q trình đồng hóa CVTPM Mức độ đồng hệ CVTPM hệ số overlap (chồng lẫn) Hệ số overlap ρ σi tính theo cơng thức: ρ= ρ ℜ+ ρℑ Trong đó: ℜ ( ωi ) ℜ ( ω i ) A ρ ℜ= B √ ℜ ( ω ) ℜ ( ω ) √ ℜ (ω ) ℜ ( ω ) ρ ℑ= A i √ ℑ( ω A i A i ℑ ( ω iA ) ℑ ( ωiB ) B i B i ) ℑ ( ωiA ) √ ℑ ( ωiB ) ℑ ( ωiB ) , ρ ℜ ∈ [ ,1 ] , ρ ℑ ∈ [ ,1 ] Khi bắt đầu đồng bộ, vector weight ban đầu A B ngẫu nhiên, ta coi ρ = Khi weight bên A bên đồng ρ = Dễ thấy trình đồng phần thực (phần ảo) CVTPM giống với trình đồng TPM, nên khả bảo mật phần thực (phần ảo) CVTPM so với khả bảo mật TPM Kẻ công cần biết phần thực phần ảo weight có khóa chung bên Do trình đồng phần thực phần ảo weight độc lập, ta có cơng thức sau: PCVTPM =PℜE × PℑE < PTPM E E ℜ/ℑ Trong đó, P E xác suất để kẻ công biết toàn phần thực/ảo ℜ ℑ weight hệ q trình đồng hồn tất Vì P E P E có giá trị nhỏ nên CVTPM bảo mật tốt so với TPM có hệ số K, N, L 2.4 Một số cách thức cơng hệ mật CVTPM Có số phương pháp đưa để công hệ mật CVTPM Tại đây, ta giả sử kẻ công E có tồn thơng tin đường truyền bên hệ mật (bao gồm giá trị input, giá trị ouput, luật học giá trị K, L, N) tạo neural network với thông số tương đương, có hệ số weight khác chúng khơng xuất đường truyền Sau chúng em giới thiệu cách Brute Force Geometric Attack 2.4.1 Brute Force Do giá trị weight khơng có đường truyền nên E phải thử với toàn giá trị weight Mỗi bên A B có KxN giá trị weight, giá trị weight số phức với phần thực phần ảo nằm đoạn [-L, +L], nghĩa để thử tất giá trị weight, E phải thử (2L+1)2KN trường hợp, điều bất khả thi q sức với hệ thống tính tốn giới thời điểm 2.4.2 Geometric Attack Khi τE = τA = τB, E cần thực bước update giá trị weight Trong trường hợp khác nhau, E ngăn việc A B update giá trị ωA ωB Thay vào đó, E cố gắng điều chỉnh giá trị σ hệ dựa tập gồm K giá trị từ h đến hK Khi giá trị tuyệt đối hi nhỏ xác suất σ Ei ≠ σ iA lớn E thay đổi giá trị σ Ei tương ứng với giá trị |h i| nhỏ tính lại giá trị τE trước tiến hành bước update Việc ước lượng giá trị σ iA dễ dàng khó để làm Trong trường hợp có nhiều giá trị σ Ei ≠ σ iA việc thay đổi giá trị σ Ei tương ứng với giá trị |h i| nhỏ khơng đủ Thậm chí trường hợp giá trị σ Ei =σ iA vị trí |h i| nhỏ việc thay đổi lại gây tác dụng ngược lại Tuy hạn chế nêu trên, Geometric Attack coi phương pháp công ổn công hệ mật CVTPM Điều việc công hệ mật CVTPM tốn khó CHƯƠNG MÔ PHỎNG Trong chương này, chúng em tiến hành mô MATLAB với hệ mật CVTPM sử dụng luật học Hebbian learning rules, công thức luật học công thức chỉnh sửa phần nhận xét chương trước 3.1 Kiểm tra trình đồng Ở chương trước, ta biết trình đồng hồn tất, weight bên A B có giá trị giá trị sử dụng làm khóa chung bên Do đó, để kiểm tra q trình đồng mô phỏng, ta dùng công thức sau đây: K N ED=∑ ∑ ‖ω iA, j −ωiB, j‖ i=1 j=1 Với ED khoảng cách Euclidean weight bên A B Khi trình đồng hồn tất ED có giá trị 3.2 Tiến hành mô Dưới giao diện phần mềm mơ hệ mật CVTPM: Hình 3.1 Giao diện GUI cho việc mô hệ mật CVTPM Chúng em tiến hành mô với hệ số giống với ví dụ nêu báo, với K=3, N=1000, L=9 Dưới giao diện phần mềm sau giá trị ban đầu khởi tạo: Hình 3.2 Khởi tạo giá trị Khi ấn RUN, phần mềm tiến hành trình đồng hệ mật Đồ thị bên phải đồ thị giá trị ED số bước update Kết cuối sau chạy sau: Hình 3.3 Kết thúc trình đồng Ở đồ thị ta thấy đường, đường màu xanh hệ số ED hệ mật CVTPM theo số số lần update, đường màu đỏ hệ mật TPM Khi so sánh với kết báo với kết mô (các hệ số K, N, L giống nhau), chúng em thấy kết tương đồng: Hình 3.4 Kết mô báo CHƯƠNG KẾT LUẬN Nhóm chúng em hồn thành mục tiêu đề ra, mơ hệ mật CVTPM viết phần mềm cho việc mô ngôn ngữ lập trình MATLAB Trong trình thực hiện, chúng em nhận thấy không hợp lý công thức luật học báo mà thầy giao cho Chúng em tham khảo tài liệu hệ mật TPM sửa lại công thức Kết mơ sau hợp lý khớp với kết phần mô báo Chúng em xin cảm ơn thầy Hán Trọng Thanh giúp đỡ để chúng em hồn thiện tập lớn TÀI LIỆU THAM KHẢO [1] "https://arxiv.org/," [Online] Available: https://arxiv.org/pdf/0711.2411.pdf [Accessed 19 2021] [2] "Wikipedia," [Online] Available: https://en.wikipedia.org/wiki/Neural_cryptography [Accessed 19 2021] [3] T Dong and T Huang, "Neural Cryptography Based on Complex-Valued Neural Network," in IEEE Transactions on Neural Networks and Learning Systems, vol 31, no 11, pp 4999-5004, Nov 2020, doi: 10.1109/TNNLS.2019.2955165 ... https://en.wikipedia.org/wiki /Neural_ cryptography [Accessed 19 2021] [3] T Dong and T Huang, "Neural Cryptography Based on Complex-Valued Neural Network, " in IEEE Transactions on Neural Networks and Learning Systems,... học Hệ mật mã biết đến với tên gọi Neural Cryptography Neural Cryptography hệ mật mã kh? ?a cơng khai d? ?a tính đồng Neural Network Tại đây, bên A B thống kh? ?a bí mật chung thơng qua việc trao đổi... cứu Neural Cryptography chủ yếu d? ?a Neural Network với số thực (gọi Tree Parity Machine – TPM) Vì vậy, báo đề xuất hệ mật Neural Cryptography d? ?a Tree Parity Machine với số phức (CVTPM) Trong