1. Trang chủ
  2. » Công Nghệ Thông Tin

Đề cương ôn tập An toàn và bảo mật hệ thống thông tin

17 1,3K 9

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 525,17 KB

Nội dung

Bao gồm các dạng bài tập an toàn và bảo mật thông tin như tính lũy thừa nhanh, tính phần tử nghịch đảo trên hệ module, phương trình đồng dư bậc nhất, hệ mã Knapsack, Affine, Hill, RSA, El Gammal, đổi chỗ, Caesar và các hệ chữ ký điện tử RSA, El Gammal.

Trang 1

ÔN TẬP AN TOÀN VÀ BẢO MẬT HỆ THỐNG THÔNG TIN

I – THUẬT TOÁN LŨY THỪA NHANH

Ví dụ: Tính 876611mod899

Giải

Ta có 876611876 876 876 876 876512 64 32 2 1

876mod899876

2

876 mod899 876.876 mod899 876 mod899 876 mod899 mod899

= 876 mod899 mod899 876 mod899 529

2

2

2

2

2

876 mod899 876 mod899 mod899 529 mod899 252

876 mod899 876 mod899 mod899 252 mod899 574

876 mod899 876 mod899 mod899 574 mod899 442

876 mod899 876 mod899 mod899 442 mod899 281

876 mod899 876 mod899 m

2

2

2

2

od899 281 mod899 748

876 mod899 876 mod899 mod899 748 mod899 326

876 mod899 876 mod899 mod899 326 mod899 194

876 mod899 876 mod899 mod899 194 mod899 777

876 mod899 876 876 876 876 876 mod899

876 mod899 876 mod899 876 mod899 876 mod899 876 mod899 mod899 777.748.281.529.876 mod899

777.748 mod899 281.529.876 mod899 mod899

442.869 mod8

II – HÀM PHI Ơ-LE

Với mỗi số nguyên N, giá trị của hàm Phi Ơ-le của N là tổng số tất cả các số nguyên

thuộc Z và nguyên tố cùng nhau với N N

Trang 2

Nếu NPQ với P và Q là hai số nguyên tố cùng nhau thì   NP1Q 1

Trong trường hợp tổng quát nếu dạng phân tích ra thừa số nguyên tố của N là

1 2

1 2 k

k

Np p  p

trong đó p là các số nguyên tố, còn i  là các số nguyên dương thì giá trị của hàm Phi Ơ-i

le được tính như sau:

1 1 1k 2 1 2k 1 k

Ví dụ: Tính  26

Giải

Ta có 26 13.2    26  13 1 2 1    12

III – TÌM PHẦN TỬ NGHỊCH ĐẢO

N

aZ và tồn tại bZ N sao cho ab ab modN  Khi đó b được gọi là phần 1

tử nghịch đảo của a trên Z và ký hiệu là N a1 b

Giải thuật tìm phần tử nghịch đảo trên Z N

ReverseModulo(b, a)

{

int y0 = 0, y1 = 1, a0 = a;

while (b > 0)

{

int r = a % b;

if (r == 0) break;

int q = a / b;

y = y0 – y1 * q;

a = b;

b = r;

y0 = y1;

y1 = y;

}

while (y < 0) y += a0;

return y;

}

Trang 3

Ví dụ: Tìm phần tử nghịch đảo của 30 theo Module 101

Vậy phần tử nghịch đảo của 30 theo Module 101 là  37 10164

IV – PHƯƠNG TRÌNH ĐỒNG DƯ BẬC NHẤT MỘT ẨN

Dạng: axbmodN trong đó ,a bZ N là các hệ số, còn x là ẩn số (1) Giả sử g GCDa N,  và b chia hết cho g thì phương trình (1) sẽ có g nghiệm có

dạng:

trong đó t = 0, 1, 2, …, g – 1 và x là nghiệm của phương trình: 0 a x 1modN

Ví dụ: Giải các phương trình sau

a) 5 x 2mod 7

b) 5x 4mod11

Giải

Ta có g GCD 5,7  nên phương trình (1) có một nghiệm duy nhất 1

Nghiệm của phương trình có dạng x2x07 mod 7t với x là nghiệm của 0

5x 1mod 7 x 5 mod 7  3

Vậy phương trình có nghiệm x 2.3 7.0 mod 7   6

Trang 4

Nghiệm của phương trình có dạng x4x011 mod11t với x là nghiệm của 0

5x 1mod11x 5 mod11  9

Vậy phương trình có nghiệm x 4.9 11.0 mod11   3

