1. Trang chủ
  2. » Luận Văn - Báo Cáo

TÌM HIỂU VỀ PHÉP ĐỒNG DƯ

12 874 0

Đ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 12
Dung lượng 100,95 KB

Nội dung

TÌM HIỂU VỀ PHÉP ĐỒNG DƯ Khái niệm “đồng dư” Cho các số nguyên a, b, m (m>0). Ta nói rằng a và b đồng dư với nhau theo modulo m nếu chia a và b cho m ta nhận được cùng một số dư. Ký hiệu: a b (mod m) Ví dụ: 20 (mod 3) vì 20 và 2 chia cho 3 được cùng một số dư là 2.

Trang 1

TÌM HIỂU VỀ PHÉP ĐỒNG DƯ

Học viên: Vương Thị Mỵ

MSHV: 13025173

Môn: Mật mã ATDL

qwertyuiopasdfghjklzxcvbnmqwertyuio pasdfghjklzxcvbnmqwertyuiopasdfghjkl zxcvbnmqwertyuiopasdfghjklzxcvbnmq wertyuiopasdfghjklzxcvbnmqwertyuiop asdfghjklzxcvbnmqwertyuiopasdfghjklz xcvbnmqwertyuiopasdfghjklzxcvbnmq wertyuiopasdfghjklzxcvbnmqwertyuiop asdfghjklzxcvbnmqwertyuiopasdfghjklz xcvbnmqwertyuiopasdfghjklzxcvbnmq wertyuiopasdfghjklzxcvbnmqwertyuiop asdfghjklzxcvbnmqwertyuiopasdfghjklz xcvbnmqwertyuiopasdfghjklzxcvbnmq wertyuiopasdfghjklzxcvbnmqwertyuiop asdfghjklzxcvbnmrtyuiopasdfghjklzxcvb nmqwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasdfg

Trang 2

Mục lục

PHÉP ĐỒNG DƯ

1.Giới thiệu về “Đồng dư”

1.1: Khái niệm “đồng dư”

Cho các số nguyên a, b, m (m>0) Ta nói rằng a và b đồng dư với nhau theo modulo m nếu chia a và b cho m ta nhận được cùng một số dư

Ký hiệu: a b (mod m)

Ví dụ: 20 (mod 3) vì 20 và 2 chia cho 3 được cùng một số dư là 2

Trang 3

1.2: Nhận xét

Các mệnh đề sau đây là tương đương với nhau:

1. a b (mod m)

2. m \ (a – b)

3. Tồn tại số nguyên t sao cho a = b + m*t

Chứng minh:

1=>2: Nếu có mệnh đề 1, theo định nghĩa của “đồng dư” thì a và b chia cho m phải có cùng số dư, do đó:

a = p*m + r

b = q *m + r

 a – b = (p – q) * m => m \ (a – b)

2=>3: m \ (a – b) có nghĩa là tồn tại số nguyên t sao cho

a – b = m *t => a = b + m*t

3=>1: xét mệnh đề 3 a = b +m * t

Lấy a chia cho m giả sử được số dư là r và thương là q: a = m*q + r (0 r < m)

 b + m*t = a = m*q +r

 b= m * (q – t) + r => a và b chia cho m có cùng số dư là r hay a b (mod m)

1.3:Các tính chất của quan hệ “đồng dư”

1.3.1 Quan hệ đồng dư là quan hệ tương đương trong tập Z

Với mọi số nguyên m ta có:

a a (mod m) với mọi a Z; (Tính chất phản xạ)

Trang 4

a b (mod m) thì b a (mod m) (Tính chất đối xứng)

a b (mod m) và b c (mod m) thì a c (mod m) (Tính chất bắc cầu)

1.3.2 Tổng – Hiệu các đồng dư

(a+b) (mod n) [(a mod n) + (b mod n)] (mod n)

(a-b) (mod n) [(a mod n) - (b mod n)] (mod n)

