Thuật toán nhận dạng bản rõ

Một phần của tài liệu Nghiên cứu phương pháp tấn công chuẩn mật mã khối (DES) nhờ hệ thống tính toán hiệu năng cao (Trang 35)

Mục đích của phần này là nghiên cứu và mở rộng một bổ đề cơ bản trong lý thuyết thông tin. Trên cơ sở đó, đề xuất một thuật toán phân lớp các đối tƣợng phục vụ yêu cầu cần thiết của các kỹ thuật thám mã (cryptanalysis) các hệ mã hóa và kỹ thuật phát hiện ảnh giấu tin mật (steganalysis).

a) Bổ đề cơ bản và sự mở rộng của nó

Bổ đề 1. Giả sử f và g là hai hàm số không âm và khả tích trên miền xác định S đối với độ đo µ, 𝜎 hữu hạn.

Khi đó, nếu: 𝑓 − 𝑔 𝑑𝜇 ≥ 0𝑠 thì 𝑓𝑙𝑜𝑔𝑠 𝑔𝑓𝑑𝜇 ≥ 0 (3.1) [7](*)

Dấu “=” đạt đƣợc khi và chỉ khi f = g hầu khắp nơi trên S (đối với độ đo µ).

30

Bổ đề 1 có thể đƣợc mở rộng sang trƣờng hợp hàm nhiều biến nhƣ sau:

Bổ đề 1’. Giả sử f(x1, x2, ..., xn), g(x1, x2, ..., xn) là hai hàm không âm, khả tích trên không gian n chiều.

S = S1 x S2 x ... x Sn (trƣờng hợp đặc biệt là S = Sn) đối với độ đo µ = (µ1, µ2, ..., µn), 𝜎 hữu hạn nào đó sao cho:

𝑓 𝑥𝑠 1, … , 𝑥𝑛 − 𝑔 𝑥1, … , 𝑥𝑛 𝑑µ1, … , 𝑑µ𝑛 ≥ 0

Thế thì:

(f 𝑥1, … , 𝑥𝑛 log𝒇 𝒙𝟏,…,𝒙𝒏

𝒈 𝒙𝟏,…,𝒙𝒏 𝑑µ1, … , 𝑑µ𝑛

𝒔 ≥ 0 [7]

Dấu “=” đạt đƣợc khi và chỉ khi f = g hầu khắp nơi trên S (đối với độ đo µ). Giả sử, ta dùng ký hiệu sau đây: L+(Ω, ℱ, µ) là không gian các hàm khả tích, không âm trên Ω đối với độ đo µ, 𝜎 hữu hạn.

Bây giờ chúng ta đƣa ra một số khái niệm cơ sở.

Định nghĩa 1. Hai hàm số f và g đƣợc xác định trên tập hợp S đƣợc gọi là bằng nhau theo nghĩa xác suất P (f =P g) nếu ∃𝜀 > 0, và xác suất:

P{x ∊ S: |f(x) – g(x)| < 𝜀} = 1.

Định nghĩa 2. Hai hàm số f và g đƣợc xác định trên tập hợp S đƣợc gọi là khác nhau theo nghĩa xác suất (f P g) nếu ∃𝜀 > 0, và xác suất:

P{x ∊ S: |f(x) – g(x)| ≥ 𝜀} = 1.

Ta ký hiệu: U(f) = {h: h =P f}; U(g) = {h: h =P g}

Rõ ràng rằng nếu f P g thì giao của hai tập hợp U(f) U(g) =P (1)

(theo nghĩa xác suất).

Chứng minh:

Thật vậy, giả sử h ∈ U(f), tức là ∀𝜀1 > 0, ta có xác suất

31

∀𝜀2 > 0, P{|h - g| < 𝜀2} = 1. Do đó: P{|h - f| < 𝜀1} + P{|h - g| < 𝜀2} ≥ 1, nhƣng biến cố:

w1 = {|h - f| < 𝜀1} và w2 = {|h - g| < 𝜀2} đều nằm trong biến cố:

w = {|f - g| < 𝜀}, trong đó 𝜀 = max (𝜀1, 𝜀2).

Tức là w1 ∪ w2⊂ w, vậy:

P{w} ≥ P{w1} + P{w2} ≥ 1, tức là ∀𝜀 > 0 ta đều có: (adsbygoogle = window.adsbygoogle || []).push({});

P{|f – g| ≥ 𝜀} = 1 – P{|f – g| < 𝜀} = 0.

Kết quả này trái với giả thiết f P g. Vậy khẳng định (1) đƣợc chứng minh.

Sự phân biệt giữa hai tập hợp U(f) và U(g) là cơ sở để phân biệt giữa hai tập hợp xâu ký tự là tập hợp xâu ký tự ngẫu nghiên, và tập hợp các xâu ký tự là “bản rõ” hay các xâu có nghĩa, đọc đƣợc.

Mệnh đề: Từ Bổ đề 1, ta có các mệnh đề sau đây:

Giả sử hai hàm f, g ∈ L+(Ω, ℱ, µ), và f P g còn h là một hàm tùy ý, h ∈

L+(Ω, 𝜏, µ). Khi đó:

Nếu: 𝑕 . 𝑙𝑜𝑔Ω 𝑓𝑔𝑑𝜇 ≥ 0 ⇒ h ∈ U(f) (3.2)

Nếu: 𝑕 . 𝑙𝑜𝑔Ω 𝑓𝑔𝑑𝜇 < 0 ⇒ h ∈ U(g) (3.3)

Từ 2 mệnh đề nêu trên, chúng ta xây dựng thuật toán nhận biết “bản rõ” đƣợc trình bày ở Mục 3 dƣới đây.

b) Đặt bài toán