V – HỆ MÃ CAESAR

Hệ mã Caesar là một hệ mã thay thế đơn âm làm việc trên bảng chữ cái tiếng Anh

Để mã hóa, người ta đánh số các chữ cái từ 0 đến N – 1 Không gian khóa KZ N Với

mỗi khóa k hàm mã hóa và giải mã một ký tự có số thứ tự là I sẽ được thực hiện như K

sau:

Mã hóa: E K  i  i kmodN

Giaỉ mã: D K  i  i kmodN

13 14 15 16 17 18 19 20 21 22 23 24 25

VI – HỆ MÃ AFFINE

 , : , N,GCD , 1

Mã hóa: E K  xaxbmodN

Giải mã: Tính a1 và tiến hành giải mã   1 

mod

K

D yay bN

Số khóa có thể sử dụng cho hệ mã Affine: K   N N

Ví dụ 1: Mã hóa xâu “ADVENGER” với không gian khóa của bảng mã là (27, 7)

Giải

Ta có: A: E K  0  27.0 7 mod 26   nên A  H 7

D: E K  3  27.3 7 mod 26 10   nên D  K V: E K  21  27.21 7 mod 26   nên V  C 2 E: E K  4  27.4 7 mod 26 11   nên E  L N: E K  13  27.13 7 mod 26  20 nên N  U G: E K  6  27.6 7 mod 26 13   nên G  N R: E K  17  27.177 mod 26 24 nên R  Y Vậy mã hóa xâu “ADVENGER” ta được “HKCLUNLY”

Trang 5

Ví dụ 2: Cho hệ mã Affine được cài đặt trên Z99 Khi đó khóa là các cặp  a b , trong đó a b, Z99 với GCDa,99 Hàm mã hóa 1 E K  xaxbmod 99 và hàm giải mã   1 

mod99

K

D xax b

a) Hãy xác định số khóa có thể được sử dụng cho hệ mã này

b) Nếu như khóa giải mã là 1  

16,7 ,

K  hãy thực hiện mã hóa xâu m =

“DANGER”

Giải

a) Số khóa có thể được sử dụng cho hệ mã này là:

   99 99 9 1 11 1 99  7920

b) Khóa giải mã là 1   1

K  a  b  7

  1

mod 99 16 mod 99 31

Ta có D: E K  3  31.3 7 mod 26  22 nên D  W

A: E K  0  31.0 7 mod 26   nên A  H 7 N: E K  13  31.13 7 mod 26  20 nên N  U G: E K  6  31.6 7 mod 26 11   nên G  L E: E K  4  31.4 7 mod 26 1   nên E  B R: E K  17  31.177 mod 26 14  nên R  O

Mã hóa xâu “DANGER” ta được xâu “WHULBO”

Ví dụ 3: Giả sử hệ mã Affine được cài đặt trên Z126

a) Hãy xác định số khóa có thể có của hệ mã

b) Giả sử khóa mã hóa là (23, 7), hãy xác định khóa giải mã

Giải

a) Số khóa có thể có của hệ mã:

  2 1 3 1 3 7 1 126     4536

b) Khóa mã hóa là (23, 7)  a 23, b 7

mod 23 mod126 107

Vậy khóa giải mã là (107, 7)

Trang 6

VII – HỆ MÃ HILL

Tồn tại ma trận K kích thước M × M gồm các phần tử là các số nguyên thuộc Z N

với N là phần tử thuộc bảng chữ cái Điều kiện để ma trận K có thể sử dụng làm khóa của

hệ mã là tồn tại ma trận nghịch đảo của ma trận K trên Z N

Mã hóa: C P K

21 22

K

  và det  Kk k11 22k k21 12modN là một phần tử nghịch đảo

trên Z thì khóa giải mã sẽ là N 1 1  22 12

21 11

Ví dụ 1: Cho hệ mã Hill có M = 2

a) Ma trận 5 3

13 17

  có thể được sử dụng làm khóa cho hệ mã trên không? Hãy

giải thích

b) Cho 12 5

3 7

 , hãy thực hiện mã hóa và giải mã với xâu S = “HARD”

Giải

a) Điều kiện để ma trận A có thể sử dụng làm khóa của hệ mã là tồn tại ma trận

nghịch đảo của ma trận A trên Z , tức là tồn tại 26 1 

det A , det A và 26 có ước chung  

lớn nhất là 1

Ta có det  A  5.17 13.3 mod 26  20, mà GCD 20, 26  nên ma trận A 2 không thể được sử dụng làm khóa cho hệ mã Affne

