Phương trình Rabin

Một phần của tài liệu Kỹ thuật thủy vân và mật mã học trong xác thực, bảo vệ bản quyền dữ liệu đa phương tiện (Trang 36)

Phương trình đồng dư bậc hai có dạng:

𝑋2 ≡ 𝜃 (𝑚𝑜𝑑 𝑁 ) (2.1)

Trong đó, 𝑋 là nghiệm cần tìm, 𝜃 và 𝑁 là hai tham số đã biết. Những tham số này có hai tính chất sau:

- 𝑁 = 𝑝 × 𝑞 và 𝑝, 𝑞 là hai số nguyên tố có dạng 3 mod 4. - 𝜃 là thặng dư bình phương của 𝑁 và 0 ≤ 𝜃 < 𝑁

Phương trình (2.1) được sử dụng trong thuật toán giải mã của sơ đồ Rabin, nên luận án gọi là phương trình Rabin. Theo mục 1.4.5, phương trình này có tối đa bốn nghiệm phân biệt 𝑥1, 𝑥2, 𝑥2, 𝑥4 và khi biết hai số nguyên tố 𝑝, 𝑞 thì các nghiệm này có thể được xác định như sau:

𝑥1 = 𝑅𝑜𝑜𝑡(𝑥𝑝, 𝑥𝑞), 𝑥2 = 𝑅𝑜𝑜𝑡(𝑥𝑝, 𝑞 − 𝑥𝑞),

𝑥3 = 𝑅𝑜𝑜𝑡(𝑝 − 𝑥𝑝, 𝑥𝑞) và 𝑥4 = 𝑅𝑜𝑜𝑡(𝑝 − 𝑥𝑝, 𝑞 − 𝑥𝑞)

Trong đó:

- 𝑥𝑝 = 𝜃(𝑝+1)/4 𝑚𝑜𝑑 𝑝 và 𝑥𝑞 = 𝜃(𝑞+1)/4 𝑚𝑜𝑑 𝑞

- Ký hiệu 𝑅𝑜𝑜𝑡(𝑢, 𝑣) là nghiệm của hệ phương trình đồng dư:

{𝑥 ≡ 𝑢 (mod 𝑝) 𝑥 ≡ 𝑣 (mod 𝑞)

Nghiệm của hệ này có thể tính theo Định lý đồng dư Trung Hoa.

Định lý 2.1. (1)Nếu 𝑝|𝜃 thì 𝑥1 = 𝑥3, 𝑥2 = 𝑥4, 𝑥2 = 𝑁 – 𝑥1, 𝐽 (𝑥1 𝑁) = 𝐽 (𝑥2 𝑁) = 0 (2)Nếu 𝑞|𝜃 thì 𝑥1 = 𝑥2, 𝑥3 = 𝑥4, 𝑥3 = 𝑁 – 𝑥1, 𝐽 (𝑥1 𝑁) = 𝐽 (𝑥3 𝑁) = 0 (3)Nếu 𝑝⏋𝜃 và 𝑞⏋𝜃 thì: - 𝐽 (𝑥1 𝑁) = 𝐽 (𝑥4 𝑁) = 1 và 𝑥4 = 𝑁 − 𝑥1 - 𝐽 (𝑥2 𝑁) = 𝐽 (𝑥3 𝑁) = −1 và 𝑥3 = 𝑁 − 𝑥2

Ký hiệu 𝑝⏋𝜃 (𝑞⏋𝜃 ) có nghĩa 𝜃 không chia hết cho 𝑝 (𝑞).

Chứng minh Định lý 2.1

30

𝑥1 = 𝑥3, 𝑥2 = 𝑥4, 𝐽 (𝑥1

𝑁) = 𝐽 ( 𝑥2

𝑁) = 0

Như vậy phương trình (2.1) có hai nghiệm 𝑥1 và 𝑥2 nên 𝑥2 = 𝑁 – 𝑥1. Vậy, (1) được chứng minh. Và (2) được chứng minh tương tự.

(3) Do 𝑝⏋θ, 𝑞⏋θ và các giả thiết về 𝜃, 𝑝, 𝑞, 𝑁 suy ra 𝑥𝑝 là thặng dư bậc hai của

𝑝 và 𝑥𝑞 là thặng dư bậc hai của 𝑞, nên:

𝐿 (𝑥𝑝

𝑝) = 𝐿 (𝑥𝑞

𝑞) = 1.

Vì 𝑝 có dạng 3 mod 4, nên từ các tính chất cơ sở của Legendre suy ra:

𝐿 (𝑝 − 𝑥𝑝 𝑝 ) = 𝐿 ( −𝑥𝑝 𝑝 ) = 𝐿 ( −1 𝑝 ) × 𝐿 ( 𝑥𝑝 𝑝) = 𝐿 ( −1 𝑝 ) = (−1)𝑝−12 = −1.

Tương tự suy ra:

𝐿 (𝑞−𝑥𝑞 𝑞 ) = −1. Từ đó suy ra: 𝐽 (𝑥1 𝑁) = 𝐽 ( 𝑥4 𝑁) = 1, 𝐽 ( 𝑥2 𝑁) = 𝐽 ( 𝑥3 𝑁) = −1

Mặt khác có thể thấy, nếu 𝑥 là nghiệm của phương trình (2.1) và 𝐽 (𝑁𝑥) = 1 hoặc -1, thì 𝑁 − 𝑥 cũng là nghiệm của phương trình (2.1) và 𝐽 (𝑁−𝑥

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

𝑁). Từ đó suy ra, 𝑥4 = 𝑁 − 𝑥1 và 𝑥3 = 𝑁 − 𝑥2.

Vậy Định lý 2.1 được chứng minh. Từ Định lý 2.1 suy ra hệ quả sau:

Hệ quả 2.1

Giả sử 𝑀 là nghiệm cần tìm của phương trình (2.1), thì 𝑀 có thể được xác định như sau:

(1) Nếu 𝐽 (𝑀

𝑁) = 0 hoặc 1, thì 𝑀 = 𝑥1hoặc 𝑀 = 𝑁 − 𝑥1 (2) Nếu 𝐽 (𝑀

𝑁) = −1, thì 𝑀 = 𝑥2hoặc 𝑀 = 𝑁 − 𝑥2

31

Nhận xét 2.1.

Khi biết 𝐽 (𝑀

𝑁) và biết 𝑀 thuộc nửa trên [0,𝑁−1

2 ] hoặc nửa dưới [ 𝑁+1

2 , 𝑁 − 1]của đoạn [0, 𝑁 − 1], thì từ Hệ quả 2.1 có thể xác định duy nhất giá trị 𝑀 thông qua 𝑥1

hoặc 𝑥2. Ý tưởng này sẽ được sử dụng trong sơ đồ đề xuất.

2.3.2.Thuật toán mã hóa

Với bản rõ 𝑀 thuộc {0, … , 𝑁 − 1} (với 𝑁 = 𝑝 × 𝑞), bản mã 𝐶 được xác định theo các bước: Bước 1: Xác định tham số 𝛼: 𝛼 = { 0, nếu 𝐽 (𝑀 𝑁) = 0 hoặc 1 và 𝑀 ∈ [0, 𝑁 − 1 2 ] 1, nếu 𝐽 (𝑀 𝑁) = 0 hoặc 1 và 𝑀 ∈ [ 𝑁 + 1 2 , 𝑁 − 1] 2, nếu 𝐽 (𝑀 𝑁) = −1 và 𝑀 ∈ [0, 𝑁 − 1 2 ] 3, nếu 𝐽 (𝑀 𝑁) = −1 và 𝑀 ∈ [ 𝑁 + 1 2 , 𝑁 − 1]

Bước 2: Xác định bản mã 𝐶 theo công thức:

𝐶 = 4 × (𝑀2 𝑚𝑜𝑑 𝑁) + 𝛼

2.3.3.Thuật toán giải mã

Khi biết bản mã 𝐶, việc xác định bản rõ 𝑀 gồm các bước :

Bước 1: Tính

- 𝛽 = 𝐶 𝑚𝑜𝑑 4

- 𝜃 = 𝐶 𝑑𝑖𝑣 4

Bước 2: Xét phương trình đồng dư:

𝑋2 ≡ θ (mod N)

Nếu 𝛽 = 0 hoặc 𝛽 = 1 thì tính nghiệm 𝑥1, còn nếu 𝛽 = 2 hoặc 𝛽 = 3 thì tính nghiệm 𝑥2 của phương trình đồng dư trên theo các công thức trong mục 2.3.1.

Bước 3: Bản rõ 𝑀 được xác định theo 𝛽 và 𝑥1 hoặc 𝑥2 như sau:

32

𝑀 = {𝑥1, nếu 𝑥1 ∈ [0,𝑁 − 1 2 ] 𝑁 − 𝑥1, nếu trái lại

T/h2:𝛽 = 1, thì: (adsbygoogle = window.adsbygoogle || []).push({});

𝑀 = {𝑥1, nếu 𝑥1 ∈ [

𝑁+1

2 , 𝑁 − 1] 𝑁 − 𝑥1, nếu trái lại

T/h3:𝛽 = 2, thì:

𝑀 = {𝑥2, nếu 𝑥2 ∈ [0,𝑁 − 1 2 ] 𝑁 − 𝑥2, nếu trái lại

T/h4:𝛽 = 3, thì:

𝑀 = { 𝑥2, nếu 𝑥1 ∈ [

𝑁+1

2 , 𝑁 − 1] 𝑁 − 𝑥2, nếu trái lại

Một phần của tài liệu Kỹ thuật thủy vân và mật mã học trong xác thực, bảo vệ bản quyền dữ liệu đa phương tiện (Trang 36)