Trong phạm vi đề tài luận văn này, bài toán đƣợc đặt ra nhƣ sau: giả sử trên cơ sở nào đó, máy tính nhận đƣợc một dãy các ký tự X = x1x2...xm. Trong đó, xi ∈ A = {a, b, c,..., z}, i =1, 𝑚. Hãy xây dựng một thuật toán để máy tính trả lời cho câu hỏi: dãy

X là “bản rõ” hay là dãy giả ngẫu nhiên (một dãy vô nghĩa)?

c) Phương pháp giải

Nhƣ đã định nghĩa ở trên, theo quan điểm Markov, một thông báo rõ X = x0...xn-1 là một mẫu đƣợc lấy có lựa chọn các ký tự từ bảng chữ cái A = {a0, a1, ..., am-1} với

32

phân bố xác suất P(X), X ∈ A. Nếu X là “bản rõ” (thông báo rõ) thì phân bố xác suất của chúng là không đồng đều và không độc lập vì sự xuất hiện một ký tự bất kỳ trong dãy phụ thuộc vào các ký tự ngay trƣớc đó. Còn nếu X là mẫu ngẫu nhiên độc lập có phân bố đều thì P(X) = (1/m)n. Trong đó, m là số lƣợng chữ cái của bảng chữ cái A, còn n là độ dài của mẫu X.

Nhƣ vậy, với bài toán đặt ra ở Mục 3, ta có hai giả thuyết đƣợc đặt ra nhƣ sau:

Giả thuyết H0: Mẫu X = (x0, ..., xn-1) là dãy ngẫu nhiên, độc lập lấy từ họ phân bố đều, tức là có mật độ xác suất: P(X) = f0(x) = 1/m, ∀𝑥

Giả thuyết H1: Mẫu X lấy từ một nguồn Markov m trạng thái. Tức là P(X) = g0(X), X ∈ A. Với g0(X) đƣợc cho trƣớc hoặc đƣợc xác định bằng phƣơng pháp ƣớc lƣợng thống kê nào đó, chẳng hạn phƣơng pháp ƣớc lƣợng cực đại hợp lý (Maximal Likelihood Estimator). Nhƣ vậy là hàm f(X) và g(X) là đã biết (hoặc có thể ƣớc lƣợng đƣợc). Có nhiều cách giải bài toán đƣợc cho ở Mục 3.

