1.1.1 Hệ mã dịch chuyểnHệ mã dựa trên cơ sở của phép biến đổi một ký tự trong văn bản gốc thành một ký tự khác trong bản mã Trong trường hợp K=3 , hệ mật mã trên được gọi là mật mã Caes
Trang 1MẬT MÃ CỔ ĐIỂN
Trang 21.1 MỘT SỐ HỆ MẬT MÃ ĐƠN GIẢN
1.1.1 MẬT MÃ DỊCH CHUYỂN - SHIFT CIPHER
1.1.2 MẬT MÃ THAY THẾ - SUBSTITUTION CIPHER
1.1.3 MẬT MÃ TUYẾN TÍNH - AFFINE CIPHER
1.1.4 MẬT MÃ VIGENÈRE
1.1.5 MẬT MÃ HILL
1.1.6 MẬT MÃ HOÁN VỊ
1.1.7 MẬT MÃ DÒNG
Trang 3Mục đích cơ bản của hệ mật mã cho phép hai
người, Alice và Bob, truyền thông tin qua một kênh không được bảo mật theo cách sao cho đối thủ, Oscar, không thể hiểu được thông tin gì đang được nhắc đến Kênh đó có thể là đường điện thoại hoặc
có thể là mạng máy tính
Thông điệp mà Alice muốn gửi tới Bob, chúng ta gọi
là “ văn bản gốc ” hoặc “ bản rõ ” ( “ Plaintext ”),
được xây dựng hoàn toàn tuỳ ý, có thể là các ký tự tiếng Anh, dữ liệu số…
MỞ ĐẦU:
Trang 4Sơ đồ minh hoạ
Trang 5Mô tả hình thức bằng ký hiệu toán học
Trang 61.1.1 Hệ mã dịch chuyển
Hệ mã dựa trên cơ sở của phép biến đổi một ký tự trong văn bản gốc thành một ký tự khác trong bản mã
Trong trường hợp K=3 , hệ mật mã trên được gọi là mật mã
Caesar , được thừa nhận là của Julius Caesar
Trong hệ mật mã Caesar , mỗi ký tự được thay thế bởi ký tự đứng sau nó ba vị trí trong bảng chữ cái Alphabet)
Trang 7Để thực hiện theo phương pháp này, trước hết ta cần định nghĩa một bảng mã để số hoá văn bản gốc:
13 14 15 16 17 18 19 20 21 22 23 24 25
Trang 9Cuối cùng, ta biến đổi dãy số nguyên sang các ký tự Aphabet tương ứng như trên , nhận được bản mã
HPHTWWXPPELEXTOYTRSE
Để giải mã bản mã , Bob đầu tiên biến đổi tương ứng bản mã sang dãy của các số nguyên , rồi trừ từng giá trị trong dãy cho 11 ( sau đó quy đổi sang modulo 26), và cuối cùng biến đổi dãy số nguyên vừa nhận được sang các ký tự Alphabe.Ta thu đượcvăn bản gốc ban đầu
Wewillmeetatmidnight
Nhận xét: Ta đã sử dụng ký tự hoa cho bản mã và ký
tự thường cho văn bản gốc
Trang 10NHẬN XÉT
Ta nhận xét rằng hệ mã dịch chuyển tính bảo mật
quy tắc giải mã dK cho đến khi nhận được văn bản
có “ ý nghĩa ” Xem minh hoạ dưới đây :
Trang 11gyzozinotzoskygbkytotkfxynyhmnsynrjxfajxsnsjewxmxglmrxmqiweziwrmridvwlwfklqwlphvdyhvqlqhcuvkvejkpvkogucxgupkpgbtujudijoujnftbwftojof
a stitch in times saves nine
k cdsdmr …
Cuối cùng thử hết tới K=26, ta xác định được văn bản gốc và dừng lại Khoá K= 9
K=0 K=1 K=2 K=3 K=4 K=5 K=6 K=7 K=9 K=8
K=10
Trang 121.1.2 The Substitution Cipher ( Hệ mã thay thế )
Trang 13Ví dụ : Cho hoán vị “ ngẫu nhiên ” π sau :
( ) , ( ) ,
e aπ = X e bπ = N
Trang 15Chương 2.4, 2.5 Kenneth H Rosen
Xuân 2008
Đại học FPT
Discrete Mathematics I
phép chia division
phép chia division
Số nguyên
Integer
Trang 16Số nguyên GIỚI THIỆU
•Phép chia hết: thương, số dư
•Biểu diễn số nguyên theo cơ số: 10, 2, 8, 16
•Thuật toán cho các phép tính số nguyên
Trang 17Số nguyên PHÉP CHIA
Integer DIVISION
Định nghĩa Definition
Định nghĩa Definition
Cho hai số nguyên a, b với a ≠ 0, ta nói b chia hết cho
a nếu tồn tại một số nguyên c sao cho b = a.c Khi b
chia hết cho a ta nói a là ước của b và b là bội của a và
kí hiệu là a|b, nếu trái lại b không chia hết cho a thì ta kí hiệu a|b
a|b ⇔ ∃c∈Z, (a.c =b)
Cho hai số nguyên a, b với a ≠ 0, ta nói b chia hết cho
a nếu tồn tại một số nguyên c sao cho b = a.c Khi b
chia hết cho a ta nói a là ước của b và b là bội của a và
kí hiệu là a|b, nếu trái lại b không chia hết cho a thì ta kí hiệu a|b
Nếu a|b thì a|bc, với mọi số nguyên c.
Nếu a|b và b|c thì a|c.
Cho 3 số nguyên a, b, c Khi đó Nếu a|b và a|c thì a|(b + c).
Nếu a|b thì a|bc, với mọi số nguyên c.
Nếu a|b và b|c thì a|c.
Phép chia
Trang 19Số nguyên PHÉP CHIA
Integer DIVISION
Định lí & định nghĩa Theorem & definition
Định lí & định nghĩa Theorem & definition
Cho a là một số nguyên và d là một số nguyên dương Khi đó tồn tại duy nhất các số q và r, với 0 ≤ r < d sao cho a = qd + r.
Với các kí hiệu như trên ta nói d là số chia, a là số bị
chia, q được gọi là thương (q = a div d) và r được gọi
là số dư (r = a mod d).
Cho a là một số nguyên và d là một số nguyên dương Khi đó tồn tại duy nhất các số q và r, với 0 ≤ r < d sao cho a = qd + r.
Với các kí hiệu như trên ta nói d là số chia, a là số bị
chia, q được gọi là thương (q = a div d) và r được gọi
là số dư (r = a mod d).
Nhận xét: a chia hết cho d khi và chỉ khi số dư của
phép chia a cho d bằng 0
Div, mod
Trang 20while r ≥ d
begin
r: = r – d q: = q + 1
end
if (a < 0 và r > 0) then
begin
r: = d – r q: = –(q + 1)
end
Div, mod
Trang 22Số nguyên SỐ NGUYÊN TỐ
Integer PRIME
Định nghĩa Definition
Định nghĩa Definition
Số nguyên dương p > 1 được gọi là số nguyên tố nếu
nó chỉ có các ước số dương là 1 và p Các số nguyên
dương > 1 và không phải là số nguyên tố được gọi là
hợp số.
Số nguyên dương p > 1 được gọi là số nguyên tố nếu
nó chỉ có các ước số dương là 1 và p Các số nguyên
dương > 1 và không phải là số nguyên tố được gọi là
hợp số.
Chú ý: n ∈ N* là hợp số ⇔ ( ∃a, 1< a < n, a|n).
Định lí Theorem
Định lí Theorem
Nếu n là một hợp số thì n có ước nguyên tố ≤ n1/2
Nếu n là một hợp số thì n có ước nguyên tố ≤ n1/2
Số nguyên tố
Trang 23Erathosthenes Thủ tục này được mô tả như sau:
1 Liệt kê tất cả các số nguyên từ 2 đến n Gọi là danh sách A.
2 Lấy ra số 2 là số đầu tiên của danh sách A và cũng
là số nguyên tố đầu tiên Gọi là danh sách B.
3 Xóa bỏ 2 và các bội của nó ra khỏi danh sách A.
4 Số x đầu tiên trong danh sách A mới là số nguyên tố
và viết vào B.
5 Xóa x và các bội (≥ x2) của x ra khỏi A.
6 Lặp lại bước 4 và 5 cho đến khi A không còn phần tử
nào Chú ý là khi phần tử đều tiên của danh sách còn lại > (phần tử lớn nhất) 1/2 thì tất cả các phần tử còn lại đều là số nguyên tố
Để tìm tất cả các số nguyên tố ≤ n ta sử dụng sàng Erathosthenes Thủ tục này được mô tả như sau:
1 Liệt kê tất cả các số nguyên từ 2 đến n Gọi là danh sách A.
2 Lấy ra số 2 là số đầu tiên của danh sách A và cũng
là số nguyên tố đầu tiên Gọi là danh sách B.
3 Xóa bỏ 2 và các bội của nó ra khỏi danh sách A.
4 Số x đầu tiên trong danh sách A mới là số nguyên tố
và viết vào B.
5 Xóa x và các bội (≥ x2) của x ra khỏi A.
6 Lặp lại bước 4 và 5 cho đến khi A không còn phần tử
nào Chú ý là khi phần tử đều tiên của danh sách còn lại > (phần tử lớn nhất) 1/2 thì tất cả các phần tử còn lại đều là số nguyên tố
Số nguyên tố
Trang 24Số nguyên SỐ NGUYÊN TỐ
IntegerVí dụ PRIME Example
Tìm tất cả các số nguyên tố ≤ 120
Số nguyên tố
Trang 25Định lí cơ bản của số học Theorem
Định lí cơ bản của số học Theorem
Mọi số nguyên dương n > 1 đều có thể được viết duy
nhất dưới dạng tích của các số nguyên tố, trong đó các số nguyên tố được viết theo thứ tự tăng dần, sự
phân tích này gọi là phân tích tiêu chuẩn của n.
Mọi số nguyên dương n > 1 đều có thể được viết duy
nhất dưới dạng tích của các số nguyên tố, trong đó các số nguyên tố được viết theo thứ tự tăng dần, sự
phân tích này gọi là phân tích tiêu chuẩn của n.
.
,
.
v r
( 2
v p p p
n =
Trang 28•Bội chung nhỏ nhất của hai số nguyên dương a và b là
số nguyên dương nhỏ nhất chia hết cho cả a lẫn b, kí hiệu là BCNN(a, b)
•Cho a và b hai số nguyên khác 0, số nguyên d lớn nhất sao cho d|a và d|b được gọi là ước chung lớn nhất của
a và b, kí hiệu là ƯCLN(a, b).
•Bội chung nhỏ nhất của hai số nguyên dương a và b là
số nguyên dương nhỏ nhất chia hết cho cả a lẫn b, kí hiệu là BCNN(a, b)
Ước chung
Trang 29Số nguyên ƯCLN
Integer GCD
Định lí Theorem
Định lí Theorem
Cho 2 số nguyên dương a, b có dạng phân tích tiêu
chuẩn như sau:
ở đó, a i , b j ≥ 0 (có thể bằng 0) Khi đó
Hơn nữa: a.b = ƯCLN(a, b) BCNN(a, b)
Cho 2 số nguyên dương a, b có dạng phân tích tiêu
chuẩn như sau:
ở đó, a i , b j ≥ 0 (có thể bằng 0) Khi đó
Hơn nữa: a.b = ƯCLN(a, b) BCNN(a, b)
r
a r
a
a p p p
2 1
=
r
b r
b
b p p p
2 1
=
) , min(
) ,
min(
2
) ,
min(
) ,
r
b a b
p b
) , max(
) ,
max(
2
) ,
max(
) ,
r
b a b
p b
Ước chung
Trang 31Số nguyên ƯCLN
Integer GCD
Định nghĩa Definition
Định nghĩa Definition
•Hai số nguyên a và b được gọi là nguyên tố cùng
nhau nếu ước chung lớn nhất của chúng bằng 1.
•Các số nguyên a1, a2, …, a n được gọi là đôi một
nguyên tố cùng nhau nếu hai số bất kì trong chúng
Chú ý: Cho p là số nguyên tố, thì p nguyên tố cùng
nhau với tất cả các số nguyên a không chia hết cho p.
Hàm Euler
Trang 32Số nguyên ƯCLN
Integer GCD
Để tìm ước chung lớn nhất của hai số nguyên a và b
ta thường áp dụng thuật toán Euclid cơ sở toán học của thuật toán này như sau
Trang 33Số nguyên ƯCLN
Integer GCD
Thuật toán Euclid Algorithm
procedure ƯCLN (a, b nguyên dương)
x: = a y: = b
while y ≠ 0
begin
r: = x mod y
x: = y y: = r
Trang 35= ƯCLN(15 mod 6, 6)= ƯCLN(3, 6)
= ƯCLN(6 mod 3, 3)= ƯCLN(0, 3) T.T Euclid
Trang 36Số nguyên ƯCLN
Integer GCD
Định lí Theorem
Định lí Theorem
Cho hai số nguyên dương a và b, với a ≥ b Khi đó độ
phức tạp của thuật toán Euclid theo số phép chia là
O(logb).
Cho hai số nguyên dương a và b, với a ≥ b Khi đó độ
phức tạp của thuật toán Euclid theo số phép chia là
O(logb).
T.T Euclid
Trang 37Đồng dư ĐỊNH NGHĨA
Congruence DEFINITION
Định nghĩa Definition
Định nghĩa Definition
Cho a và b là hai số nguyên và m là một số nguyên
dương Ta nói a đồng dư với b theo môđun m và kí
hiệu là a ≡ b (mod m) nếu a – b chia hết cho m, nếu
trái lại thì kí hiệu là a ≡ b (mod m).
Như vậy:
a ≡ b (mod m) ⇔ m|a – b
⇔ a mod m = b mod m
Cho a và b là hai số nguyên và m là một số nguyên
dương Ta nói a đồng dư với b theo môđun m và kí
hiệu là a ≡ b (mod m) nếu a – b chia hết cho m, nếu
trái lại thì kí hiệu là a ≡ b (mod m).
Trang 38Đồng dư ĐỊNH NGHĨA
Congruence DEFINITION
Định nghĩa Definition
Định nghĩa Definition
Tập hợp gồm m số nguyên đôi một không đồng dư theo
mod m gọi là một hệ thặng dư đầy đủ theo mod m
Một số nguyên bất kì sẽ đồng dư với một và chỉ một số trong một hệ thặng dư đầy đủ.
Tập hợp gồm m số nguyên đôi một không đồng dư theo
mod m gọi là một hệ thặng dư đầy đủ theo mod m
Một số nguyên bất kì sẽ đồng dư với một và chỉ một số trong một hệ thặng dư đầy đủ.
{0, 1, 2, 3, 4, 5, 6} là một hệ thặng dư đầy đủ theo mod 7
{1, 2, 3, 5, 8, 13, 21} không là một hệ thặng dư đầy đủ theo mod 7 vì …
1 ≡ 8 (mod 7)
{2 0 , 2 1 , 2 2 , 2 3 , 2 4 , 2 5 , 2 6 } có là một hệ thặng dư đầy đủ theo mod 7 không? Không
Đồng dư
Trang 39• Nếu a ≡ b (mod m) và c ≡ d (mod m) thì
a + c ≡ b +d (mod m); a.c ≡ b.d (mod m)
Cho m là số nguyên dương Khi đó
• a ≡ b (mod m) ⇔ ∃k, a = b + km.
• Nếu a ≡ b (mod m) và c ≡ d (mod m) thì
a + c ≡ b +d (mod m); a.c ≡ b.d (mod m)
Đồng dư
Có một mối liên hệ giữa các phép tính số học thông
thường và các phép tính số học theo môđun m
dấu bằng “=” liên hệ với dấu đồng dư “ ≡ ” +, –, *, / liên hệ với +, –, *, / rồi lấy đồng dư
Trang 40Đồng dư ĐỊNH NGHĨA
Congruence DEFINITION
Vẫn có những tính chất đúng trong số học nhưng không còn đúng trong số học đồng dư nữa
a.b = 0 ⇒ a = 0 hoặc b = 0 nhưng …
a.b ≡ 0 (mod m) ⇒ a ≡ 0 hoặc b ≡ 0
4.3 ≡ 0 (mod 6) nhưng … 4 ≡ 0 (mod 6) 3 ≡ 0 (mod 6)
Đồng dư
Trang 41Đồng dư NGHỊCH ĐẢO
Congruence INVERSE
Hệ quả lemma
Hệ quả lemma
Cho hai số a và m nguyên tố cùng nhau và m > 1 thì
tồn tại số nguyên s (duy nhất theo mod m) để sa ≡ 1
(mod m).
Cho hai số a và m nguyên tố cùng nhau và m > 1 thì
tồn tại số nguyên s (duy nhất theo mod m) để sa ≡ 1
(mod m).
Định nghĩa Definition
Định nghĩa Definition
Cho hai số a và m nguyên tố cùng nhau và m > 1 thì a
gọi là khả nghịch theo mod m, nghịch đảo s của a thỏa
mãn sa ≡ 1 (mod m) duy nhất (theo mod m).
Tập con của một hệ thặng dư đầy đủ mod m gồm tất cả các phần tử khả nghịch mod m gọi là một hệ thặng dư
thu gọn mod m.
Cho hai số a và m nguyên tố cùng nhau và m > 1 thì a
gọi là khả nghịch theo mod m, nghịch đảo s của a thỏa
mãn sa ≡ 1 (mod m) duy nhất (theo mod m).
Tập con của một hệ thặng dư đầy đủ mod m gồm tất cả các phần tử khả nghịch mod m gọi là một hệ thặng dư thu gọn mod m.
Nghịch đảo
Chú ý: nếu a là phần tử khả nghịch theo mod m thì
a.b ≡ 0 (mod m) khi và chỉ khi b ≡ 0 (mod m)
Trang 42Một hệ thăng dư thu gọn mod 12 là 1, 5, 7, 11
Cho p là một số nguyên tố, một hệ thăng dư thu gọn
mod p là {1, 2, …, p–1}
Định lí Theorem
Định lí Theorem
Số phần tử của mọi hệ thặng dư thu gọn mod m là
như nhau và bằng φ(m), hàm Euler của m.
Số phần tử của mọi hệ thặng dư thu gọn mod m là
như nhau và bằng φ(m), hàm Euler của m.
Nghịch đảo
Trang 431.1.3 Hệ mã tuyến tính
Vì gcd(a,26)=1 nên a chỉ có thể nhận các giá trị sau đây: a= 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25
Trang 44a 1 3 5 7 9 11 15 17 19 21 23 25
Ta xem xét ví dụ sau đây :
Giả sử K= ( 7,3) Hàm mã hoá là = 7x+3mod 26
Để minh hoạ , ta sẽ mã hoá văn bản hot Đầu tiên ta biến đổi các ký tự h, o, t quy chiếu sang modulo 26
Thu được lần lượt các giá trị 7,14,19 Bây giờ ta mã hoá, ba ký tự của bản mã có giá trị tương ứng với các
số 0 , 23 , và 6 , các số này tương ứng với xâu ký tự AXG
)
(x
Trang 461.1.4 Hệ mã Vigenère
Cả hai hệ mật mã Shift Cipher và Substitution Cipher, khi đã chọn khoá K, mỗi ký tự Alphabe ánh xạ đến
một ký tự Alphabe duy nhất Vì lý do này , các hệ mật
mã đó được gọi là đơn ký tự ( monoalphabetic ) Đến
đây , ta giới thiệu một hệ mật mã không phải là
monoalphabetic , được biết đến là Vigenère Cipher,
mang tên của Blaise de Vigenère, thế kỷ 16.
Trang 47Sử dụng tương ứng ,
ta có thể kết hợp với mỗi khoá K vào xâu ký tự Alphabe có độ dài m, gọi là từ khoá Mật mã Vigenère Cipher mã hoá theo từng khối m ký tự của
văn bản gốc
Ví dụ : Giả sử m = 6 và từ khoá là C I P H E R
Tương ứng với nó là các số K = ( 2, 8,15,7,4,17 )
Giả sử văn bản gốc :thiscryptosystemisnotsecure
Ta biến đổi các phần tử của văn bản gốc quy đổi sang modulo 26 , và viết chúng thành một nhóm của sáu số , và cộng thêm vào từ khoá ( modulo 26 ) , giống như sau đây :