Đặc trưng của mã luân phiên

Một phần của tài liệu Xây dựng sơ đồ chữ ký số dựa trên hệ mã kết hợp ALT và RSA (Trang 56 - 64)

Khi xây dựng các lớp mã mới, một trong các bài toán cơ bản đặt ra là bài toán kiểm định tính chất mã của ngôn ngữ (chính quy) cho trước. Các định lý sau thể hiện đặc trưng cần và đủ đối với một cặp ngôn ngữ X, Y cho trước có là mã luân phiên

chẵn, mã luân phiên hay không và các định lý này cũng tạo cơ sở cho ta thiết lập các thuật toán kiểm tra tính chất mã luân phiên chẵn, mã luân phiên trong phần sau.

Định lý 3.1: Cho X, Y  A+. Khi đó, cặp (X, Y) là mã luân phiên chẵn khi và chỉ khi

hai điều kiện sau được thỏa mãn:

(i) (X, Y) có tích không nhập nhằng. (ii) Z = XY là mã.

Chứng minh.

() Ta chứng minh, nếu (X, Y)  LEALT thì (X,Y) có tích không nhập nhằng

và Z = XY  LC.

Theo định nghĩa tích không nhập nhằng và định nghĩa mã luân phiên chẵn, suy ra (X,Y) có tích không nhập nhằng.

Nếu Z = XY  LC, khi đó tồn tại từ w  Z+

có hai phân tích khác nhau trong

Z: w = z1z2 ... zn = z1z2 ... zm , trong đó zi = xiyi, zi = xiyi, với xi, xj X, yi , yj  Y, i = 1,...,n, j = 1,...,m. Rõ ràng, đây là hai phân tíchluân phiên cùng kiểu khác nhau của từ w theo (X, Y), mâu thuẫn.

Học viên: Trương Minh Hợi 47 Luận văn Thạc sĩ kỹ thuật () Ta chứng minh, nếu (X, Y) có tích không nhập nhằng và Z = XYLC thì (X, Y)  LEALT .

Giả sử Z = XY  LC và (X, Y) có tích không nhập nhằng. Khi đó, từ hệ thức

x1y1x2y2 ... xnyn = x1y1x2y2 ... xmym, đặt zi = xiyi , zj = xjyj, ta có z1 ... zn = z1...

zm với zi , zjZ, i = 1,...,n , j = 1,...,m. Do Z  LC nên m = n, zi = zi hay xiyi = xiyi,

i = 1,...,n.

Từ giả thiết (X,Y) có tích không nhập nhằng và từ hệ thức xiyi =

xiyi,i= 1,...,n, suy ra xi = xi, yi = yi. Vì vậy, (X, Y)  LEALT .

Định lý 3.2: Cho X, Y  A*. Khi đó, cặp {X, Y}  LALT khi và chỉ khi bốn điều kiện sau đồng thời được thỏa mãn:

(i) XY là mã và X–1X Y Y–1– {} = ;

(ii) Y–1(XY)+  (XY)+ = ;

(iii) (XY)+X–1 (XY)+

= ;

(iv) (XY)+ (YX)+

= .

Chứng minh.

() Giả sử {X, Y}  LALT. Ta chứng minh phản chứng: (i) Giả sử{X, Y}  LALT, khi đó có 2 khả năng xẩy ra:

Trường hợp 1: X-1X  YY-1

– {}  

Khi đó, tồn tại các từ u  , x1, x2X, y1, y2Y sao cho x1 = x2u, uy1 = y2, ta có x1y1 = x2y2 với x1  x2. Suy ra, cặp {X, Y}  LALT, mâu thuẫn. Do đó X-1X  YY-1

Học viên: Trương Minh Hợi 48 Luận văn Thạc sĩ kỹ thuật y1 y2 x2 u x1 Hình 3.2: Trường hợp X-1X YY-1 – {}

Trường hợp 2: Tích Z = XY không là mã, nghĩa là tồn tại từ w  A+

thừa nhận hai sự phân tích khác nhau trong Z: w = z1z2 ... zn = z1’z2’ ... zm’ (z1 z1’), sao cho

z1 = x1y1, z2 = x2y2, ..., zn = xnyn, với xi  X, yi  Y

z1’ = x1’y1’, z2’ = x2’y2’, ..., zm’ = xm’ym’ , với xj’ X, yj’ Y