Do mục tiêu của bài toán và Mệnh đề nói trên áp dụng cho nhận dạng “bản rõ” tiếng Anh nên không gian biến đã đƣợc xác định, gồm 26 chữ cái tiếng Anh. Vì vậy, có thể thay dấu tích phân ( ) bằng dấu tổng (∑) vào vế trái của Bất đẳng thức 3.2, và 3.3 đồng thời thêm một số tham số dƣơng k để có biểu thức sau:

∑ 𝑕 𝑥 . 𝑘 . 𝑙𝑜𝑔(𝒇 𝒙

𝒈 𝒙

𝒙∈𝑨 ) (3.4)

Tham số dƣơng k có ý nghĩa trong thống kê toán học, giúp phân biệt các giá trị logarit (do giá trị logarit tƣơng ứng với các giá trị xác suất thành phần là rất bé).

Nhƣ vậy, theo Mệnh đề nếu (3.4)≥ 0 thì h(x) ∈ U(f)

Trái lại, theo Mệnh đề nếu (3.4)< 0 thì h(x) ∈ U(g)

Trong (3.4) đối với một lớp rộng rãi các ngôn ngữ la tinh, ta chọn k = 7 còn log là logarit cơ số 10.

Dƣới đây sẽ trình bày thuật toán nhận biết “bản rõ” dựa trên tần suất tần suất bộ đôi. Thuật toán gồm hai phần. Trong đó phần offline thực hiện tiền tính toán tần suất đối với chữ viết là ngôn ngữ tiếng Anh và chỉ thực hiện một lần. Phần Online thực hiện tính toán tần số hay số lần xuất hiện của các bộ đôi chữ cái (không cần tính tần suất) đối với xâu đầu vào X.

33

c1. Phần Off-line (tiền tính toán) (adsbygoogle = window.adsbygoogle || []).push({});

Tính các giá trị s(x, y) tƣơng ứng với thừa số k . log(𝐟𝟎 𝐱

𝐠𝟎 𝐱 ) của biểu thức (3.4): Chọn một mẫu văn bản chuẩn hóa tiếng Anh chính thống M = m1m2... mn. Trong đó mi ∈ Bảng chữ cái (A), i = 1, n,với n đủ lớn (n ≥ 10.000).

- Đặt Xt, t+1(x, y) = 1 nếu cặp ký tự (x, y) xuất hiện tại vị trí t, t + 1 0 nếu ngƣợc lại,

với x, y ∈ A.

- Tính với tần số xuất hiện cho mỗi cặp (x, y), với x, y ∈ A: g(x, y) = 𝑛−1𝑡=1 Xt,t+1(x, y) - Tính với các giá trị s(x, y) cho mỗi cặp (x, y), với x, y ∈ A:

Do mọi giá trị f(x, y) là tần số bộ đôi phân bố đều của một xâu ký tự ngẫu nhiên thuộc bảng chữ cái tiếng Anh và đều bằng 1/26 nên ta tính các giá trị s(x, y) nhƣ sau:

s(x, y) = k . log nx

26 .g x,y , (3.8)

trong đó,

nx = zy=af(x, y), và k = 7, và logarit có cơ số 10.

Sau khi tính đƣợc tất cả các giá trị s(x, y) ta nhận đƣợc ma trận vuông S cấp 26 x 26:

S = (s(x, y)) x, y ∈ A x A (3.9)

Trong đó, [s] là số nguyên lớn nhất, nhƣng không vƣợt quá x. Ví dụ: s = 2,2 thì [s] = [2,2] = 2; s = -2,3 thì [s] = [-2,3] = -3,...

Chẳng hạn, theo kết quả tiền tính toán, các trọng số tần suất s(a, d) = -2, s(c, o) = - 4, s(z, b) = 11,...

(Các phần tử s(x, y) của ma trận vuông S cấp 26 x 26 đƣợc tính, trình bày ở Phụ lục 1, và tƣơng ứng với thừa số 𝑘 . 𝑙𝑜𝑔(𝒇𝟎 𝒙

𝒈𝟎 𝒙 )của Biểu thức 3.4, mục 3.2.3.2c) Đến đây, phần Off-lineđã đƣợc hoàn thành.

