Sơ đồ Shimada

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 33)

Sơ đồ Shimada [42] sử dụng hai số nguyên tố 𝑝, 𝑞 có dạng: 𝑝 ≡ 7(𝑚𝑜𝑑 8) và

𝑞 ≡ 3(𝑚𝑜𝑑 8). Thuật toán mã hóa sử dụng hai hàm 𝑡𝑒, 𝑢𝑒 và thuật toán giải mã sử dụng thêm hai hàm 𝑡𝑑, 𝑢𝑑. Nội dung thuật toán mã hóa và giải mã như sau :

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

Bản rõ 𝑀 thuộc {0, … , 𝑁 − 1} với 𝑁 = 𝑝 × 𝑞, bản mã 𝐶 được lập theo các bước:

27

Bước 1: Tính 𝑡𝑒(𝑀) theo công thức:

𝑡𝑒(𝑀) = { 𝟏, nếu 0 ≤ 𝑀 ≤ 𝑁 − 1 2 −𝟏, nếu 𝑁 + 1 2 ≤ 𝑀 ≤ (𝑁 − 1) Bước 2: Tính 𝑢𝑒(𝑀): 𝑢𝑒(𝑀) = {1, nếu 𝐽 ( 𝑀 𝑁 ) = 0 hoặc 1 2, nếu 𝐽 (𝑀 𝑁) = −1 Bước 3: Tính 𝜃: 𝜃 = 𝑀2 𝑚𝑜𝑑 𝑁 Bước 4: Tạo bản mã 𝐶: 𝐶 = 𝑡𝑒(𝑀) × 𝑢𝑒(𝑀) × 𝜃 𝑚𝑜𝑑 𝑁

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

Khi biết bản mã 𝐶 thuộc {0, … , 𝑁 − 1} thì bản rõ 𝑀 được xác định theo các bước: Bước 1: Tính 𝑡𝑑(𝐶): 𝑡𝑑(𝐶) = { 1, nếu 𝐿 (𝐶 𝑝) = 𝐿 ( 𝐶 𝑞) = 0 𝐿 (𝐶 𝑝) , nếu 𝐿 ( 𝐶 𝑝) = 0 𝑣à 𝐿 ( 𝐶 𝑞) ≠ 0 𝐿 (𝐶 𝑞) , nếu 𝐿 ( 𝐶 𝑝) ≠ 0 Bước 2: Tính 𝑢𝑑(𝐶): 𝑢𝑑(𝐶) = { 1, nếu 𝐿 (𝐶 𝑝) × 𝐿 ( 𝐶 𝑞) = 0 hoặc 1 2, nếu 𝐿 (𝐶 𝑝) × 𝐿 ( 𝐶 𝑞) = −1 Bước 3: Tính 𝜃: 𝜃 = 𝐶 × [𝑡𝑑(𝐶)]−1× [𝑢𝑑(𝐶)]−1 𝑚𝑜𝑑 𝑁 Bước 4: Tìm bản rõ 𝑀:

28

Giải phương trình 𝑋2 ≡ 𝜃 (𝑚𝑜𝑑 𝑁) theo mục 1.4.5 để tìm một nghiệm thỏa mãn các điều kiện:

𝑡𝑒(𝑥) = 𝑡𝑑(𝐶) và 𝑢𝑒(𝑥) = 𝑢𝑑(𝐶)

nghiệm tìm được chính là bản rõ 𝑀.

2.2.2.Sơ đồ Chen-Tsu

Sơ đồ Chen-Tsu [14] là sự cải tiến của sơ đồ Shimada nhằm giảm khối lượng tính toán trong thuật toán giải mã. Hai sơ đồ này có cùng thuật toán mã hóa và chỉ khác thuật toán giải mã, nội dung thuật toán giải mã như sau:

Bước 1: Tính 𝑡𝑑(𝐶), 𝑢𝑑(𝐶) và 𝜃 như trong thuật toán giải mã của Shimada.

Bước 2: Xác định hai nghiệm 𝑥1và 𝑥2 của phương trình 𝑋2 ≡ 𝜃 (𝑚𝑜𝑑 𝑁) theo mục 1.4.5.

Bước 3: Bản rõ 𝑀 được xác định tùy thuộc vào giá trị của mỗi nghiệm và của các hàm 𝑡𝑑(𝐶), 𝑢𝑑(𝐶). Xét 4 trường hợp:

T/h1:𝑡𝑑(𝐶) = 1 và 𝑢𝑑(𝐶) = 1,

Nếu 𝑥1 ∈ [0,𝑁−1

2 ] thì 𝑀 = 𝑥1, trái lại 𝑀 = 𝑁 − 𝑥1

T/h2: 𝑡𝑑(𝐶) = 1 và 𝑢𝑑(𝐶) = 2,

Nếu 𝑥2 ∈ [0,𝑁−12 ] thì 𝑀 = 𝑥2, trái lại 𝑀 = 𝑁 − 𝑥2

T/h3: 𝑡𝑑(𝐶) = −1 và 𝑢𝑑(𝐶) = 2, Nếu 𝑥2 ∈ [𝑁+1 2 , 𝑁 − 1] thì 𝑀 = 𝑥2, trái lại 𝑀 = 𝑁 − 𝑥2 T/h4:𝑡𝑑(𝐶) = −1 và 𝑢𝑑(𝐶) = 1, Nếu 𝑥1 ∈ [𝑁+1 2 , 𝑁 − 1] thì 𝑀 = 𝑥1, trái lại 𝑀 = 𝑁 − 𝑥1

2.3. Đề xuất một sơ đồ Rabin mới

Dựa trên ý tưởng của các sơ đồ [14,36,42], phần này đề xuất sơ đồ Rabin mới cũng có khả năng xác định bản rõ duy nhất trong thuật toán giải mã, nhưng khối lượng tính toán của thuật toán giải mã ít hơn hẳn so với các thuật toán giải mã của hai sơ đồ Shimada và Chen-Tsu. Ngoài ra, sơ đồ đề xuất vẫn sử dụng hai số nguyên tố 𝑝, 𝑞 có dạng 3 (mod 4) nên phạm vi ứng dụng cũng được cải thiện hơn. Trước tiên luận án xét phương trình Rabin:

29

2.3.1.Phương trình Rabin

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: (adsbygoogle = window.adsbygoogle || []).push({});

- 𝑁 = 𝑝 × 𝑞 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à 𝐽 (𝑁−𝑥

𝑁 ) = 𝐽 (𝑥

𝑁). 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: (adsbygoogle = window.adsbygoogle || []).push({});

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ì:

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

𝑁+1 (adsbygoogle = window.adsbygoogle || []).push({});

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

2.3.4. Xét ví dụ minh họa sơ đồ Rabin đề xuất

Để làm rõ hơn nội dung của sơ đồ đề xuất, ta xét hai ví dụ minh họa quá trình mã hóa và giải mã ứng với hai số nguyên tố 𝑝, 𝑞 có dạng 3 (mod 4) như sau:

𝑝 = 43 = 3 + 4 × 10 và 𝑞 = 31 = 3 + 4 × 7. Vậy 𝑁 = 𝑝 × 𝑞 = 1333. Ví dụ 1: Xét bản rõ 𝑀 = 213 Quá trình mã hóa Bước 1: 𝐽 (𝑀 𝑁) = 𝐽 (213

1333) = −1 (tính theo thuật toán trong [2], trang 110).

Do 𝑀 ∈ [0,𝑁−1 2 ] và 𝐽 (𝑀 𝑁) = −1 nên 𝜶 = 2 Bước 2: 𝐶 = 4(𝑀2 mod 𝑁) + 𝛼 = 4(1232 mod 1333) + 2 = 190 Quá trình giải mã Bước 1: 𝛽 = 𝐶 𝑚𝑜𝑑 4 = 190 𝑚𝑜𝑑 4 = 2 và 𝜃 = 𝐶 𝑑𝑖𝑣 4 = 190 𝑑𝑖𝑣 4 = 47

33

{𝑥𝑝 = 𝜃(𝑝+1)/4 𝑚𝑜𝑑 𝑝 = 4711 𝑚𝑜𝑑 43 = 41 𝑥𝑞 = 𝜃(𝑞+1)/4 𝑚𝑜𝑑 𝑞 = 478 𝑚𝑜𝑑 31 = 4

Giải hệ phương trình đồng dư:

{𝑥2 ≡ 𝑥𝑝 (𝑚𝑜𝑑 𝑝) 𝑥2 ≡ 𝑞−𝑥𝑞 (𝑚𝑜𝑑 𝑞){ 𝑥2 ≡ 41 (𝑚𝑜𝑑 43 ) 𝑥2 ≡ 31 − 4 (𝑚𝑜𝑑 31){ 𝑥2 ≡ 41 (𝑚𝑜𝑑 43) 𝑥2 ≡ 27 (𝑚𝑜𝑑 31 ) được nghiệm 𝑥2 = 213. Bước 3: Do 𝛽 = 2 và 𝑥2 ∈ [0,𝑁−1 2 ]nên 𝑀 = 𝑥2. Vậy 𝑀 = 213. Ví dụ 2: Xét 𝑀 = 913 Quá trình mã hóa Bước 1: 𝐽 (𝑀 𝑁) = 𝐽 (913

1333) = 1 (tính theo thuật toán trong [2], trang 110).

Do 𝑀 ∈ [𝑁+1 2 , 𝑁 − 1] và 𝐽 (𝑀 𝑁) = 1 nên 𝛼 = 1. Bướć3: ́ ́ ́ ́ ́́ ́ 𝐶 = 4 × (𝑀2 mod 𝑁) + 𝛼 = 4 × (913𝟐 mod 1333) + 1 = 1777 Quá trình giải mã Bước 1: 𝛽 = 𝐶 𝑚𝑜𝑑 4 = 1777 𝑚𝑜𝑑 4 = 1 và 𝜃 = 𝐶 𝑑𝑖𝑣 4 = 1777 𝑑𝑖𝑣 4 = 444

Bước 2: Do 𝛽 = 1, xác định nghiệm 𝑥1 như sau:

{𝑥𝑝 = 𝜃

(𝑝+1)/4 𝑚𝑜𝑑 𝑝 = 44411 𝑚𝑜𝑑 43 = 10 𝑥𝑞 = 𝜃(𝑞+1)/4 𝑚𝑜𝑑 𝑞 = 4448 𝑚𝑜𝑑 31 = 14

Giải hệ phương trình đồng dư:

{𝑥1 ≡ 𝑥𝑝 (𝑚𝑜𝑑 𝑝) 𝑥1 ≡ 𝑥𝑞(𝑚𝑜𝑑 𝑞) { 𝑥1 ≡ 10 (𝑚𝑜𝑑 43 ) 𝑥1 ≡ 14 (𝑚𝑜𝑑 31) được nghiệm 𝑥1 = 913. Bước 3: Do β = 1 và 𝑥1 ∈ [𝑁+1 2 , 𝑁 − 1]nên 𝑀 = 𝑥1. Vậy 𝑀 = 913.

34

Các ví dụ trên cho thấy, sơ đồ đề xuất đều xác định đúng và duy nhất bản rõ ứng với mỗi bản mã. Ngoài ra, nội dung thuật toán khá đơn giản so với hai sơ đồ Shimada và Chen-Tsu.

2.3.5.Chứng minh tính đúng đắn của sơ đồ Rabin đề xuất

Từ Bước 2 của thuật toán mã hóa và Bước 1 của thuật toán giải mã ta có thể dễ dàng suy ra:

𝛽 = 𝛼 và 𝜃 ≡ 𝑀2 (𝑚𝑜𝑑 𝑁)

Như vậy, 𝜃 là thặng dư bình phương của 𝑁, nên phương trình ở Bước 2 trong thuật toán giải mã chính là phương trình Rabin và bốn nghiệm 𝑥1, 𝑥2, 𝑥3, 𝑥4 có thể được tính theo các công thức trong mục 2.3.1.

Mặt khác, bản rõ 𝑀 hiển nhiên cũng là một nghiệm của phương trình này. Do đó, (adsbygoogle = window.adsbygoogle || []).push({});

𝑀 phải trùng với một trong bốn nghiệm nói trên.

Vì 𝛽 = 𝛼, nên 𝛽 có thể nhận một trong bốn giá trị từ 0 đến 3. Ta sẽ lần lượt xét từng trường hợp trong Bước 3 của thuật toán giải mã.

T/h1: Nếu 𝛽 = 0, thì từ Bước 1 thuật toán mã hóa suy ra 𝐽 (𝑀𝑁) = 0 hoặc 1 và 𝑀

thuộc nửa trên [0, 𝑁−12 ]. Nên theo Hệ quả 2.1, 𝑀 = 𝑥1 hoặc 𝑀 = 𝑁 − 𝑥1. Vì vậy, 𝑀 = 𝑥1 nếu 𝑥1 thuộc nửa trên và 𝑀 = 𝑁 − 𝑥1 nếu trái lại.

T/h2: Nếu 𝛽 = 1, lập luận tương tự chỉ khác 𝑀 thuộc nửa dưới, do đó 𝑀 = 𝑥1

nếu 𝑥1 thuộc nửa dưới và 𝑀 = 𝑁 − 𝑥1 nếu trái lại.

T/h3: Nếu 𝛽 = 2, theo thuật toán mã hóa suy ra 𝐽 (𝑀𝑁) = −1 và 𝑀 thuộc nửa trên. Do 𝐽 (𝑀𝑁) = −1 nên theo Hệ quả 2.1, 𝑀 = 𝑥2 hoặc 𝑁 − 𝑥2. Vậy 𝑀 = 𝑥2 nếu

𝑥2 thuộc nửa trên và 𝑀 = 𝑁 − 𝑥2 nếu trái lại.

T/h4: Nếu 𝛽 = 3, lập luận tương tự chỉ khác 𝑀 thuộc nửa dưới, do đó 𝑀 = 𝑥2

nếu 𝑥2 thuộc nửa dưới và 𝑀 = 𝑁 − 𝑥2 nếu trái lại.

Vậy, tính đúng đắn của sơ đồ đề xuất được chứng minh.

2.3.6.Phân tích các sơ đồ cải tiến hệ mật mã Rabin

Phần này sẽ phân tích, so sánh độ phức tạp tính toán và phạm vi ứng dụng của sơ đồ đề xuất (sơ đồ Rabin mới) so với hai sơ đồ Shimada, Chen-Tsu.

35

2.3.6.1. Độ phức tạp tính toán

Độ phức tạp tính toán của thuật toán mã hóa trong cả ba sơ đồ trên là tương đương nhau, vì đều phải tính 𝐽 (𝑀

𝑁) và 𝑀2 𝑚𝑜𝑑 𝑁. Do vậy, luận án chỉ so sánh độ phức tạp tính toán của các thuật toán giải mã.

Trước hết có thể dễ dàng nhận thấy, những tính toán chủ yếu của thuật toán giải mã trong sơ đồ Shimada gồm ba công việc:

(1) Tính 𝐿 (𝐶

𝑝) và 𝐿 (𝐶

𝑞). Các đại lượng này trong trường hợp tổng quát được tính theo công thức:

𝐿 (𝐶

𝑝) = 𝐶(𝑝−1)/2 𝑚𝑜𝑑 𝑝́vá́́ ́ ́𝐿 (𝐶

𝑞) = 𝐶(𝑞−1)/2 𝑚𝑜𝑑 𝑞

Nếu xem phép tính cơ bản là phép nhân và phép chia mod, thì theo [6] số phép tính cần thực hiện xấp xỉ bằng:

2 × 𝑙𝑜𝑔2(𝑝 − 1

2 ) + 2 × 𝑙𝑜𝑔2( 𝑞 − 1

2 ) ≈ 2 × 𝑙𝑜𝑔2[(𝑝 + 1) × (𝑞 + 1)]

(2) Để tính các nghiệm 𝑥1, 𝑥2, 𝑥3, 𝑥4 của phương trình 𝑋2 ≡ 𝜃 (𝑚𝑜𝑑 𝑁) theo các công thức trong mục 2.3.1. Trong số đó, hai công thức phức tạp nhất là:

𝑥𝑝 = 𝜃(𝑝+1)/4 𝑚𝑜𝑑 𝑝 và 𝑥𝑞 = 𝜃(𝑞+1)/4 𝑚𝑜𝑑 𝑞 Cũng theo [6], thì số phép tính cần dùng xấp xỉ bằng: 2 × 𝑙𝑜𝑔2(𝑝 + 1 4 ) + 2 × 𝑙𝑜𝑔2( 𝑞 + 1 4 ) ≈ 2 × 𝑙𝑜𝑔2[(𝑝 + 1) × (𝑞 + 1)] (adsbygoogle = window.adsbygoogle || []).push({});

(3) Việc tính hai hàm 𝑡𝑒(𝑥) và 𝑢𝑒(𝑥) đối với ít nhất là một nghiệm và nhiều nhất là bốn nghiệm. Do đó, trung bình phải tính 𝑡𝑒(𝑥) và 𝑢𝑒(𝑥) đối với hai trong số bốn nghiệm 𝑥1, 𝑥2, 𝑥3và 𝑥4 nên số phép tính xấp xỉ bằng:

2 × 𝑙𝑜𝑔2(𝑝 − 1

2 ) + 2 × 𝑙𝑜𝑔2( 𝑞 − 1

2 ) ≈ 2 × 𝑙𝑜𝑔2[(𝑝 + 1) × (𝑞 + 1)]

Từ (1), (2) và (3) suy ra, độ phức tạp tính toán của thuật toán giải mã Shimada xấp xỉ bằng:

8 × 𝑙𝑜𝑔2((𝑝 + 1) × (𝑞 + 1))

So với Shimada, thuật toán giải mã Chen-Tsu giảm được các phép tính ở (3), nên độ phức tạp xấp xỉ bằng:

36

Theo mục 2.3.3, thuật toán giải mã của sơ đồ đề xuất chỉ cần thực hiện các phép tính trong (2), nên độ phức tạp xấp xỉ bằng:

2 × 𝑙𝑜𝑔2((𝑝 + 1) × (𝑞 + 1))

Các kết quả phân tích trên được trình bày trong bảng sau đây.

Bảng 2.1.Độ phức tạp của thuật toán giải mã trong các sơ đồ Rabin cải tiến.

Sơ đồ Số phép toán cơ bản

Sơ đồ Rabin mới ≈ 2 × 𝑙𝑜𝑔2((𝑝 + 1) × (𝑞 + 1))

Chen-Tsu ≈ 4 × 𝑙𝑜𝑔2((𝑝 + 1) × (𝑞 + 1))

Shimada ≈ 8 × 𝑙𝑜𝑔2((𝑝 + 1) × (𝑞 + 1))

Bảng phân tích trên cho thấy khối lượng tính thuật toán giải mã trong sơ đồ đề xuất chỉ bằng ½ so với sơ đồ Chen - Tsu và bằng ¼ so với sơ đồ Shimada. Những kết luận này phù hợp với kết quả thực nghiệm.

2.3.6.2. Phạm vi ứng dụng

Trong cả hai sơ đồ Shimada và Chen-Tsu đều cần dùng tính chất 𝑡𝑒(𝑀) = 𝑡𝑑(𝐶)

và 𝑢𝑒(𝑀) = 𝑢𝑑(𝐶). Để có được tính chất này, các sơ đồ [14,42] cần chọn hai số nguyên tố p có dạng 7 (mod 8) và q có dạng 3 (mod 8). Cả hai dạng này đều là các trường hợp riêng của dạng 3 (mod 4). Thực tế cho thấy, tập các số nguyên tố dạng 7 (mod 8) và 3 (mod 8) nhỏ hơn nhiều so với tập các số nguyên tố dạng 3 (mod 4). Do trong sơ đồ đề xuất vẫn sử dụng các số nguyên tố 𝑝, 𝑞 có dạng 3 (mod 4) như sơ đồ Rabin gốc [46], nên sơ đồ đề xuất có phạm vi ứng dụng rộng hơn so với [14,42].

2.3.6.3. Thực nghiệm

Để khảo sát tốc độ thực hiện của các thuật toán giải mã, trong thực nghiệm sử dụng hai số nguyên tố 𝑝, 𝑞 có độ lớn khoảng 50 chữ số như sau:

p = 430606897333168273518201112510828692695315291101473646891711 q = 196996179941292068795331733133608048430672235582931

Việc so sánh được thực hiện trên 8 tệp bản rõ với các kích thước khác nhau. Chương trình thực nghiệm được xây dựng bằng ngôn ngữ lập trình C# và thực hiện trên máy tính HP 6530s. Thời gian giải mã của các sơ đồ ứng với các tệp bản rõ được thống kê ở bảng sau:

37

Bảng 2.2. Thời gian thực hiện thuật toán giải mã trong các sơ đồ Rabin cải tiến.

STT Kích thước tệp Thời gian giải mã (giây)

Shimada Chen - Tsu Sơ đồ Rabin mới

1. 100 KB 12.2 8.2 7.12 2. 167 KB 37.68 12.68 8.67 3. 267 KB 40.4 17.4 9.53 4. 394 KB 57.3 26.3 10.57 5. 501 KB 73.56 30.56 13.34 6. 1.229 MB 145.34 78 33.46 7. 1.558 MB 189.67 107.8 42.34 8. 5.2 MB 674.25 289.74 130

Các số liệu trên Bảng 2.2 cho thấy, tốc độ thực hiện của thuật toán giải mã trong sơ đồ đề xuất luôn nhanh hơn hai sơ đồ Shimada, Chen - Tsu và phù hợp với kết luận trong phần phân tích lý thuyết. (adsbygoogle = window.adsbygoogle || []).push({});

2.4. Giấu tin trên ảnh nhị phân

Giấu tin trên ảnh nhị phân có vai trò quan trọng trong lĩnh vực giấu tin nói chung và thủy vân nói riêng. Ngoài việc ứng dụng trực tiếp trên ảnh nhị phân, các lược đồ này còn là cơ sở để phát triển cho những loại dữ liệu đa phương tiện khác.

Bên cạnh hướng tiếp cận theo phương pháp module [3,49], một hướng tiếp cận

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 33)