b) Để mã hóa, ta chia xâu bản rõ thành hai ma trận hàng hai chiều “HA” 7 0 và 

“RD” 17 3 và tiến hành mã hóa lần lượt

Với P 1 7 0 ta có:

1 1

12 5

3 7

 “GJ”

Trang 7

Với P 2 17 3 ta có:

2

12 5

3 7

 “FC”

Vậy bãn mã thu được là “GJFC”

Để giải mã, ta tìm 1

K Ta có det  K  12.7 3.5 mod 26  17

det K det K mod 26 17 mod 26  23

 

Quá trình giải mã cũng tương tự với quá trình mã hóa

Giải mã C 1 G J ta được:

1

161 115

6 9

69 276 6.161 69.9 mod 26 115.6 276.9 mod 26 7 0 H A

Giải mã C 2 F C ta được:

1

161 115

69 276

Vậy giải mã bản mã thu được, ta có “HARD”

Ví dụ 2: Cho hệ mã Hill có M = 2

a) Ma trận 5 3

11

A

a

  được sử dụng làm khóa cho hệ mã trên Hãy tìm tất cả các

khóa có thể sử dụng của hệ mã trên

b) Giả sử người ta sử dụng hệ mã trên để mã hóa bản rõ P = “EASY” và thu được

bản mã là “UMQA” Hãy thực hiện giải mã với bản mã là C = “MCDZUZ” và đưa ra bản

Trang 8

Giải

a) Điều kiện để ma trận A có thể sử dụng làm khóa của hệ mã là tồn tại ma trận

nghịch đảo của ma trận A trên Z , tức là ta có 26

    det A  5a33 mod 26 Tức là GCD 5 a 33, 26 1

5 33 1,3,5,7,9,11,15,17,19, 21, 23, 25 8,10

a a

 

b) Mã hóa bản rõ “EASY” thi được “UMQA” với M = 2 thì ta có

P   thu được C 1 U M  20 12, và P 2 S Y  18 24 thu được C 2 Q A  16 0

1 1

5 3

11

a

  (Luôn thỏa mãn với mọi a)

5 3

11

54 24 mod 26 0 54 mod 26 24 mod 26 mod 26 0

a

11 1

  VIII – HỆ MÃ ĐỔI CHỖ

Một hệ mã hóa đổi chỗ là hệ mã hóa trong đó các ký tự của bản rõ vẫn được giữ nguyên, nhưng thứ tự của chúng được đổi chỗ cho nhau

Các kỹ thuật:

- Đảo ngược toàn bộ bản rõ: nghĩa là bản rõ được viết theo thứ tự ngược lại để

tạo ra bản mã

- Mã hóa theo mẫu hình học: bản rõ được sắp xếp lại theo một mẫu hình học nào

đó, thường là một mảng hoặc một ma trận hai chiều

- Hoán vị các ký tự của bản rõ theo chu kỳ cố định d: nếu hàm f là một hoán vị

của một khối gồm d ký tự thì khóa mã hóa được biểu diễn bởi K d f , 

Trang 9

IX – HỆ MÃ KNAPSACK

1 Bài toán xếp ba lô tổng quát

Cho M, N và A 1, A …,2, A là các số nguyên dương, tìm các số N x không âm sao i

cho

1

N

i i i



Vector AA A1, 2, ,A N được gọi là vector xếp ba lô, còn vector

 1, 2, , N

Xx x x là vector nghiệm

Một trường hợp riêng đáng quan tâm của bài toán xếp ba lô tổng quát là trường hợp

x  i  0,1 Khi đó ta có bài toán xếp ba lô 0/1

2 Vector xếp ba lô siêu tăng

Trong trường hợp vector AA A1, 2, ,A N được sắp lại thành AA A1 , 2, ,A N  sao cho với i ta có j i

j i

  

 thì vector AA A1, 2, ,A N được gọi là vector xếp ba lô siêu tăng

Khi AA A1, 2, ,A N là một vector xếp ba lô siêu tăng, ta có ngay tính chất:

i

M   Do đó việc giải bài toán xếp ba lô 0/1 trở nên dễ dàng hơn rất nhiều A i

3 Cách xây dựng

- Chọn 1 vector siêu tăng Aa a1 , 2, ,a N , chọn 1 số M 2a N, chọn ngẫu nhiên 1 số uM và GCDu M ,  1

- Xây dựng vector Aa a1, 2, ,a N trong đó a i  a u i modM

- Khóa K P A M, ,  1

S

Ku u