34

c2. Phần On-line (kiểm tra xâu vào)

Giả sử ta có một mẫu X = x1x2...xn, trong đó xi ∈ Bảng chữ cái A, i = 1, 𝑛 , n ≥ 8. Để xác định xem X là mẫu văn bản đọc đƣợc hay là xâu ngẫu nhiên vô nghĩa, ta thực hiện các bƣớc tƣơng tự phần Off-line:

- Đặt Xt, t+1(x, y) = 1 nếu ký tự (x, y) xuất hiện tại vị trí t, t + 1 0 nếu ngƣợc lại,

với x, y ∈ A.

- Tính với tần số xuất hiện cho mỗi cặp (x, y), với x, y ∈ A: t(x, y) = 𝑛−1𝑡=1 Xt,t+1(x, y) (𝟑. 𝟏𝟎)

Sau bƣớc này ta nhận đƣợc ma trận vuông T cấp 26 x 26 gồm các giá trị phần tử t(x, y) là tần số xuất hiện của các cặp (x, y) trong mẫu X đang xét.

T = (t(x, y)) x, y ∈ A x A (3.11)

(Các giá trị phần tử của ma trận vuông T cấp 26 x 26 này tương ứng với thừa số h(x) của biểu thức (3.4) ở Mục 3.2.3.2c).

c3. Xác định hàm kiểm tra “bản rõ” F:

Căn cứ vào biểu thức (3.4) ở Mục 3.2.3.2c ta tính tổng F dựa trên tần suất đôi (Mô hình xích Markov) s(x, y) và tần số đôi t(x, y) của xâu X:

𝐹 = 𝑠 𝑥,𝑦 𝑡 𝑥,𝑦 , (3.12) 𝑧

𝑦=𝑎 𝑧

𝑥=𝑎 (adsbygoogle = window.adsbygoogle || []).push({});

trong đó, các giá trị s(x, y) đƣợc tính ở (3.8) của phần Off-line, các giá trị t(x, y) đƣợc tính ở (3.10) của phần kiểm tra xâu vào.

- Nếu F ≥ 0 thì X là xâu ngẫu nhiên, tức X không phải là “bản rõ”. - Nếu F < 0 thì X là “bản rõ” tiếng Anh, có nghĩa và đọc đƣợc.

Đến đây thuật toán kết thúc. Thuật toán này nhiều ƣu điểm nhƣ thực hiện nhanh, có độ chính xác cao, trên 90%, phần Tiền tính toán chỉ thực hiện một lần và lƣu kết quả vào cơ sở dữ liệu để sử dụng lâu dài.

Dƣới đây là một số ví dụ về ứng dụng thuật toán để kiểm tra một xâu vào bất kỳ có phải là “bản rõ” hay không.

35

Ví dụ 3.1: Cho x = “zeppelin”. Tra cứu Phụ lục 2 để xác định các trọng số tần suất s(x, y), thống kê các giá trị t(s, y) từ xâu X, và áp dụng hàm F, ta có bảng sau:

s(x, y) t(x, y) s(x, y) . t(x, y) S(ze) = -5 T(ze) = 1 -5 S(ep) = 4 T(ep) = 1 4 S(pp) = -1 T(pp) = 1 -1 S(pe) = -4 T(pe) = 1 -4 S(el) = -1 T(el) = 1 -1 S(li) = -3 T(li) = 1 -3 S(in) = -5 T(in) = 1 -5 Các giá trị t(x, y) khác đều bằng không 𝐹 = 𝑠 𝑥,𝑦 𝑡 𝑥,𝑦 𝑧 𝑦=𝑎 𝑧 𝑥=𝑎 -15

F = - 15 < 0. Vậy xâu X = “zeppelin” là thông báo có nghĩa, hay X là “bản rõ”. Kết luận này là đúng, vì thực tế “zeppelin” có nghĩa là “khí cầu”.

Ví dụ 3.2: Cho X = “Cnimcnoioutma”. Tra cứu Phụ lục 2 để xác định các trọng số tần suất s(x, y), thống kê các giá trị t(s, y) từ xâu X, và áp dụng hàm F, ta có bảng sau:

