Thám mã vi sa

Một phần của tài liệu Tài liệu Kỹ thuật lập trình - Chương 7 Kiểm tra và xây dựng số nguyên tố (Trang 75 - 78)

Q trình sinh khóa: Thuật tốn sử dụng khóa mật có chiều dài b bytes, ở đây

7.21 Thám mã vi sa

Thám mã vi sai là một trong các phương pháp phân tích cơ bản và hiệu quả nhất đối với mã khối. Phương pháp mã vi sai đươc đưa ra năm 1990 bởi các nhà nhà toán học E. Biham và Shamir. Đây là phép tấn cơng với việc chọn bản rõ chọn lọc, để tìm ra khóa mật hay một phần khóa mật.

Định nghĩa: Cho cặp hai véc tơ X, X*GF(2)n. Khoảng cách giữa hai véc tơ hay còn gọi là hiệu giữa hai véc tơ được xác định bằng lệnh XOR: α =XX *.

Định nghĩa: Vi sai của vòng mã thứ i được xác định bằng cặp véc tơ (α,β), sao cho cặp bản rõ (x,x’) có hiệu bằng α có thể đi qua i vòng mã, đầu ra là cặp bản mã (y,y’) với

hiệu của chúng là β.

Xác suất vi sai của vịng mã thứ i- đó là xác suất có điều kiện, sao cho hiệu ∆y(i)của cặp bản mã (y,y’) sau i vòng mã bằng β với điều kiện là cặp bản rõ tương ứng (x, x’) có