rõ ràng, đây là hai sự phân tích luân phiên khác nhau của w theo X, Y. Suy ra {X, Y}  LALT, mâu thuẫn. Do đó Z = XY là mã.

(ii). Giả sử Y-1

(XY)+ (XY)+, khi đó sẽ tồn tại y  Y , uY-1

(XY)+ (XY)+

sao cho: yz1z2 ... zn = z1’z2’ ... zm’ , zi,zj’  XY , zi = xiyi, zj’ = xj’yj’, xi ,xj’X, yi ,

yj’Y, i=1,...,n , j=1,...,m. . . . . z2 zn . . . . z2 z1 z1 zm’ y u w

Hình 3.3: Trường hợp Y-1(XY)+ (XY)+ Đặt w = yu (XY)+

, ta có w = z1’z2’ ... zm’. Mà u (XY)+

suy ra u = x1y1 ...

xnyn. Do đó w = yx1y1 ... xnyn = x1’y1’ ... xm’ym’. Suy ra {X, Y} LALT, mâu thuẫn với giả thiết. Do đó Y-1(XY)+ (XY)+ = .

(iii). Giả sử (XY)+X-1  (XY)+ , khi đó sẽ tồn tại xX , u (XY)+X-1 (XY)+ sao cho u = z1z2 ... zn và ux = z1z2 ... znx = z1’z2’ ... zm’ , zi,zj’ XY mà zi = xiyi,

Học viên: Trương Minh Hợi 49 Luận văn Thạc sĩ kỹ thuật zj’ = xj’yj’, xi ,xj’X, yi , yj’Y,i=1,...,n , j=1,...,m. . . . . z2 zn . . . . z2 z1 z1 zm’ u x w

Hình 3.4: Trường hợp (XY)+X-1 (XY)+ Đặt w = ux  (XY)+

, ta có w = z2’z2’ ... zm’. Mà u  (XY)+

suy ra u = x1y1 ...

xnyn. Do đó w = x1y1 ... xnynx = x1’y1’ ... xm’ym’. Suy ra {X, Y} LALT, mâu thuẫn với giả thiết. Do đó (XY)+X-1  (XY)+ = .

(iv). Giả sử (XY)+  (YX)+  , khi đó sẽ tồn tại một từ w  A+ thừa hai sự phân tích khác nhau theo X, Y: w = x1y1 ... xnyn= y1’x1’... ym’xm’. Suy ra {X, Y}

LALT, mâu thuẫn với giả thiết. Do đó (XY)+ (YX)+ = . () Giả sử các điều kiện (i), (ii), (iii), (iv) đều được thỏa mãn.

Giả sử ngược lại {X,Y}LALT, khi đó sẽ tồn tại từ w  A+ thừa nhận hai sự phân tích luân phiên khác nhau theo X, Y: w = u1u2 ... ui = u1’u2’ ... uj’, i, j 1, u1u1’.

Xét tính chẵn lẻ của i, j ta có các trường hợp sau:

Trường hợp 1: u1  X, u1’  X

- Với i và j đều chẵn. Nếu tồn tại từ wA+ thừa nhận hai sự phân tích luân phiên khác nhau theo (X, Y):w = x1y1 ...xnyn = x1’y1’ ...xm’ym’ , thì tích XY không là mã, mâu thuẫn với (i).

- Với i và j đều lẻ. Nếu tồn tại từ wA+

thừa nhận hai sự phân tích luân phiên khác nhau theo (X, Y): w = x1y1 ...xn = x1’y1’ ...xm’. Ta thêm y vào cuối hai phân tích, ta có:

Học viên: Trương Minh Hợi 50 Luận văn Thạc sĩ kỹ thuật suy ra w’ thừa nhận hai sự phân tích luân phiên khác nhau trong XY. Do đó XY không là mã, mâu thuẫn với (i).

- Với i chẵn và j lẻ. Nếu tồn tại từ w  A+

thừa nhận hai sự phân tích luân phiên khác nhau theo (X, Y): w = x1y1 ...ynxn = x1’y1’ ...xm’. Đặt u = x1’y1’ ...ym-1’xm-1’  (XY)+, thì w = uxm’ (XY)+. Khi đó u (XY)+X-1, mâu thuẫn với (iii).

- Với i lẻ và j chẵn. Nếu tồn tại từ w  A+ thừa nhận hai sự phân tích luân phiên khác nhau theo (X, Y): w = x1y1 ...xn = x1’y1’ ...xm’ym’. Đặt u = x1y1 ...yn-1xn-1 (XY)+, thì w = uxn  (XY)+. Khi đó u (XY)+