s(x, y) t(x, y) s(x, y) . t(x, y) s(cn) = 11 t(cn) = 2 22 s(ni) = -1 t(ni) = 1 -1 s(im) = 0 t(im) = 1 0 s(mc) = 4 t(mc) = 1 4 s(no) = -2 t(no) = 1 -2 s(oi) = 1 t(oi) = 1 1 s(io) = -2 t(io) = 1 -2 s(ou) = -2 t(ou) = 1 -2 s(ut) = -3 t(ut) = 1 -3 s(tm) = 2 t(tm) = 1 2 s(ma) = -4 t(ma) = 1 -4 Các giá trị t(x, y) khác đều bằng không 𝐹 = 𝑠 𝑥,𝑦 𝑡 𝑥,𝑦 𝑧 𝑦=𝑎 𝑧 𝑥=𝑎 15

F = 15 > 0. Vậy xâu X = “Cnimcnoioutma” là xâu không có nghĩa, hay X không phải là “bản rõ”.

36

* Kết luận

Có thể nói rằng, thuật toán nhận dạng “bản rõ” trên đây đã xây dựng đƣợc “tiêu chuẩn bản rõ” đối với ngôn ngữ tiếng Anh. Thuật toán cũng có thể đƣợc mở rộng để xây dựng “tiêu chuẩn bản rõ” cho các ngôn ngữ khác nhƣ tiếng Pháp, tiếng Nga, tiếng Việt,... Trong trƣờng hợp không xác định đƣợc ngôn ngữ thì cần có giải pháp phức tạp hơn, đó là dựa trên đặc trƣng chung nhất của các ngôn ngữ phổ dụng. Tiêu chuẩn “bản rõ” nói trên là một cơ sở quan trọng để thực hiện thám mã nói chung và thám mã DES nói riêng đƣợc đề cập trong đề tài này.

Thuật toán nhận dạng “bản rõ” cùng với “tiêu chuẩn bản rõ” của nó là cơ sở để xây dựng “hàm phù hợp” (finness function) - một thành phần rất quan trọng của thuật toán di truyền (sẽ đƣợc giới thiệu ở phần tiếp theo).

Đến đây, ta có thể xác định hàm phù hợp tƣơng tự biểu thức 3.12 nhƣ sau:

𝐹 = 𝑠 𝑥,𝑦 𝑡 𝑥,𝑦 𝑧

𝑦=𝑎 𝑧

𝑥=𝑎

3.3. TÌM HIỂU THUẬT TOÁN DI TRUYỀN [12] 3.3.1. Giới thiệu

Thuật toán di truyền (Genetic Algorithm - GA) là một kỹ thuật tìm kiếm và tối ƣu hóa dựa trên nguyên lý di truyền và chọn lọc tự nhiên. GA cho phép một dân số đƣợc cấu thành bởi nhiều cá thể tiến hóa theo các quy luật xác định tới một trạng thái tối đa hóa sự “phù hợp” (hay tối thiểu hóa chi phí).

Thuật toán di truyền bắt đầu giống nhƣ bất kỳ thuật toán tối ƣu nào khác, bằng cách định nghĩa các biến tối ƣu, chi phí và hàm chi phí, và cũng kết thúc tƣơng tự các thuật toán khác. Tuy nhiên, các thành phần khác, ở giữa toàn bộ tiến trình của mỗi thế hệ thì hoàn toàn khác. Chúng hoạt động tƣơng tự các diễn biến tự nhiên trong sinh học. Đặc điểm dân số qua các thế hệ thể hiện sự tiến hóa tự nhiên theo một quy luật, hay một xu hƣớng nào đó (của môi trƣờng sống). Sự “tiến hóa” này giúp thuật toán tìm dần đƣa ra đƣợc các giải pháp tốt, và cuối cùng tìm đƣợc một giải pháp chấp nhận đƣợc (hội tụ).

3.3.2. Thuật toán di truyền nhị phân

3.3.2.1. Thuật toán di truyền nhị phân - sự chọn lọc tự nhiên trên máy tính