- Không gian các bản rõ là không gian mọi dãy N bit: Px x1, 2, ,x N

 Mã hóa:

1

mod

N

i i i

 Giải mã: Tính 1

mod

C CuM sau đó giải bài toán xếp ba lô 0/1 với A,

C từ đó tìm được Px x1, 2, ,x N

Trang 10

Ví dụ: Cho hệ mã Knapsack có A 11,15,30,60 , M 150 và u 77

a) Hãy tìm khóa công khai K và khóa bí mật P K của hệ mã trên S

b) Để mã hóa các thông điệp viết bằng tiếng Anh, người ta dùng một hàm chuyển

đổi từ các ký tự thành các xâu nhị phân như sau:

Ký tự Xâu bít Ký tự Xâu bít Ký tự Xâu bít Ký tự Xâu bít

Khi đó ví dụ xâu ABCD sẽ được chuyển thành 00000 00001 00010 00011 và cắt thành các xâu có độ dài 4 để thực hiện mã hóa Kết quả thu được bản mã là một dãy các số thuộc Z M. Hãy thực hiện mã hóa xâu P = “ANTI”

Giải

a) Ta có u1u1modM 77 mod150 1131 

Nên K  P  11,150 , 15,150 , 30,150 , 60,150 ,        K  S 77,113 

b) Xâu “ANTI” chuyển thành xâu nhị phân, ta được:

00000 01101 10011 01000 Cắt thành xâu có độ dài là 4, ta được các xâu “0000”, “0011”, “0110”, “0110”,

và “1000”

Mã hóa từng xâu trên

1 2 3 4 5

11.0 15.0 30.0 60.0 mod150 0 11.0 15.0 30.1 60.1 mod150 90 11.0 15.1 30.1 60.0 mod150 45 11.0 15.1 30.1 60.0 mod150 45 11.1 15.0 30.0 60.0 mod150 11

C C C C C

Bản mã thu được là C  0,90, 45, 45,11

Trang 11

X – HỆ MÃ RSA

Để cài đặt RSA ban đầu mỗi người dùng sinh khóa công khai và khóa bí mật của mình bằng cách:

 Chọn hai số nguyên tố lớn ngẫu nhiên (cỡ gần 100 chữ số) khác nhau p và q

 Tính Npq

 Chọn một số e nhỏ hơn N và GCD ,e  N e được gọi là số mũ lập mã 1,

 Tìm phần tử nghịch đảo của e trên modulo  N , d là số mũ giải mã Tức là

 

1

mod

de  N

 Khóa công khai là K P e N, 

 Khóa bí mật là 1  

, ,

KK  d p q

Sử dụng RSA

 Để mã hóa một thông điệp M: CM emodN 0MN

 Giải mã: MC d modN

Ví dụ 1: Cho hệ mã RSA có p 31, q 41, e 271

a) Hãy tìm khóa công khai K và khóa bí mật P K của hệ mã trên S

b) Để mã hóa các thông điệp được viết bằng tiếng Anh, người ta dùng một hàm

chuyển đổi các ký tự thành các số thập phân có hai chữ số như sau:

00 01 02 03 04 05 06 07 08 09 10 11 12

13 14 15 16 17 18 19 20 21 22 23 24 25

Khi đó ví dụ xâu ABC sẽ được chuyển thành 00 01 02 và sau đó cắt thành các

số có 3 chữ số 000 (bằng 0) và 102 để mã hóa Bản mã thu được là một tập các số thuộc

N

Z Hãy thực hiện mã hóa xâu P = “SERIUS”

c) Giả sử bản mã thu được là C  201,793, 442,18 , hãy thực hiện giải mã để tìm

ra thông điệp bản rõ ban đầu

Trang 12

Giải

a) Ta có Npq31.41 1271,   N  31 1 41 1    1200.

 

1

Vậy khóa công khai K  P 271,1271 , khóa bí mật K  S 31,31, 41 

b) Chuyển xâu “SERIUS” thành các số thập phân có hai chữ số, ta được:

18 04 17 08 20 18 Cắt thành các số có 3 chữ số, ta được các số: 180, 417, 82, 18

Mã hóa từng số trên:

271

271

271

271

mod 180 mod1271 180 mod 417 mod1271 634 mod 82 mod1271 82 mod 18 mod1271 18

e

e

e

e

Bản mã thu được là C 180,634,82,18 

c) Giải mã từng số bản rõ trên:

31

31

31

31

mod 201 mod1271 201 mod 793 mod1271 700 mod 442 mod1271 132 mod 18 mod1271 18