X-1, mâu thuẫn với (iii).

Trường hợp 2: u1X,u1’ Y

- Với i và j đều chẵn. Nếu tồn tại từ w  A+ thừa nhận hai sự phân tích luân phiên khác nhau theo X, Y: w = x1y1 ...xnyn = y1’x1’ ...ym’xm’ (XY)+ (YX)+. Suy ra (XY)+  (YX)+  , mâu thuẫn với (vi).

- Với i và j đều lẻ. Nếu tồn tại từ w  A+

thừa nhận hai sự phân tích luân phiên khác nhau theo X, Y: w = x1y1 ...xn = y1’x1’ ...ym’. Xét w’ = w.w = x1y1

...xny1’x1’ ...ym’ = y1’x1’ ...ym’x1y1 ...xn (XY)+ (YX)+. Suy ra (XY)+ (YX)+, mâu thuẫn với (vi).

- Với i chẵn và j lẻ. Nếu tồn tại từ wA+

thừa nhận hai sự phân tích luân phiên khác nhau theo X, Y: w = x1y1 ...ynxn = y1’x1’ ...ym’. Đặt u = x1’y2’ ...xm-1’ym’ (XY)+ thì w = y1’u  (XY)+. Khi đó u Y-1

(XY)+, mâu thuẫn với (ii). - Với i lẻ và j chẵn. Nếu tồn tại từ wA+

thừa nhận hai sự phân tích luân phiên khác nhau theo X, Y: w = x1y1 ...xn = y1’x1’ ...ym’xm’. Ta thêm y vào cuối hai phân tích, ta có:

w’ = x1y1 ...xny=y1’x1’ ...ym’xm’y.

Học viên: Trương Minh Hợi 51 Luận văn Thạc sĩ kỹ thuật thuẫn với (ii).

Trường hợp 3: u1 Y,u1’  Y

- Với i và j đều chẵn. Nếu tồn tại từ w  A+

thừa nhận hai sự phân tích luân phiên khác nhau theo (Y, X):w = y1x1 ...ynxn = y1’x1’ ...ym’xm’. Ta thêm x vào đầu và y vào cuối hai phân tích, ta có:

w’ = x y1x1 ... yn xn y = x y1’x1’ ... ym’xmy

suy ra w’ thừa nhận hai sự phân tích luân phiên trong XY. Do đó XY không là mã, mâu thuẫn với (i).

- Với i và j đều lẻ. Nếu tồn tại từ w  A+ thừa nhận hai sự phân tích luân phiên khác nhau theo (Y, X):w = y1x1 ...yn= y1’x1’ ...ym’. Ta thêm x vào đầu hai phân tích, ta có:

w’ = x y1x1 ... xn-1yn = x y1’x1’ ... xm-1’ym

suy ra w’ thừa nhận hai sự phân tích luân phiên trong XY. Do đó XY không là mã, mâu thuẫn với (i).

- Với i chẵn và j lẻ. Nếu tồn tại từ w  A+ thừa nhận hai sự phân tích luân phiên khác nhau theo (Y, X):w = y1x1 ...ynxn = y1’x1’ ...ym’. Ta thêm x vào đầu hai

phân tích, ta có:

w’ = x y1x1 ...ynxn = x y1’x1’ ...ym

Đặt u = x y1 ...xn-1yn  (XY)+, thì w’ = u xn  (XY)+. Do đó u(XY)+X-1, mâu thuẫn với (iii)

- Với i lẻ và j chẵn. Nếu tồn tại từ w  A+

thừa nhận hai sự phân tích luân phiên khác nhau theo (Y, X): w = y1x1 ...yn = y1’x1’ ...ym’xm’. Ta thêm x vào đầu hai phân tích, ta có:

w’ = x y1x1 ...yn= x y1’x1’ ...ym’xm

Đặt u = x y1’ ...xm-1’ym’, thì w’ = u xm’ (XY)+. Do đó u  (XY)+

Học viên: Trương Minh Hợi 52 Luận văn Thạc sĩ kỹ thuật với (iii).

Trường hợp 4: u1  Y, u1’ X

Chứng minh tương tự Trường hợp 2.

(1). Thuật toán kiểm định mã luân phiên chẵn và độ phức tạp

B1,1. Kiểm tra Z = XY là mã bởi thuật toán ESP (xem [23]).