Nhƣ chúng ta đã biết, GA có hai dạng là GA nhị phân và GA liên tục. Cả hai thuật toán đều có cùng mô hình kết hợp di truyền và sự chọn lọc tự nhiên. Thuật toán thứ nhất

37

trình diễn các biến nhƣ một chuỗi nhị phân đƣợc mã hóa và làm việc với các chuỗi nhị phân để tối thiểu hóa chi phí, trong khi thuật toán thứ hai làm việc với chính các biến liên tục để tối thiểu hóa chi phí. GA đƣợc biết đến từ việc trình diễn các biến nhị phân, hay nói cách khác GA có nguồn gốc từ GA nhị phân.

Hình 3.4 cho thấy sự tƣơng tự giữa tiến hóa sinh học và một GA nhị phân. Cả hai đều bắt đầu với một dân số khởi tạo với các thành viên ngẫu nhiên. Mỗi một dòng của các số nhị phân trình diễn các đặc tính của một trong số con chó của dân số. Các đặc điểm kết hợp với tiếng sủa to của mỗi con chó đƣợc mã hóa trong các chuỗi nhị phân. Nếu chúng ta cố gắng để sinh sản ra những con chó có tiếng sủa to, thì chỉ có một số con chó sủa to nhất đƣợc giữ lại để sinh sản (trong trƣờng hợp này là bốn con). Có cách để xác định tiếng sủa to, chẳng hạn ghi âm lại tiếng sủa của chó và dung lƣợng âm thanh sẽ đƣợc đo. Những con chó với tiếng sủa to sẽ nhận đƣợc chi phí thấp. Từ việc sinh sản này, hai con sẽ đƣợc chọn ngẫu nhiên để sinh ra hai con chó con. Những con chó con này có xác suất tiếng sủa to bởi vì bố mẹ của chúng có các gen để tạo ra tiếng sủa to. Các chuỗi nhị phân mới của các con chứa các thành phần của các chuỗi nhị phân từ cả bố và mẹ. Những con chó con mới này sẽ thay thế hai con chó con bị loại bỏ do tiếng sủa không đủ to. Việc sinh sản đủ thêm các con chó con đƣa dân số trở lại kích thƣớc ban đầu của nó. Vòng lặp dựa trên tiến trình này dẫn tới một con chó với tiếng sủa rất to. Tiến trình tối ƣu hóa tự nhiên này có thể đƣợc áp dụng tốt cho các đối tƣợng vô tri, vô giác.

Mã nhị phân của mỗi con chó Những con chó sủa và đƣợc ghi âm Những con chó đƣợc chọn lọc để giao phối Những con mới đƣợc sinh ra và thay thế những con có hiệu quả thấp

Đột biến (adsbygoogle = window.adsbygoogle || []).push({});

38

3.3.2.2. Các thành phần của thuật toán di truyền nhị phân

GA bắt đầu giống nhƣ bất kỳ thuật toán tối ƣu nào khác, bằng cách định nghĩa các biến tối ƣu, chi phí và hàm chi phí, và cũng kết thúc tƣơng tự các thuật toán khác. Nhƣng phần giữa tiến trình thì hoàn toàn khác. Một đƣờng dẫn thông qua các thành phần của GA đƣợc trình diễn nhƣ là biểu đồ luồng ở Hình 3.5. Chi tiết mỗi khối trong “bức tranh lớn” ở Hình 3.5 sẽ đƣợc trình bày trong Chƣơng này.

Định nghĩa chi phí, hàm chi phí, các biến, chọn lọc các tham biến GA

Tạo dân số ban đầu Mã hóa các nhiễm sắc thể Tính chi phí mỗi nhiễm sắc thể Ghép cặp, sinh sản Đột biến Kết thúc Kiểm tra hội tụ

Có Không

Chọn lọc

Hình 3.5.Biểu đồ luồng của thuật toán di truyền nhị phân [12, pp.29]

Một phần của tài liệu Nghiên cứu phương pháp tấn công chuẩn mật mã khối (DES) nhờ hệ thống tính toán hiệu năng cao (Trang 35)