d

d

d

d

Từ đó ta chuyển thành xâu: 201700132018

Tách thành các xâu có 2 chữ số, ta được 20 (U), 17 (R), 00 (A), 13 (N), 20 (U),

18 (S) Vậy, thông điệp ban đầu là URANUS

X – HỆ MÃ EL GAMMAL

Ban đầu, người ta sẽ chọn một số nguyên tố lớn p và hai số nguyên tùy ý nhỏ hơn p

là a (a là một phần tử nguyên thủy của *

P

Z ) và x (x là của người nhận, bí mật), sau đó tính:

mod

x

ya p

Để mã hóa một thông điệp M (là một số nguyên trên Z P) thành bản mã C, người gửi chọn một số ngẫu nhiên k nhỏ hơn p và tính khóa mã hóa Ky kmodpa xk mod ,p

sau đó tính cặp bản mã C1 a k modpC2 KMmodp và gửi bản mã C C C1, 2 đi

Trang 13

Để giải mã thông điệp, đầu tiên ta cần tính lại mã hóa thông điệp K:

1xmod kxmod

Sau đó tính M bằng cách giải phương trình 1

MC Kp

Việc giải mã bao gồm việc tính lại khóa tạm thời K Khóa công khai của hệ mã là

p a y, , , khóa bí mật là x

Ví dụ 1: Cho hệ mã El Gammal có p 31, a 11, và x 6 Để mã hóa M 18

người ta chọn k 7 Hãy thực hiện tính toán và đưa ra bản mã kết quả

Giải

Ta có ya xmodp11 mod31 4.6 

Khóa mã hóa Ky k modp4 mod31 16.7 

1 kmod 11 mod31 13,

Ca p  C2 KMmodp16.18mod31 9. Vậy bản mã kết quả là C 13,9 

Ví dụ 2: Cho hệ mã mật El Gammal có p 1187, a 79 là một phần tử nguyên thủy của Z*P, x 113

a) Hãy tìm khóa công khai K và khóa bí mật P K của hệ mã trên S

b) Để mã hóa các thông điệp được viết bằng tiếng Anh, người ta dùng một hàm

chuyển đổi các ký tự thành các số thập phân có hai chữ số như sau:

00 01 02 03 04 05 06 07 08 09 10 11 12

13 14 15 16 17 18 19 20 21 22 23 24 25

Khi đó ví dụ xâu ABC sẽ được chuyển thành 00 01 02 và sau đó cắt thành các

số có 3 chữ số là 000 (bằng 0) và 102 để mã hóa Bản mã thu được là một tập các cặp số

C C1, 2 thuộc Z Hãy thực hiện mã hóa xâu m = “TAURUS” với các giá trị 13 P  k 19

c) Giả sử thu được bản mã là một tập các cặp C C1, 2

358,305 , 1079, 283 , 608,925 , 786,391        Hãy giải mã và đưa ra thông điệp ban đầu

Giải

Trang 14

b) Xâu “TAURUS” chuyển đổi thành các số thập phân có hai chữ số, ta được:

19 00 20 17 20 18 Cắt thành các số có 3 chữ số, ta được các số 190, 20, 172, 18

 Với k 14, ta có: Ky kmodp76 mod118714 1025

14

1 kmod 79 mod1187 981

2 2 2 2

Ta có tập các cặp số C  981,82 , 981,321 , 981,624 , 981,645      

 Với k 15, 16, 17, 18 làm tương tự (lười làm lắm, ahihi)

c) Với cặp 358,305 , ta có  KC1xmodp358113mod1187279,

mod1187 279 mod1187 234

1

2 mod 305.234mod1187 150

Với cặp 1079, 283 , ta có  KC1xmodp1079113mod1187212

mod1187 212 mod1187 28

1

2 mod1187 283.28mod1187 802

M C K

Với cặp 608,925 , ta có  KC1xmodp608113mod1187925

mod1187 925 mod1187 965

1

2 mod1187 925.965mod1187 1

M C K

Với cặp 786,391 , ta có  KC1xmodp786113mod1187858

mod1187 858 mod1187 184

1

2 mod1187 391.184mod1187 724

M C K

Ta được xâu “150 802 001 724”

Tách thành các xâu có hai chữ số, ta được 15 (P), 8 (I), 2 (C), 0 (A), 17 (R), 24 (Y)

Vậy, thông điệp ban đầu là PICARY

Ngày đăng: 02/06/2018, 12:53

TỪ KHÓA LIÊN QUAN

w