Tấn công dạng 1: Tìm cách xác định khóa bí mật

Một phần của tài liệu Nghiên cứu một số loại tấn công bản mã (Trang 56 - 57)

1/. Trường hợp 1: Sử dụng modul p nhỏ

Khi sử dụng số nguyên tố p nhỏ, thì tập Z*p nhỏ, do đó việc tìm được phần tử sinh α ∈Z*p cũng không khó khăn lắm. Khi biết được α và biết được giá trị αa từ khóa công khai thám mã sẽ tính được khóa bí mật a.

→ Giải pháp phòng tránh:

Chọn modul p là số nguyên tố sao cho p – 1 có ít nhất một ước số nguyên tố lớn. Điều đó là thực hiện được nếu số nguyên tố p được chọn là số nguyên tố Sophie Germain (tức có dạng 2q+1, với q cũng là số nguyên tố lớn).

2/. Trường hợp 2: Bị lộ số k được dùng

Do cẩu thả trong việc sử dụng số ngẫu nhiên k, đặc biệt là khi để lộ số k được dùng. Thì khóa bí mật a được tính ra ngay theo công thức:

) 1 mod( ) ( 1 1 2 − − = x kp a y y .

Như vậy, một kẻ thám mã có khả năng tấn công theo kiểu “biết cả bản rõ”, có thể phát hiện ra khóa bí mật a nếu biết k.

Cẩn thận trong việc sử dụng số ngẫu nhiên k, không để lộ số k được dùng.

2.2.2.2. Tấn công dạng 2: Tìm cách xác định bản rõ

Dùng cùng một số k cho nhiều lần lập mã: Giả sử dùng cùng một số ngẫu

nhiên k cho hai lần lập mã, một lần cho x1, một lần cho x2, và được các bản mã tương ứng (y1, y2)(z1, z2). Vì dùng cùng một số k nên y1 = z1. Và do đó theo công thức lập mã ta có: z2/y2 = x2/x1, tức là x2 = x1.z2/y2. Như vậy, một người thám mã, một lần biết cả bản rõ dễ dàng phát hiện được bản rõ trong các lần sau.

→ Giải pháp phòng tránh:

Mỗi lần lập mã thì sử dụng một số k khác nhau.

Một phần của tài liệu Nghiên cứu một số loại tấn công bản mã (Trang 56 - 57)