1.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ã Ca
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:
A B C D E F G H I J K L M
0 1 2 3 4 5 6 7 8 9 10 11 12
N O P Q R S T U V W X Y Z
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 11jbcrclqrwcrvnbjenbwrwn iabqbkpqvbqumaidmavqvm hzapajopuaptlzhclzupul
gyzozinotzoskygbkytotk fxynyhmnsynrjxfajxsnsj ewxmxglmrxmqiweziwrmri dvwlwfklqwlphvdyhvqlqh cuvkvejkpvkogucxgupkpg btujudijoujnftbwftojof
a stitch in times saves nine
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 :
thisciphertextcannotbedecrypted
( ) , ( ) ,
Trang 15Chương 2.4, 2.5 Kenneth H Rosen
Integer
Số nguyên
Integer
Trang 16Số nguyên GIỚI THIỆU
Integer INTRODUCTION
Giới thiệu
Chúng ta sẽ học:
Số nguyên
•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 cZ, (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ì
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 18Số nguyên PHÉP CHIA Integer DIVISION
Trang 19Số nguyên PHÉP CHIA Integer DIVISION
Đị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)
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 20Số nguyên PHÉP CHIA Integer DIVISION
procedure Chia(a Z, d N*)
q: = 0 r: = |a|
while r d
begin
r: = r – d q: = q + 1
Trang 21Số nguyên PHÉP CHIA Integer DIVISION
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à
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
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
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 25Đị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
.
,
.
1
2 1
r
v r
v v
p p
p p
p p
Số nguyên tố
) ( )
( 2
) (
1
r
p v p
v
p p
p
n
Trang 27Theo Định lí cơ bản của số học: p j , 1≤ j ≤ n, p j |Q.
Trang 28Số nguyên ƯCLN Integer GCD
Định nghĩa Definition
Định nghĩa Definition
•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)
•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
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
a 1 2
2 1
r
b r
b b
p p
p
b 1 2
2 1
) , min(
) , min(
2
) , min(
) ,
r
b a b
a
p p
p b
) , max(
) , max(
2
) , max(
) ,
r
b a b
a
p p
p b
Ước chung
Trang 30Ví dụ Example
Cho hai số a = 300, b = 315 tìm ƯCLN và BCNN của a
và b
Số nguyên ƯCLN Integer GCD
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
nguyên tố cùng nhau nếu hai số bất kì trong chúng
a i , a j (1 i < j n) nguyên tố cùng nhau
•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
nguyên tố cùng nhau nếu hai số bất kì trong chúng
a i , a j (1 i < j n) nguyên tố cùng nhau
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 34Số nguyên ƯCLN Integer GCD
Trang 35Số nguyên ƯCLN Integer GCD
Trang 36Số nguyên ƯCLN Integer GCD
Đị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)
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)
Như vậy:
a b (mod m) m|a – b a mod m = b mod m
Đồng dư
Tập tất cả các số nguyên sẽ thu gọn về m “số” mới theo mod m mỗi “số” này là một lớp đồng dư
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 đủ
Ví dụ Example
{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Đồng dư ĐỊNH NGHĨA Congruence DEFINITION
Định lí Theorem
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
Ví dụ Example
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
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
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
Mã hoá văn bản P - hot
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 :
0, 1, 2, , 25