Tổng quát:

Có thể cộng hoặc trừ từng vế nhiều đồng dư thức theo cùng modulo m, ta được một đồng dư thức theo cùng modulo m, tức là:

Nếu a i ≡ b i (mod m) , i = 1 k, thì 1 1

(mod )

k k

i i i i

i i

với t i = ± 1

1.3.3 Tích các đồng dư

(a * b) (mod n) [(a mod n) * (b mod n)] (mod n)

Tổng quát:

Có thể nhân từng vế nhiều đồng dư thức theo cùng modulo m, ta được một đồng

dư thức theo cùng modulo m, tức là:

Nếu a i ≡ b i (mod m) , i = 1 k, thì

Hệ quả:

- Có thể cộng hoặc trừ cùng một số vào 2 về của đồng dư thức

- Có thể chuyển vế các số hạng của đồng dư thức bằng cách đổi dấu các số hạng đó

- Có thể cộng vào 1 vế của đồng dư thức bội của modulo, tức là:

(mod )

k k

i i

i i

Trang 5

a ≡ b (mod m) => a+km ≡ b (mod m) với mọi k Z

- Có thể nhân 2 vế của đồng dư thức với cùng một số:

a ≡ b (mod m) => a*c ≡ b*c (mod m) với mọi c Z

- Có thể nâng lên luỹ thừa bậc nguyên không âm cho 2 vế của một đồng dư thức

a ≡ b (mod m) => an≡ bn (mod m) với mọi n Z

- Có thể chia 2 vế đồng dư thức cho một ước chung nguyên tố với modulo

c\a, c\b, (c,m)=1, a ≡ b (mod m) ⇒ a/c ≡ b/c (mod m)

- Có thể nhân 2 vế đồng dư thức và modulo với cùng một số nguyên dương

Nếu a ≡ b (mod m), c >0 ⇒ ac ≡ bc (mod mc)

- Có thể chia 2 vế đồng dư thức và modulo cho cùng một số nguyên dương

là ước chung của chúng:

Nếu c \ (a, b, m) ⇒ a/c ≡ b/c (mod m/c)

- a ≡ b (mod m) => a ≡ b (mod k) với k \ m

- a ≡ b (mod m) ⇒ UCLN(a, m) = UCLN(b, m)

Trang 6

2 Ứng dụng của phép “đồng dư”

2.1.Mã dịch vòng

2.1.1 Định nghĩa

Giả sử P = C = K = ZM, định nghĩa:

Ek(X) = X + K mod M

Và Dk(X) = Y – K mod M

Với ZM là số học modulo của M, là tập hợp {0, 1, …, M} có trang bị 2 phép toán cộng và nhân như trong số học, nhưng kết quả được rút gọn theo modulo M

Trong trường hợp K =3 hệ này được gọi là hệ CAESAR

Trong báo cáo này, sẽ demo mã dịch vòng với modulo 26 để mã hoá một văn bản tiếng anh thông thường bằng cách thiết lập sự tương ứng giữa các ký tự và các thặng dư theo modulo 26: A↔0, B↔1, …, Z↔25 Cùng với đó, sẽ demo mã dịch vòng với modulo 29 để mã hoá văn bản tiếng việt bằng sự thiết lập tương ứng giữa các ký tự và các thặng dư theo modulo 29: A↔0, Ă↔1, …, Y↔28

2.1.2 Các bước thực hiện việc mã hoá và giải mã

Giả sử có bản rõ là: WEWILLMEETATNIGHT

Với K = 11

Bước 1: Biến đổi bản rõ thành các số nguyên theo quy đổi bên trên thành dãy số như sau:22 4 22 8 11 11 12 4 4 19 0 19 12 8 3 13 8 6 7 19

Bước 2: Cộng 11 vào mỗi giá trị trên rồi rút gọn tổng theo modulo 26

Ta được dãy sau:

Trang 7

7 15 7 19 22 22 23 15 15 4 11 4 23 19 14 24 19 17 18 4

Bước 3: Cuối cùng biến đổi dãy số nguyên này thành các ký tự theo bảng quy đổi được bản mã sau:

HPHTWWXPPELEXTOYTRSE

Để giải bản mã này, trước tiên, ta sẽ biến đổi bản mã thành dãy các số nguyên rồi trừ đi giá trị tương ứng cho 11 (rút gọn theo modulo 26) và cuối cùng biến đổi lại dãy này thành các ký tự dựa vào bảng quy đổi

Nhận xét: Trong ví dụ trên, ta đã dùng các chữ in hoa cho bản mã, nếu đầu vào

là chữ thường thì ta mã hoá theo chữ hoa rồi chuyển bản mã từ chữ hoa về chữ thường

2.1.3.Đánh giá tính “An toàn” của mã dịch vòng

Nếu một hệ mật có thể sử dụng được trong thực tế thì nó phải thoả mãn một số tính chất nhất định, ngay sau đây sẽ nêu ra hai trong số đó:

1. Mỗi hàm mã hoá và mỗi hàm giải mã phải có khả năng tính toán được một cách hiệu quả

2. Đối phương dự trên xâu bản mã phải không có khả năng xác định khoá K đã dùng hoặc không có khả năng xác định được xâu bản rõ

Tính chất thứ hai xác định khá mập mờ theo ý tưởng “bảo mật” Quá trình thử tính khoá K (khi đã biết bản mã) được gọi là mã thám

Nhận xét rằng, mã dịch vòng (Theo modulo 26) là không an toàn vì nó có thể bị thám theo phương pháp vét cạn Do chỉ có 26 khoá nên dễ dàng thử mọi khoá có thể cho tới khi nhận được bản rõ có ý nghĩa Điều này được minh hoạ theo ví dụ sau:

Trang 8

Cho bản mã: JBCRCLQRWCRVNBJENBWRWN

Ta sẽ thử liên tiếp các khoá giải mã D0, D1,… và Y thu được

j b c r c l q r w c r v n b j e n b w r w n

i a b q b k p q v b q u m a i d m a v q v m

h z a p a j o p u a p t l z h c l z u p u l

g y z o z i n o t z o s k y g b k y t o t k

j x y n y h m n s y n r j e x f a j x s n s j

e w x m x g l m r x m q i w e z i w r m r i

d v w l w f k l q w l p h v o d y h v q l q h

c u v k v e j k p v k o g u c x g u p k p g

b t u j u d i j o u j n f t b w f o j o f

a s t i t c h i n t i m e s a v e s n i n e

Tới đây ta đã xác định được bản rõ và dừng lại Khoá tương ứng K = 9

Trung bình có thể tính được bản rõ sau khi thử 26/2 = 13 quy tắc giải mã

Như đã chỉ ra trong ví dụ trên, điều kiện để một hệ mật được an toàn là phép tìm kiếm khoá vét cạn phải không thể thực hiện được; tức không gian khoá phải rất lớn Tuy nhiên, một không gian khoá lớn cũng chưa thể đảm bảo độ mật

Trang 9

2.1.4.Mật mã CAESAR

Trong mật mã học, mật mã Caesar, còn gọi là mật mã dịch chuyển, là một trong những mật mã đơn giản và được biết đến nhiều nhất Mật mã là một dạng của mật mã thay thế, trong đó mỗi ký tự trong văn bản được thay thế bằng một ký tự cách nó một đoạn trong bảng chữ cái để tạo thành bản mã Mã CAESAR là mã dịch vòng với khoá K = 3

Có thể hiểu rõ về CAESAR như các mã dịch vòng khác thông qua ví dụ đưa ở trên

dễ dàng bị phá vỡ và không đáp ứng được yêu cầu an toàn thông tin trong truyền thông