hiệu khoảng cách là ∆x=α, khi bản rõ x và các khóa k(1), k(2),…,k(i) sử dụng tương ứng trong các vòng 1,2,…,i là độc lập và đồng khả năng, có nghĩa là

)| | ) ( (∆ = β ∆ =α = P y i x P ,

lúc này xác suất phân bố vi sai đối với từng vịng là khơng đổi và khơng phụ thuộc vào vịng trước.

Giá trị vi sai ở đầu ra của vòng mã thứ i được sử dụng để tìm kiểm khóa con của vịng mã cuối cùng tức là vòng thứ i+1 bằng cách như sau:

Đối với từng cặp bản rõ –mã ta giả sử rằng giá trị vi sai đầu ra của vòng mã thứ i là β. Tiếp theo để giá trị này và giá trị của cặp bản rõ –mã tìm được những giá trị có thể của khóa con trong vịng mã cuối i+1 cùng, tức là hình thành một số tập hợp khóa con mà nó thỏa mã điều kiện trên. Lúc này thì một phần trong các tập hợp là khóa đúng. Đối với tất cả tập hợp giá trị có thể của khóa vịng, chúng ta thiết lập bảng tần số xuất hiện của chúng. Tấn công sẽ thành công khi giá trị đúng của khóa vịng xuất hiện thường xun hơn các giá trị khác.

Trong trường hợp này có thể tính tốn biểu thức tương quan giữa số lương cặp giá trị giả sử đúng và số lượng trung bình các phương án có thể của khóa vịng trong bảng tần số.

Biểu thức này được gọi là biểu thức tín hiệu – tiếng ồn S/N (Signal to noise). Nếu như kích thước bảng phương án của khóa vịng là 2l, ở đây l là chiều dài của khóa vịng, cịn số lượng trung bình các phương án là γ thì biểu thức S/N được viết:

γ α α β x l i y P N S/ = (∆ ( ) = |∆ = )⋅2 (7.1)

Biểu thức (7.1) ảnh hưởng rất lớn lên số lượng cặp bản mã và rõ đúng mà số lượng này cần thiết để xác định một khóa vịng.

Thuật tốn thám mã vi sai

Quá trình cơ bản của thuật tốn thám mã vi sai r vịng mã sử dụng bản rõ chọn lọc, diễn ra như sau:

Đầu vào: thuật tốn mã hóa, bản rõ chọn lọc và bản mã tương ứng. Đầu ra: khóa.

1. Ở bước đầu tiên của tính tốn chúng ta tìm tập hợp vi sai của [αjj]r−1 cho vòng mã thứ (r−1), với j =1,2,...,s, sao cho xác suấtP(∆y(r −1) = βj |∆xj) lớn

nhất hoặc gần lớn nhất. Lúc này bản rõ X và tất cả khóa con k(1),k(2),...,k(r−1) đối với

)1 1

(r − vòng mã là độc lập và đồng khả năng. Sắp xếp chúng theo thứ tự tăng dần của xác suất.

2. Đối với một bản rõ bất kỳ x chúng ta tính bản rõ x’ sao cho hiệu khaỏng cách giữa x và x’ bằng α1. Mã hóa bản rõ x và x’ trên khóa cần tìm và sau r vịng thu được cặp bản mã y(r),y'(r). Giả sử rằng đầu ra của vòng mã thứ(r−1)hiệu khoảng cách của các

bản mã có xác suất lớn nhất:∆y(r−1)= β1. Từ bộ ba(∆y(r −1),y(r), y'(r))chúng ta tìm ra tất cả giá trị có thể của khóak(r) .

3. Lặp lại bước 2 cho đến khi có một hoặc một số giá trị của khóa con к(r) không ngừng xuất hiện thường xuyên các giá trị khác. Chúng ta xem khóa này hoặc một tập khóa này là nghiệm mã hóa đối với khóa k(r)của vịng mã cuối cùng.

4. Chúng ta lặp lại các bước từ 1-3 đối với vòng mã kề cuối, lúc này giá trị y(r −1)

được tính bằng cách giải mã bản mã trên khóa tìm đượck(r) . Chúng ta thực hiện tương tự để tìm ra các khóa vịng cịn lại.

Hiệu quả của thuật toán phụ thuộc vào độ lớn và sự phân bố tập hữu hạn vi sai sau

)1 1

(r − vịng mã, có nghĩa là biểu thức S/N. Xác suất vi sai càng nhỏ và càng phân bố đều giữa chúng thì càng khó xác định giá trị khóa k(r) .

Từ thuật tốn chúng ta thấy rằng, điều kiện cần để thám mã vi sai r vịng mã thành cơng là tồn tại vi sai của vòng mã thứ (r-1), mà xác suât xuất hiện của chúng lớn hơn rất nhiều so với 2−m.

Điều này có nghĩa là, để phân tích khả năng thực hiện tấn cơng vi sai, cũng như đánh giá hiệu quả của phương pháp, cần phải biết được giá trị lớn nhất của xác suất vi sai sau một số vòng mã.

Xác suất lớn nhất của vi sai được sử dụng để xác định giới hạn dưới của độ phức tạp tấn cơng vi sai và có thể chứng tỏ rằng r vịng mã sẽ khơng bị tổn thương bởi phép tấn cơng này.

Đối với mật mã có vi sai khơng phụ thuộc vào sự lựa chọn bản rõ, nếu các khóa con của các chu kỳ độc lập nhau thì dãy các khoảng cách sau từng chu kỳ tạo thành chu trình Markob. Lúc này xác suất thu được vi sai của vòng thứ s được xác định:

P(∆y(s)=βs | ∆ x= α )=∑ ∑ ∑∏ − = − = − ∆ = ∆ 2 1 1 1 1) ) 1 ( | ) ( ( ... β β β β β s s i i i y i i y P .

Đối với cặp vi sai đã cho (α,β)i xác suất để thu được cặp này lớn hơn nhiều so với m n − ≈ −1 2 2 1 : P(∆y(i)= β | ∆ x=α )=δαβ >>2−m,

với m là kích thước của khối mã.

Độ phức tạp bẻ khóa của vịng thứ r mật mã là Q(r) được xác định bắng số lệnh mã sử dụng trong qúa trình tìm khóa:

Q(r)≥2/ (Pmax - 1/(2m-1)), ở đây:

Pmax=max(α )max(β )(P(∆y(r-1)=β | ∆ x=α )),

Trong số đó nếu Pmax ≈ 1/(2m-1), thì việc tấn cơng được xem là khơng thành cơng.

Một phần của tài liệu Tài liệu Kỹ thuật lập trình - Chương 7 Kiểm tra và xây dựng số nguyên tố (Trang 75 - 78)

Tải bản đầy đủ (DOC)

(81 trang)
w