Từ giả thiết, : A*M thỏa X, : A*N thỏa Y. Ta có thể xây dựng hai

otomat đơn định hữu hạn A1có số trạng thái là |M| và A2 có số trạng thái là |N| đoán nhận X, Y tương ứng.

Tiếp đến, ghép nối hai otomat A1 và A2 với nhau, ta nhận được một otomat đa định hữu hạn A có số trạng thái là (|M| + |N|) đoán nhận ngôn ngữ tích XY.

Từ otomat đa định hữu hạn A, ta xây dựng vị nhóm MA có cỡ 2(|M| + |N|) và đồng cấu :A*MA thỏa XY. Theo đó, ta có thể xây dựng một toàn cấu 1: A*P1, với P1MA×U1 có cỡ 2.2(|M| + |N|) sao cho 1 thỏa đồng thời cả XY và {}.

Do đó, để kiểm tra Z = XY có là mã hay không theo thuật toán ESP thì có độ phức tạp cỡ (|P1|)3 (2.2(|M| + |N|)

)3 8(|M| + |N|)

.

Vì vậy, bước này có độ phức tạp cỡ (8(|M| + |N|)).

B1,2. Kiểm tra X–1X  Y Y–1 – {} =.

Ta có thể xây dựng một toàn cấu 2: A*P2, với P2M×N×U1 có cỡ 2.|M|.|N|, sao cho 2 thỏa đồng thời cả X, Y và {}. Suy ra, ta có X =2–1

(B), Y =

2–1

(C), {} = 2–1

(1P2), với B, CP2.

Đặt L = X–1X  Y Y–1– {}, suy ra L thỏa bởi 2, nghĩa là L = 2–1(K), với

K = B–1B  CC–1

Học viên: Trương Minh Hợi 53 Luận văn Thạc sĩ kỹ thuật (|P2|.|B| + |P2|.|C| + |P2|2)  3.(2.|M|.|N|)2. Vì vậy, bước này có độ phức tạp cỡ

(|M|2.|N|2).

Vậy, tổng hợp lại thì thuật toán kiểm định mã luân phiên chẵn có độ phức tạp cỡ (8(|M| + |N|)).

(2). Thuật toán kiểm định mã luân phiên và độ phức tạp.

B2,1. Kiểm tra cặp {X,Y} có là mã luân phiên chẵn hay không. Bước này có độ phức tạp cỡ (8(|M| + |N|)).

B2,2. Kiểm tra (XY)+X–1  (XY)+ =  .

Tương tự như trong thuật toán kiểm định mã luân phiên yếu trái. Bước này có độ phức tạp cỡ (8(|M| + |N|)).

B2,3. Kiểm tra Y–1(XY)+  (XY)+ =  .

Tương tự như trong thuật toán kiểm định mã luân phiên yếu phải. Bước này có độ phức tạp cỡ (8(|M| + |N|)).

B2,4. Kiểm tra (XY)+  (YX)+ = .

Tương tự bước (B1,1), ta có thể xây dựng hai đồng cấu4:A*P4 và 5 :

A*P5, vớiP4 và P5 hữu hạn cỡ 2(|M| + |N|), sao cho 4 thỏa đồng thời cả XY và (XY)+,

5 thỏa đồng thời cả YX và (YX)+

Theo Mệnh đề 3.1, ta có thể xây dựng một toàn cấu 6 = 4 5: A* P6, với P6  P4×P5có cỡ (2(|M| + |N|)

.2(|M| + |N|))  4(|M| + |N|)

thỏa đồng thời cả (XY)+ và (YX)+. Do đó, ta có XY = 6–1

(DXY), YX = 6–1

(DYX), với DXY, DYX P6 . Suy ra L = (XY)+(YX)+ thỏa bởi 6, nghĩa là L = 6–1(K), với K = (DXY)+(DYX)+ P6.Suy ra độ phức tạp để tính K có cỡ |P6|2  16(|M| + |N|). Vì vậy, bước này có độ phức tạp cỡ

Học viên: Trương Minh Hợi 54 Luận văn Thạc sĩ kỹ thuật

(16(|M| + |N|)).

Vậy, tổng hợp lại thì thuật toán kiểm định mã luân phiên có độ phức tạp cỡ

(16(|M| + |N|)).

Một phần của tài liệu Xây dựng sơ đồ chữ ký số dựa trên hệ mã kết hợp ALT và RSA (Trang 56 - 64)