Mật mã Vigenère là một phương pháp mã hóa văn bản bằng cách sử dụng xen

kẽ một số phép mã hóa Caesar khác nhau dựa trên các chữ cái của một từ khóa

Nó là một dạng đơn giản của mật mã thay thế dùng nhiều bảng chữ cái

Trong phép mã hóa Caesar, mỗi ký tự của bảng chữ cái được dịch đi một khoảng nhất định, ví dụ với bước dịch là 3, A trở thành D, B trở thành E Mật mã

Vigenère là sự kết hợp xen kẽ vài phép mã hóa Caesar với các bước dịch khác nhau

Để mã hóa, ta dùng một hình vuông Vigenère (hình bên) Nó gồm 26 hàng, mỗi hàng dịch về bên trái một bước so với hàng phía trên, tạo thành 26 bảng mã

Caesar Trong quá trình mã hóa, tùy theo từ khóa mà mỗi thời điểm ta dùng một dòng khác nhau để mã hóa văn bản

Ví dụ, ta có văn bản cần mã hóa như sau:

ATTACKATDAWN

Người gửi lựa chọn một từ khóa và viết nó lặp lại nhiều lần trên một dòng đến khi số chữ cái trên dòng bằng số chữ cái trong thông điệp, với từ khóa

"LEMON" thì:

Trang 10

Chữ cái đầu tiên của văn bản, A, được mã hóa bằng bảng bắt đầu với L (chữ cái đầu tiên của từ khóa) Nó sẽ được mã hóa thành chữ cái trên dòng L và cột A của hình vuông Vigenère, đó là chữ L Tương tự như vậy, chữ cái thư hai của văn bản sẽ được mã hóa bằng chữ cái thứ hai của từ khóa: chữ trên dòng E và cột T là X Sau đây là bản mã:

Văn bản:

Từ khóa:

Bản mã:

3.Demo ứng dụng

Ta sẽ đi xây dựng ứng dụng với mã CAESAR cho cả văn bản tiếng việt và văn

Với input của việc mã hoá là file dạng text Và đầu ra là file text sau khi đã mã hoá (file này sẽ có định dạng _mahoa.txt)

Input của giải mã là file dạng _mahoa.txt (file đã mã hoá bên trên), đầu ra là file dạng _giaima.txt

Trang 11

Hình 1: Giao diện chính.

đường dẫn file sẽ được đặt tại textbox

Hình 2: Lựa chọn file cần mã hoá

Sau khi đã có đường dẫn, ta sẽ thực hiện mã hoá Nút “Ma hoa TiengAnh” cho phép mã hoá văn bản đầu vào là tiếng anh, được mã hoá theo modulo 26 Nút

“Ma hoa TV” cho phép mã hoá văn bản đầu vào là tiếng việt, được thực hiện mã hoá theo modulo 29 Sau khi thực hiện mã hoá, sẽ tạo ra 1 file có dạng

Sau khi mã hoá, ta có thể tiến hành giải mã Cũng như việc mã hoá, với file mã hoá văn bản tiếng anh, để giải mã ta sẽ sử dụng nút “Giai ma TiengAnh”, file mã hoá văn bản tiếng Việt sẽ sử dụng “Giai ma TV”

Ở đây, ta demo với file test.txt có nội dung:

WEWILLMEETATMIDNIGHTwewillmeetatmidnight

Sau khi kích vào nút “Ma hoa TiengAnh”, sẽ có thêm file test_mahoa.txt được tạo ra với nội dung như sau:

Trang 12

chọn file như hình dưới đây:

Hình 3: Lựa chọn file để giải mã

Ở phần này chỉ cho lựa chọn những file có định dạng _mahoa.txt

Sau khi kích vào nút “Giai ma TiengAnh”, sẽ có thêm 1 file test_giaima.txt ở

Ngày đăng: 27/10/2014, 11:11

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w