SlideShare a Scribd company logo
Mã hóa bảo mật khóa đối xứng
(Symmetric Key Encryption)
A
encrypt
B
decrypt
plaintext
ciphertext
plaintext
M C = E(M, k). M = D(C, k).
secret key
k
secret key
k
Confidential
Our agents have
installed hidden
microphones and
cameras in the
embassy of country X.
Confidential
Our agents have
installed hidden
microphones and
cameras in the
embassy of country X
Mật mã khối và Mật mã luồng dữ liệu
Ciphertext blocks
Các khối bản tin gốc
(Plaintext blocks)
Block cipher
Key
n bits
Key
Ciphertext stream
Plaintext stream
Stream cipher
Bộ mật mã
khối
Key stream
n bits
Bộ sinh
(thiết lập)
Khóa
Mật mã khối
Mật mã luồng dữ liệu
• Bản tin được cần mật mã hóa được phân chia
thành các khối có độ dài k bit (ví dụ 64 bít).
• Ánh xạ (1-1) k bít khối bản tin gốc thành k bít
bản mã
Ví dụ: với k = 3:
input output
000 110
001 111
010 101
011 100
input output
100 011
101 010
110 000
111 001
Các hệ mật mã khối
• Có bao nhiêu khả năng ánh xạ một khối bản tin có độ dài
k=3?
– Có bao nhiêu bản tin có độ dài 3-bit? (23)
– Có bao nhiêu phép ánh xạ đối với các bản tin đầu vào có độ dài 3-
bit? (8!)
Số khả năng là: 40,320!
• Với bản tin gốc độ dài k, thì số khả năng ánh xạ là 2k!;
• Vấn đề phát sinh : (ví dụ với k = 64)
– Hệ thống cần lưu trữ bảng ánh xạ có 264 phần tử, mỗi
phần tử có độ dài 64 bit  rất lớn
Các hệ mật mã khối
Các thuộc tính của mật mã khối
• Kích thước khối: khối có kích thước càng lớn thì tính bảo
mật càng cao.
• Kích thước khóa: Khóa có kích thước càng lớn thì tính bảo
mật càng cao.
• Số lượng vòng mã hóa : Số vòng (lần) mã hóa càng tăng
thì tình bảo mật càng cao.
• Các chế độ mã hóa : chỉ định với các bản tin có kích thước
lớn sẽ được mã hóa như thế nào?
3
Cấu trúc mã khối cơ bản Feistel
Horst Feistel’s (1915 – 1990)
Là cấu trúc mật mã cơ bản nhất và được
áp dụng trong nhiều thuật toán mật mã
phổ biến hiện nay như DES, Blowfish,
IDEA
Feistel chưa phải là một thuật toán mật
mã, mà chỉ là một mô hình được xây
dựng phù hợp cho việc thiết kế các thiết
bị mật mã bằng phần cứng
Nguyên lý hoạt động của Feistel dựa trên việc hoán vị và thay thế
nhiều lần trên khối dữ liệu gốc
Tất các các thao tác trong cấu trúc Feistel, kể cả hàm F, đều không
cần phải có thao tác ngược.
Cấu trúc mã khối Feistel
• Encryption:
– L1= R0 R1 = L0 ⊕ f1(R0)
– L2 = R1 R2 = L1 ⊕ f2(R1)
L0 R0
f1(•)
f2(•)
f1(•)
L1
Ld-1
Rd
R1
Rd-1
Ld
…
– Ld = Rd-1 Rd = Ld-1 ⊕ fd(Rd-1)
• Decryption:
– Rd-1 = Ld Ld-1 = Rd ⊕ fd(Ld)
…
– R0 = L1; L0 = R1 ⊕ f1(L1)
Thông tin gốc được cắt thành từng khối có
kích thước 2w bit (tức là một số bit chẵn). Mỗi
khối bit được xử lý thành 2 phần bằng nhau:
w bit bên trái (L) và w bit bên phải (R).
Quá trình giải mã của Feistel
tương tự như quá trình mã hoá,
chỉ khác ở chỗ thứ tự các khoá
phụ đưa vào tại mỗi vòng bị đảo
ngược so với quá trình mã hoá,
nghĩa là khoá Kn sẽ đưa vào
vòng thứ nhất, khoá K1 đưa vào
vòng cuối cùng
Nguyên lý hoạt động của
Feistel dựa trên việc hoán
vị và thay thế nhiều lần
trên khối dữ liệu gốc
Cấu trúc mã khối Feistel
Các thuộc tính của cấu trúc mã hóa Feistel
Kích thước khối dữ liệu đầu vào (block size)
Chiều dài khoá (key size)
Số vòng lặp (number of rounds)
Thuật toán sinh khoá phụ (subkey generation algorithm)
Hàm F thực hiện tại mỗi vòng (round function)
Đạt tốc độ tối đa khi cài đặt bằng phần mềm
Dễ phân tích và thực hiện
Mã TinyDES
Mã TinyDES có các tính chất sau:
Là mã thuộc hệ mã Feistel gồm 3 vòng
Kích thước của khối là 8 bít
Kích thước khóa là 8 bít
Mỗi vòng của TinyDES dùng khóa con có kích thước 6 bít được
trích ra từ khóa chính.
Các vòng
Feistel của mã
TinyDES
Các vòng của TinyDES
Hàm F của Feistel là:
F(Ri-1, Ki) = P-box(S-box(Expand( Ri-1) Ki))
Hàm Expand vừa mở
rộng vừa hoán vị Ri-1 từ 4
bít lên 6 bít
Hàm S-boxes biến đổi
một số 6 bít đầu vào
thành một số 4 bít đầu ra
Hàm P-box là một hoán
vị 4 bít
Các vòng của TinyDES
Expand: gọi 4 bít của Ri-1 là b0b1b2b3. Hàm Expand hoán vị và mở rộng
4 bít thành 6 bít cho ra kết quả: b2b3b1b2b1b0.
Ví dụ: R0 = 0110  Expand(R0) = 101110
S-box: Gọi b0b1b2b3b4b5 là 6 bít đầu vào của S-box, ứng với mỗi trường
hợp của 6 bít đầu vào sẽ có 4 bít đầu ra. Việc tính các bít đầu ra dựa trên
bảng sau:
Ví dụ: X = 101010. Tra bảng ta có S-box(X) = 0110.
P-box: thực hiện hoán vị 4 bít đầu b0b1b2b3 cho ra kết quả b2b0b3b1.
Thuật toán sinh khóa con của TinyDES
Khóa K 8 bít ban đầu được chia thành 2 nửa trái
phải KL0 và KR0 , mỗi nửa có kích thước 4 bít.
Tại vòng thứ nhất KL0 và KR0 được dịch vòng
trái 1 bít để có được KL1 và KR1.
Tại vòng thứ hai KL1 và KR1 được dịch vòng
trái 2 bít để có được KL2 và KR2.
Tại vòng thứ 3 KL2 và KR2 được dịch vòng trái
1 bít để có KL3 và KR3.
Cuối cùng khóa Ki của mỗi vòng được tạo ra
bằng cách hoán vị và nén (compress) 8 bít của KLi
và KRi (k0k1k2k3k4k5k6k7) thành kết quả gồm 6
bít : k5k1k3k2k7k0.
Ví dụ mã TinyDES
Ví dụ: mã hóa bản rõ P = 0101.1100 (5C) với khóa K = 1001.1010
L0 = 0101, R0 = 1100, KL0 = 1001, KR0 = 1010
Vòng 1:  L1 = R0 = 1100, Expand(R0) = 001011
 KL1 = KL0 <<1 = 0011, KR1 =KR0 << 1 = 0101
 K1 = Compress(KL1KR1) = 101110
Nén (Compress) 8 bít của
KLi và KRi
(k0k1k2k3k4k5k6k7)
thành kết quả gồm 6 bít :
k5k1k3k2k7k0
E(b0b1b2b3)  b2b3b1b2b1b0
 Expand(R0)  K1 = 100101
 S-box(100101) = 1000
 F1 = P-box(1000) = 0100
 R1 = L0  F1 = 0001
P-Box(b0b1b2b3)  b2b0b3b1
Ví dụ mã TinyDES
L1 = 1100, R1 = 0001, KL1 = 0011, KR1 = 0101
Vòng 2:  L2 = R1 = 0001, Expand(R1) = 010000
 KL2 = KL1 <<2 = 1100, KR2 =KR1 << 2 = 0101
 K2 = Compress(KL2KR2) = 110011
Nén (Compress) 8 bít của
KLi và KRi
(k0k1k2k3k4k5k6k7)
thành kết quả gồm 6 bít :
k5k1k3k2k7k0
E(b0b1b2b3)  b2b3b1b2b1b0
 Expand(R1)  K2 = 100011
 S-box(100011) = 1100
 F2 = P-box(1100) = 0101
 R2 = L1  F2 = 1001
P-Box(b0b1b2b3)  b2b0b3b1
Ví dụ mã TinyDES
 C = L3 R3 = 1001 0010
Vòng 3:  L3 = R2 = 1001, Expand(R2) = 010001
 KL3 = KL2 <<1 = 1001, KR3 =KR2 << 1 = 1010
 K3 = Compress(KL3KR3) = 001001
Nén (Compress) 8 bít của
KLi và KRi
(k0k1k2k3k4k5k6k7)
thành kết quả gồm 6 bít :
k5k1k3k2k7k0
E(b0b1b2b3)  b2b3b1b2b1b0
 Expand(R2)  K3 = 011000
 S-box(011000) = 0101
 F3 = P-box(0101) = 0011
 R3 = L2  F3 = 0010
P-Box(b0b1b2b3)  b2b0b3b1
L2 = 0001, R2 = 1001, KL2 = 1100, KR2 = 0101
8
Ciphertext
64 bit
DES
56 bit
Key
Plaintext
64 bit
Mật mã DES
- Kích thước khối: 64 bit
- Chiều dài khoá: 64 bit, thực ra là 56 bit như sẽ trình bày sau đây
- Số vòng lặp: 16 vòng
- Thuật toán sinh khoá phụ: kết hợp phép dịch trái và hoán vị
- Hàm F: kết hợp các phép XOR, hoán vị và thay thế (S-box).
Các thuộc tính:
1 2 3 4 5 6 7 8
first 7 bits
Parity-check bits
Bít kiểm tra được xác định thông qua tính XOR của 7 bít đầu
9
5758596061626364
7 bits
...
Trong mật mã DES chỉ định chiều dài khóa là 64 bit:
• Bao gồm 8 byte; trong mỗi byte thì bít thứ 8 là bít kiểm tra chẵn
lẻ (parity-check bit
Chiều dài khóa trong DES
Thuật toán mật mã DES
Decryption
Encryption
R0
R1=L0 f (R0,K0)
R2=L1 f (R1,K1)


Key K0
f
Key K1
bản rõ
f
Bản mã
Cấu trúc Feistel 2 tầng trong DES
L0
L1=R0
L2=R1
IP(x) = L0R0
Li = Ri-1
Ri = Li-1 ⊕ f(Ri-1, Ki)
y = IP-1(R16L16)
11
Với bản rõ cho trước x, một xâu bit x0 sẽ
được xây dựng bằng cách hoán vị các bit
của x theo phép hoán vị cố định ban đầu IP.
Trong đó L0 gồm 32 bit đầu và R0 là 32 bit
cuối.
  là phép loại trừ của hai xâu bit (Cộng module 2)
 k1, k2, …, k16 là các xâu bit có độ dài 48
được tính như 1 hàm của khóa k (ki chính là một
phép chọn hoán vị bit trong k).
Thuật toán mật mã DES
Phép hoán vị ban đầu IP
58
60
62
64
57
59
61
63
50
52
54
56
49
51
53
55
42
44
46
48
41
43
45
47
34
36
38
40
33
35
37
39
26
28
30
32
25
27
29
31
18
20
22
24
17
19
21
23
10
12
14
16
9
11
13
15
2
4
6
8
1
3
5
7
Bảng chỉ định cách thức hoán vị đầu vào của khối bản tin 64 bít.
Ví dụ: Bảng này có ý nghĩa là bit thứ 58 của x là bit đầu tiên của IP(x);
bit thứ 50 của x là bit thứ 2 của IP(x)
Bộ chuyển vị IP
Hoán vị khởi đầu nhằm đổi chỗ
khối dữ liệu vào , thay đổi vị trí
của các bít trong khối dữ liệu vào.
Phép hoán vị ngược IP-1
40
39
38
37
36
35
34
33
8
7
6
5
4
3
2
1
48
47
46
45
44
43
42
41
16
15
14
13
12
11
10
9
56
55
54
53
52
51
50
49
24
23
22
21
20
19
18
17
64
63
62
61
60
59
58
57
32
31
30
29
28
27
26
25
Tương tự như bảng hoán vị ban đầu
Tại vòng thứ 16, R16 đổi chỗ cho L16.
Sau đó ghép 2 nửa R16, L16 cho đi qua
hoàn vị nghịch đảo của hoàn vị IP sẽ tính
được bản mã. Bản mã cũng có độ dài 64
bít.
Hoạt động của hàm F tại từng vòng
Từ L0 và R0 sẽ lặp 16 vòng, tại mỗi vòng tính:
Li=Ri-1
Ri=Li-1 f(Ri-1,Ki) với i= 1, 2,…,16
với:
 là phép XOR của hai xâu bit:
0  0=0 , 1  1=0
1  0=1,0  1=1
f : hàm mà ta sẽ mô tả sau.
Ki : các chuỗi có độ dài 48 bit được tính như
là các hàm của khóa K.
K1 đến K16 lập nên một lịch khóa.
16
32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
C1 C2 C3 C4 C5 C6 C7 C8
Fixed permutation
function
Hoạt động của hàm F tại từng vòng
Biến thứ nhất A được mở rộng thành một xâu
bit độ dài 48 theo một hàm mở rộng cố định E.
E table thực hiện chức năng
hoán vị các bit trong khối thông
tin, đồng thời chuyển từ 32 bit
thành 48 bit bằng cách sử dụng
ma trận E table
E(Li)=E(011001)=E(01010101)
S-Box
B (6 bit) C (4 bit)
S -Box (Substitution Box) thực hiện thao tác thay thế chuỗi bit
thành một chuỗi bit khác, đồng thời thực hiện thao tác ngược lại
với E table là chuyển khối thông tin từ 48 bit thành 32 bit.
 Hai bit b1b6 xác định biểu diễn nhị phân hàng r của Sj (0 r  3)
 Bốn bit (b2 b3 b4 b5) xác định biểu diễn nhị phân của cột c của Sj (0 c  15).
 Khi đó Sj(Bj) sẽ xác định phần tử Sj(r, c) ; phần tử này viết dưới dạng nhị
phân là một xâu bit có độ dài 4
 Bằng cách tương tự tính các Cj = Sj(Bj) , (1  j  8).
Mỗi Si là một bảng 416
cố định có các hàng là các
số nguyên từ 0 đến 15
Với xâu bit có độ dài 6 (kí hiệu Bi = b1 b2 b3 b4 b5 b6)
S-Box (Substitution Box)
Ví dụ, xét ma trận S1, với chuỗi bit là 101100
- Bit đầu và bit cuối là (10)2, có giá trị thập phân là 2, do đó hàng được chọn
là hàng số 2.
- 4 bit còn lại là 0110 nhị phân, giá trị thập phân tương ứng là 6, do đó giá
trị tại cột 6 được chọn.
- Giá trị tại hàng 2 cột 6 trong ma trận S1 là 2, giá trị xuất ra là 0010.
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
Hàng 0 
Hàng 1 
Hàng 2 
Hàng 3 
Cột 0 1 2 15
……
S-Box (Substitution Box)
(b1b6)
(b2 b3 b4 b5)
S-Box (Substitution Box)
S-Box (Substitution Box)
S-Box (Substitution Box)
S-Box (Substitution Box)
Khóa K
- K là một xâu có độ dài 64 bit trong đó 56 bit dùng làm khóa và
8 bit dùng để kiểm tra sự bằng nhau (phát hiện lỗi).
- Các bit ở các vị trí 8, 16,…, 64 được xác định,
sao cho mỗi byte chứa số lẻ các số 1, vì vậy từng
lỗi có thể được phát hiện trong mỗi 8 bit.
- Các bit kiểm tra sự bằng nhau là được bỏ qua
khi tính lịch khóa.
Quá trình sinh khoá
……………………..
Khoá ban đầu nhập vào là
một chuỗi 64 bit, trong vòng
đầu tiên khoá 64 bit được
cho qua hộp PC-1(Permuted
Choice) để hoán vị có lựa
chọn thành khoá 56 bit.
- Các bít kiểm tra sẽ được
bỏ qua trong quá trình nén
khóa tahông qua các khối
PC-i
Quá trình sinh khoá
20
57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
Right
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4
14
15
17
6
11
21
24
10
1
23
5
19
3
12
28
4
26
41
51
34
8
52
45
53
16
31
33
46
7
37
48
42
27
47
44
50
20
55
49
36
13
30
39
29
2
40
56
32
Hộp PC-1 và PC-2
bit thứ 57 trở thành bit đầu tiên,
bit thứ 49, 41, 33, … lần lượt là các
bit tiếp theo, và bit thứ 4 trở thành
bit cuối cùng của chuỗi khoá.
Tiếp theo chia đôi khoá 56 bit đó thành hai
nửa trái và phải, mỗi nửa này sẽ được dịch
vòng sang trái 1 hoặc 2 bit tuỳ mỗi vòng theo
quy tắc sau:
Khoá đi qua PC-2 thì bit thứ 14
trở thành bit đầu tiên, các bit thứ
17, 11, 24, … là các bit tiếp theo,
bit thứ 32 là bit cuối cùng của
khoá con.
left
PC-1
PC-2
Giải mã
• Việc giải mã dùng cùng một thuật toán như việc mã hoá.
• Để giải mã dữ liệu đã được mã hoá, quá trình giống như mã hoá
được lặp lại nhưng các chìa khoá phụ được dùng theo thứ tự ngược
lại từ K16 đến K1, nghĩa là trong bước 2 của quá trình mã hoá dữ
liệu đầu vào ở trên Ri-1 sẽ được XOR với K17-i chứ không phải với
Ki.
Thuật toán
Kiểu mã
hõa
Chiều dài
khóa
Ứng dụng
DES
Block
Cipher
56 bits
Thông dụng, nhưng
khả năng bảo mật
không mạnh
TripleDES
Block
Cipher
168 bits
(112 - tối ưu)
Nâng cấp từ DES, Khả
năng bảo mật tốt
Blowfish
Block
Cipher
Thay đổi
(Up to 448 bits)
Tính bảo mật cực tốt
AES
Block
Cipher
Thay đổi
(128, 192, hoặc
256 bits)
Thay thế cho DES,
Khả năng bảo mật cực
tốt
RC4
Stream
Cipher
Thay đổi
(40 hoặc 128
bits)
Mã hóa bảo mật
nhanh với luồng dữ
liệu
Các phương pháp mã hóa bảo mật
hiện nay
Mã khoá đơn/mật/riêng dùng 1 khoá
Dùng chung cả người nhận và người gửi
Khi khoá này được dùng, việc trao đổi thông
tin được thỏa thuận.
Là đối xứng, hai đối tác là như nhau
 Do đó không bảo vệ người gửi khỏi việc người
nhận giả mạo mẩu tin và tuyên bố là nó được
gửi đi bởi người gửi (giả mạo).
Có thể là bước tiến quan trọng nhất trong lịch sử
3000 năm mã hoá
Không đối xứng vì hai phía không như nhau
Sử dụng thông minh của lý thuyết số vào hàm số
Hỗ trợ thêm chứ không phải thay thế khoá riêng.
Tại sao lại phải dùng mã khoá công khai?
• Phát triển hướng tới hai mục tiêu chính
– Chứ ký điện tử - làm sao kiểm chứng được mẩu tin nhận
được là của người đứng tên gửi
• Phát minh khoá công khai thuộc về Whitfield Diffie &
Martin Hellman ở Đại học Stanford trong năm 1976
• Được biết đến sớm hơn bởi cộng đồng các nhà khoa
học
– Khoá công khai, mà mọi người đều biết, được dùng
để mã hoá mẩu tin và kiểm chứng chữ ký.
– Khoá riêng, chỉ người nhận biết, đề giải mã bản tin
hoặc để tạo chữ ký.
– Là không đối xứng vì những người mã hoá và kiểm
chứng chữ ký không thể giải mã hoặc tạo chữ ký.
Các thuật toán khoá công khai dùng 2 khoá với các
đặc trưng
– Không có khả năng tính toán để tìm khoá giải mã
nếu chỉ biết thuật toán và khoá mã
– Có thể dễ dàng mã hoá hoặc giải mã mẩu tin nếu
biết khoá tương ứng
Có thể phân loại ứng dụng thành 3 loại:
Cũng giống như khoá riêng việc tìm kiếm vét cạn
luôn luôn có thể, nhưng khoá sử dụng là rất lớn
(>512 bit)
Tính an toàn dựa trên sự khác biết đủ lớn giữa các
bài toán dễ (mã/giải mã) và bài toán khó khó (thám
mã)
Bài toán khó tổng quát hơn đã được biết đến,
nhưng rất khó có thể thực hiện trên thực tế, đòi hỏi
sử dụng số lượng tính toán rất lớn  Do đó chậm so
với mã đối xứng
• Được sáng tạo bởi Rivest, Shamir & Adleman ở MIT
vào năm 1977
• Là mã công khai được biết đến nhiều nhất và sử dụng
rộng rãi nhất
• Dựa trên lũy thừa trên trường hữu hạn các số nguyên
modulo nguyên tố
• Phép lũy thừa cần O((log n)3) phép toán (dễ)
• Sử dụng các số rất lớn 1024 bit
• Tính an toàn dựa vào độ khó phân tích ra thừa số các
số lớn. Lũy thừa yêu cầu O(e log n log log n) phép toán (khó)
1. (nghĩa là để giải mã được mà không biết khoá
mật thì phải tốn hàng triệu năm).
2. (thao tác mã hoá và giải mã tốn ít thời gian).
3. .
4. .
5. (dùng làm chữ ký điện tử).
51
Thuật toán RSA có hai Khóa:
- Khóa công khai (Public key):
được công bố rộng rãi cho mọi
người và được dùng để mã hóa
- Khóa bí mật (Private key):
Những thông tin được mã hóa
bằng khóa công khai chỉ có thể
được giải mã bằng khóa bí mật
tương ứng
10/07/2021 52
53
Chọn p,q nguyên tố
Tính n =p*q
Tính Φ(n) = (p-1)(q-1)
e
Chọn khóa riêng d
d
Chọn khóa công khai e
(0< e < Φ(n)) (e< >Φ(n))
Bản mã C
Bản rõ m
Bản rõ gốc m
n
m
c e
mod

n
c
m d
mod

1

 e
d
– Chọn e và d để e.d=1+k.ø(n) với k là nguyên
 Khi đó:
Cd = Me.d = M1+k.ø(n) = M1.(Mø(n))k
= M1.(1)k = M1 = M mod n
Ước số chung lớn nhất
a và n được gọi là nguyên tố cùng nhau
• Mỗi người sử dụng tạo một cặp khoá công khai –
riêng như sau:
• Ta đã biết ø(N)=(p-1)(q-1)
• Và có thể dùng Định lý Trung Hoa để giảm bớt tính toán
– Trong đó 1<e<ø(N), ƯSCLN(e,ø(N))=1
– e.d=1 mod ø(N) với 0≤d≤ ø(N)
Lý thuyết
Bước 1:B (người nhận) tạo hai số nguyên
tố lớn ngẫu nhiên p và q
Bước 2: tính n = p*q và Φ(n) = (p-1)(q-1)
Bước 3: chọn một số ngẫu nhiên e
(0< e < Φ(n)) sao cho ƯCLN(e,Φ(n))=1
Bước 4: tính bằng cách dùng
thuật toán Euclide
Tìm số tự nhiên x sao cho
Bước 5:
- n và e làm khoá công khai (public key),
- d làm khoá bí mật (pivate key).
Ví dụ 1:
Bước 1: Chọn số 23 và 41
(hai số này là 2 số nguyên tố)
Bước 2: n = 23 * 41 = 943
Φ(n) = 22 * 40 = 880
Bước 3:
chọn e = 7 vì ƯCLN(7, 880)=1
Bước 4: => 7d=1+880x
 d= 503 và x = 4
Bước 5:
- n = 943 và e = 7
- d = 503 57
1

 e
d
e
n
x
d
1
)
(
* 


e
n
x
d
1
)
(
* 


Ví dụ 2:
1. Chọn các số nguyên tố: p=17 & q=11.
2. Tính n = p.q = 17×11 = 187
3. Tính ø(n)=(p–1)(q-1)=16×10=160
4. Chọn e : gcd(e,160)=1;  Lấy e=7
5. Xác định d: để d.e = 1 mod 160 và d < 160
Giá trị cần tìm là d=23, vì 23×7=161= 10×160+1
6. Khoá công khai KU={7,187}
7. Khoá riêng bí mật KR={23,17,11}
• Để mã hoá mẩu tin, người gửi:
• Để giải mã hoá bản mã, người nhận:
• Lưu ý rằng bản tin M < n, do đó khi cần thì chia nhỏ
khối bản rõ.
60
Mã hoá và giải mã
n
m
c e
mod

Bước 1: A nhận khoá công khai của B.
Bước 2: A biểu diễn thông tin cần gửi
thành số m (0 <= m <= n-1)
Bước 3: Tính
Bước 4: Gửi c cho B
Bước 5: Giải mã
tính
 m là thông tin nhận được.
Lý thuyết Ví dụ: (tiếp ví dụ 1 – slide 45)
Bước 1: A nhận khoá công khai
n = 943 và e = 7
Bước 2: Thông tin cần gửi
m = 35
Bước 3:
Bước 4:
Bước 5: Gải mã
 m = 35
943
mod
357

c
545

c
n
c
m d
mod

943
mod
545503

m
– Tìm kiếm khoá bằng phương pháp vét cạn (không khả
thi với kích thước đủ lớn của các số)
– Tấn công bằng toán học dựa vào độ khó việc tính ø(n)
bằng cách phân tích n
– Tấn công thời gian (trong khi giải mã)
– Tấn công với bản mã chọn trước
• Tấn công toán học có 3 dạng
• Hiện tại tin rằng tất cả đều tưong đương với bài
toán phân tích
– Có các bước tiến chậm theo thời gian
– Hiện tại cho rằng RSA 1024 hoặc 2048 là an toàn
• Phát triển vào giữa năm 1990
• Paul Kocher chỉ ra rằng
.
• Tấn công thời gian không chỉ áp dụng cho RSA,
mà cả với các hệ mã công khai khác.
• Tấn công thời gian giống như kẻ cướp đoán sự an
toàn bằng cách quan sát một người nào đó trong
bao lâu chuyển quay điện thoại từ số này sang số
khác.
–Kẻ tấn công chọn bản mã và đoán bản rõ được
giải mã
–Chọn bản mã để khám phá RSA cung cấp thông
tin để thám mã
–Có thể tính với bộ đệm ngãu nhiên của bản rõ
–Hoặc sử dụng bộ đệm mã hoá phả xứng (OASP)
- Độ an toàn của hệ thống RSA dựa trên 2 vấn đề:
, để không có khả năng phân tích nó về mặt tính
toán.
.
65
66
Số các chữ số trong
số được phân tích
Thời gian phân tích
50 4 giờ
75 104 giờ
100 74 năm
200 4000 năm
300 500.000 năm
500 4x 10^25 năm
-Vấn đề này nảy sinh ra 1 lỗ hổng gọi là
- Khi A và B trao đổi thông tin thì C có thể gửi cho A một
khóa bất kì để A tin rằng đó là khóa công khai của B gửi.
- Sau đó C sẽ giải mã và đánh cắp được thông tin. Đồng thời
mã hóa lại thông tin theo khóa công khai của B và gửi lại cho
B.
- Về nguyên tắc, cả A và B đều không phát hiện được sự can
thiệp của C
Đảm bảo nội dung thông tin trao đổi giữa các thực thể là chính xác, không bị
thêm, sửa, xóa hay phát lại - đảm bảo tính tòan vẹn về nội dung
Đảm bảo đối tượng tạo ra thông tin (nguồn gốc thông tin) đúng là đối tượng
hợp lệ đã được khai báo (đảm bảo tính tòan vẹn về nguồn gốc thông tin)
Dùng các thuật toán mật mã (đối xứng và bất đối xứng) để xác thực thông tin
Dùng mã xác thực MAC (Message Authentication Code) – Mã chứng thực
thông điệp
Dùng các hàm băm bảo mật (Secure Hash Function)
Kích thước của MAC là cố định, không phụ thuộc vào kích thước của khối dữ liệu
gốc và thường nhỏ hơn dữ liệu gốc
Mã chứng thực thông điệp (MAC) có thể coi là một dạng checksum của mã hóa,
Ứng với một khối thông tin gốc M và một khóa bí mật K, hàm C chỉ
tạo ra duy nhất một mã xác thực MAC.
Chỉ có phía gởi và phía nhận hợp lệ mới được biết khóa K.
Dùng cơ chế mật mã khối (Cipher Block Chaining) và được gọi là CMAC
hay CBC-MAC.
Dựa trên các hàm băm bảo mật và được gọi là HMAC
 Giống như mã xác thực MAC,
 Hhàm băm chỉ dựa vào thông tin gốc để tạo ra mã băm mà không dùng
thêm bất kỳ khóa bí mật nào
Mã băm được dùng để kiểm tra tính chính xác của thông tin nhận được
Chỉ có thể dùng hàm băm để tính mã băm từ thông tin gốc chứ
không thể tính được thông tin gốc từ mã băm  hàm băm một chiều
(one way hash fntion)
 H có thể áp dụng cho các thông điệp x với các độ dài khác nhau
 Kích thước của output h = H(x) là cố định và nhỏ
 Tính một chiều: với một h cho trước, không thể tìm lại được x sao cho h = H(x)
 Tính chống trùng yếu: cho trước một x, không thể tìm y≠ x sao cho H(x) = H(y)
 Tính chống trùng mạnh: không thể tìm ra cặp x, y bất kỳ (x≠y) sao cho H(x) = H(y)
SHA (Secure Hash Function) được chuẩn hoá năm 1993, sau đó được chỉnh
sửa năm 1995 và đặt tên là SHA-1
Nguyên lý hoạt động: Tham khảo tài liệu (trang 88)
Độ an toàn không cao.
Nguyên lý hoạt đông: tham khảo tài liệu (trang 85)
Chữ ký số là một cơ chế xác thực cho phép người tạo ra thông tin (message creator)
gắn thêm một đọan mã đặc biệt vào thông tin có tác dụng như một chữ ký
Chữ ký được tạo ra bằng cách áp dụng một hàm băm lên thông gốc, sau đó mã
hóa thông tin gốc dùng khóa riêng của người gởi
Message
Sent to
Receiver
Digest
Algorithm
Digital
Signature
Sent to
Receiver
Message
Digest
Sender’s
Private Key
Sender’s
Public Key
Message
Digest
Signature
Algorithm
Signature
Algorithm
Digest
Algorithm
Message
Digest
Sender Receiver
Same?
 Phải xác nhận chính xác người ký và ngày giờ phát sinh chữ ký.
 Phải xác thực nội dung thông tin ngay tại thời điểm phát sinh chữ ký.
 Phải có khả năng cho phép kiểm chứng bởi một người thứ 3 để giải quyết
các tranh chấp nếu có.
Là một chuỗi bit phát sinh từ khối thông tin cần được xác nhận (thông tin gốc).
Chữ ký phải chứa thông tin nhận dạng riêng của người ký để tránh giả mạo
và tránh phủ nhận.
Quy trình tạo ra chữ ký cũng như xác minh chữ ký phải đơn giản, nhanh chóng
Chữ ký thông thể bị giả mạo bằng bất cứ cách nào.
Có thể sao chép một bản sao của chữ ký dành cho mục đích lưu trữ.
 Thuật toán tạo chữ ký cố định (deterministic) tạo ra một chữ ký duy nhất ứng
với một khối thông tin gốc xác định
C hữ ký ngẫu nhiên (probabilistic) tạo ra những chữ ký khác nhau đối với
cùng một bản tin
 Cơ chế tạo chữ ký phục hồi được (reversible signature) cho phép người nhận
phục hồi lại thông tin gốc từ chữ ký, điều này cũng có nghĩa là chữ ký phải có
chứa thông tin gốc trong nó dưới một dạng mã hoá nào đó, người gởi chỉ cần gởi
đi chữ ký là đủ.
 Cơ chế tạo chữ ký không phục hồi được (non-reversible signature) không cho
phép phục hồi thông tin gốc từ chữ ký. Chữ ký chỉ là một khối thông tin cộng
thêm có kích thước nhỏ hơn thông tin gốc. Người gởi cần phải gởi chữ ký đi
kèm với thông tin gốc như một dạng phụ lục.
chữ ký có thể được tạo ra bằng cách mã hóa tòan bộ bản tin bằng khóa riêng của
người tạo ra thông tin, hoặc là chỉ mã hóa phần mã băm (kết quả tạo ta từ hàm
băm đối với thông tin gốc) dùng khóa riêng của người tạo thông tin.
Khi thực thể A muốn gởi một bản tin cho thực thể B, quá trình tạo
ra một chữ ký được thực hiện bình thường như đối với chữ ký trực
tiếp
Trước khi bản tin này được gởi đến B, nó phải được gởi đến một
thực thể thứ 3 gọi là trọng tài (arbiter).
Trọng tài thực hiện việc kiểm tra, xác nhận tính chính xác của
thông tin và chữ ký, sau đó ghi lại ngày giờ rồi mới gởi cho thực thể
B, kèm theo thông tin xác nhận của trọng tài.
(Digital Signature Standard)
 DSS thuộc loại chữ ký ngẫu nhiên và không phục hồi được
 Chú ý:
Network Security
large
message
m
H: Hash
function H(m)
digital
signature
(encrypt)
Bob’s
private
key K
B
-
+
Bob sends digitally signed
message:
Alice verifies signature,
integrity of digitally signed
message:
KB(H(m))
-
encrypted
msg digest
KB(H(m))
-
encrypted
msg digest
large
message
m
H: Hash
function
H(m)
digital
signature
(decrypt)
H(m)
Bob’s
public
key K
B
+
equal
?
Digital signature = signed message
digest
• A digital certificate is a signed statement by a trusted party that another
party’s public key belongs to them.
– This allows one certificate authority to be authorized by a different authority
(root CA)
• Top level certificate must be self signed
• Any one can start a certificate authority
– Name recognition is key to some one recognizing a certificate authority
– Verisign is industry standard certificate authority
Authentication
Digital Cerftificates
Identity
Information
Certificate
Authority’s
Private Key
Sender’s
Public Key
Signature
Algorithm
Certificate
• Chaining is the practice of signing a certificate with another private key that
has a certificate for its public key
– Similar to the passport having the seal of the government
• It is essentially a person’s public key & some identifying information signed
by an authority’s private key verifying the person’s identity
• The authorities public key can be used to decipher the certificate
• The trusted party is called the certificate authority
Authentication
Cerftificates Chaining
Certificate
Authority’s
Private Key
Signature
Algorithm
New Certificate
Certificate
Network Security
Digital signatures
cryptographic technique analogous to hand-written
signatures:
• sender (Bob) digitally signs document,
establishing he is document owner/creator.
• verifiable, non-forgeable: recipient (Alice) can
prove to someone that Bob, and no one else
(including Alice), must have signed document
Network Security
simple digital signature for message m:
• Bob signs m by encrypting with his private key KB,
creating “signed” message, KB(m)
-
-
Dear Alice
Oh, how I have missed
you. I think of you all the
time! …(blah blah blah)
Bob
Bob’s message, m
Public key
encryption
algorithm
Bob’s private
key
K
B
-
Bob’s message, m,
signed (encrypted)
with his private key
m,K
B
-
(m)
Digital signatures
Network Security
-
Alice thus verifies that:
 Bob signed m
 no one else signed m
 Bob signed m and not m‘
non-repudiation:
 Alice can take m, and signature KB(m) to court and
prove that Bob signed m
-
Digital signatures
 suppose Alice receives msg m, with signature: m, KB(m)
 Alice verifies m signed by Bob by applying Bob’s public
key KB to KB(m) then checks KB(KB(m) ) = m.
 If KB(KB(m) ) = m, whoever signed m must have used
Bob’s private key.
-
-
-
+
+ +
Network Security
Message digests
computationally expensive
to public-key-encrypt long
messages
goal: fixed-length, easy- to-
compute digital
“fingerprint”
• apply hash function H to
m, get fixed size message
digest, H(m).
Hash function properties:
• many-to-1
• produces fixed-size msg
digest (fingerprint)
• given message digest x,
computationally infeasible
to find m such that x =
H(m)
large
message
m
H: Hash
Function
H(m)
Network Security
Internet checksum: poor crypto hash function
Internet checksum has some properties of hash function:
 produces fixed length digest (16-bit sum) of message
 is many-to-one (many messages to 1 message)
But given message with given hash value, it is easy to find
another message with same hash value:
I O U 1
0 0 . 9
9 B O B
49 4F 55 31
30 30 2E 39
39 42 D2 42
message ASCII format
B2 C1 D2 AC
I O U 9
0 0 . 1
9 B O B
49 4F 55 39
30 30 2E 31
39 42 D2 42
message ASCII format
B2 C1 D2 AC
different messages
but identical checksums!
Network Security
Recall: ap5.0 security hole
man (or woman) in the middle attack: Trudy poses as
Alice (to Bob) and as Bob (to Alice)
I am Alice I am Alice
R
T
K (R)
-
Send me your public key
T
K
+
A
K (R)
-
Send me your public key
A
K
+
T
K (m)
+
T
m = K (K (m))
+
T
-
Trudy gets
sends m to Alice
encrypted with
Alice’s public key
A
K (m)
+
A
m = K (K (m))
+
A
-
R
Network Security
Public-key certification
• motivation: Trudy plays pizza prank on Bob
– Trudy creates e-mail order:
Dear Pizza Store, Please deliver to me four
pepperoni pizzas. Thank you, Bob
– Trudy signs order with her private key
– Trudy sends order to Pizza Store
– Trudy sends to Pizza Store her public key, but says
it’s Bob’s public key
– Pizza Store verifies signature; then delivers four
pepperoni pizzas to Bob
– Bob doesn’t even like pepperoni
Network Security
Certification authorities
• certification authority (CA): binds public key to
particular entity, E.
• E (person, router) registers its public key with CA.
– E provides “proof of identity” to CA.
– CA creates certificate binding E to its public key.
– certificate containing E’s public key digitally signed by CA – CA
says “this is E’s public key”
Bob’s
public
key K
B
+
Bob’s
identifying
information
digital
signature
(encrypt)
CA
private
key
K
CA
-
K
B
+
certificate for Bob’s
public key, signed by CA
Network Security
• when Alice wants Bob’s public key:
– gets Bob’s certificate (Bob or elsewhere).
– apply CA’s public key to Bob’s certificate, get
Bob’s public key
Bob’s
public
key
K
B
+
digital
signature
(decrypt)
CA
public
key
K
CA
+
K
B
+
Certification authorities
8: Network Security 8-101
Digital Signatures
Cryptographic technique analogous to hand-written
signatures.
sender (Bob) digitally signs document, establishing he is
document owner/creator.
verifiable, nonforgeable: recipient (Alice) can prove to
someone that Bob, and no one else (including Alice), must
have signed document
8: Network Security 8-102
Digital Signatures
Simple digital signature for message m:
• Bob signs m by encrypting with his private key KB, creating
“signed” message, KB(m)
-
-
Dear Alice
Oh, how I have missed
you. I think of you all the
time! …(blah blah blah)
Bob
Bob’s message, m
Public key
encryption
algorithm
Bob’s private
key
K
B
-
Bob’s message, m,
signed (encrypted)
with his private key
K
B
-
(m)
8: Network Security 8-103
Digital Signatures (more)
• Suppose Alice receives msg m, digital signature KB(m)
• Alice verifies m signed by Bob by applying Bob’s public key KB
to KB(m) then checks KB(KB(m) ) = m.
• If KB(KB(m) ) = m, whoever signed m must have used Bob’s
private key.
+ +
-
-
- -
+
Alice thus verifies that:
 Bob signed m.
 No one else signed m.
 Bob signed m and not m’. (Message was not altered)
Non-repudiation:
 Alice can take m, and signature KB(m) to court and prove that
Bob signed m. -
Symmetric-key Signatures
Digital signatures with Big Brother
Public-Key Signatures (1)
Digital signatures using public-key cryptography.
Public-Key Signatures (2)
Criticisms of DSS:
1.Too secret
2.Too slow
3.Too new
4.Too insecure
Message Digests (1)
Message Digest properties
1. Given P, easy to compute MD(P).
2. Given MD(P), effectively impossible to
find P.
3. Given P no one can find P′ such that
MD(P′) = MD(P).
4. Change to input of even 1 bit produces
very different output.
Message Digests (2)
Digital signatures using message digests
Message Digests (3)
Use of SHA-1 and RSA for signing nonsecret messages
Message Digests (4)
(a)A message padded out to a multiple of 512 bits.
(b)The output variables.
(c)The word array.
Important Hash Functions
• SHA-3
– In 2007, NIST announced a competition for the SHA-3, next generation NIST
hash function
– Winning design was announced by NIST in October 2, 2012
– The winner is Keccak by by Guido Bertoni, Joan Daemen, Michaël Peeters, and
Gilles Van Assche
– Different design principles than other SHAs
• Called Sponge construction
– However, standardization process is delayed (as of May 2014 only a draft is
published)
– There is a
controversy (read
the wikipedia page
of SHA-3)
– It seems it is not
going to replace
SHA-2
Digital Signatures
• Mechanism for non-repudiation
• Basic idea
– use private key on the message to generate a piece of
information that can be generated only by yourself
• because you are the only person who knows your private key
– public key can be used to verify the signature
• so everybody can verify
• Generally signatures are created and verified over
the hash of the message
– Why?
Generic Digital Signature Model
Digital Signature – RSA approach
M: message to be signed H: Hash function
E: RSA Private Key Operation PRa: Sender’s Private Key
D: RSA Public Key Operation PUa: Sender’s Public Key
E [PRa,H(M)] Signature of A over M
Digital Signature – DSA approach
• DSA: Digital Signature Algorithm
– NIST standard - FIPS 186 - current revision is 186-4 (2013)
– Key limit 512 – 1024 bits, only for signature, no encryption
• Starting186-3, increased up to 3072
– based on discrete logarithm problem
– Message hash is not restored for verification (difference from RSA)
M: message to be signed H: Hash function
Sig: DSA Signing Operation PRa: Sender’s Private Key
Ver: DSA Verification Operation PUa: Sender’s Public Key
s, r Sender’s signature over M PUG: Global Public Key components
s, r
Collision resistant hash functions and
digital signatures
• Have you seen the reason why hash functions
should be collision resistant?
– because otherwise messages would be changed without
changing the hash value used in signature and
verification
Collision resistant hash functions and
digital signatures
• Birthday attack
– generate two messages
• one with legitimate meaning
• one fraudulent
– create a set of messages from each of them that carries the
same meaning
• play with blanks, synonyms, punctuations
– calculate the hashes of those two sets
– you should have 2n/2 messages (and hashes) in each set for
0.63 probability of a match, where n is the hash size
– if a match is found, then the fraudulent hash could be replaced
with the legitimate one without affecting the signature
Elliptic Curve Cryptography
• Based on the difficulty of Elliptic Curve Discrete
Logarithm problem
– details are not in the scope of this course
– a concise description is in Sections 10.3 and 10.4 of Stallings
• Actually a set of cryptosystems
– each elliptic curve is one cryptosystem
• 160-bit, 163-bit, 233-bit, … defined in IEEE P1363 standard
• Key size is smaller than RSA
– 160-bit ECC is almost has the security as 1024 bit RSA
• Private Key operation is faster than RSA, public key
operation is almost equal
Elliptic Curve Cryptography
• Key exchange
– ECDH
• Elliptic Curve Diffie-Hellman
• Digital Signatures
– ECDSA
• Elliptic Curve Digital Signature Algorithm
• ECDH and ECDSA are standard methods
• Encryption/Decryption with ECC is possible, but not
common
Message Authentication
• Making sure of
– message has been sent by the alleged sender
– message has been received intact
• no modification
• no insertion
• no deletion
– i.e., Message Authentication also covers integrity
• Digital Signatures
– provides integrity + authentication + nonrepudiation
• We will see mechanisms that provide authentication, but
not non-repudiation
Mechanisms for
Message Authentication
• General idea
– receiver makes sure that the sender knows a secret
shared between them
– in other words, sender demonstrates knowledge of that
shared secret
– without revealing the shared secret to unauthorized
parties of course
• We will see some mechanisms for this purpose
Mechanisms for
Message Authentication
• Message Encryption
– provides message authentication, but …
• Message Authentication Code Functions
– similar to encryption functions, but not necessarily
reversible
– Generally Hash based MAC is used (will see)
• Actually hash functions are used for message
authentication in several ways (will see)
Using Message Encryption for
Authentication
• Provides encryption. What about authentication?
– yes, but there must be a mechanism to detect the restored
M is the same as the sent M
• intelligible restored plaintext (may be difficult)
• error control codes (checksum), see next slide
Using Message Encryption for
Authentication
• Addition of FCS (frame check sequence) helps to
detect if both M’s are the same or not
F: FCS function
Using Message Encryption for
Authentication
• What about public-key encryption?
• Provides confidentiality, but not authentication
– Why?
– What should be done for authentication using public-key
crypto?
– we have seen the answer before.
Message Authentication Code (MAC)
and MAC Functions
• An alternative technique that uses a secret key to
generate a small fixed-size block of data
– based on the message
– not necessarily reversible
– secret key is shared between sender and receiver
– called cryptographic checksum or MAC (message authentication
code)
• appended to message
• receiver performs same computation on message and checks
if matches the received MAC
• provides assurance that message is unaltered and comes
from sender
MAC
• Only authentication
C: MAC function
• Authentication and confidentiality
MAC – The Basic Question
• Is MAC a signature?
– No, because the receiver can also generate it
Hash based Message Authentication
• Hash Functions
– condenses arbitrary messages into fixed size
• We can use hash functions in authentication
and digital signatures
– with or without confidentiality
Can we just
use hash
function for
integrity?
Hash based message authentication using
symmetric encryption
• with confidentiality
• without confidentiality
Other Hash based message authentication
techniques
• Authentication is based on a shared-secret s, but no
encryption function is employed
Keyed Hash Functions
• it is better to have a MAC using a hash function rather
than a block cipher
– because hash functions are generally faster
– not limited by export controls unlike block ciphers
• hash functions are not designed to work with a key
• hash includes a key along with the message
• original proposal:
KeyedHash = Hash(Key || Message)
– by Gene Tsudik (1992)
• eventually led to development of HMAC
– by Bellare, Kanetti and Krawczyk
HMAC
• specified as Internet standard RFC2104
– used in several products and standards including IPSec and SSL
• uses hash function on the message:
HMACK = Hash[(K+ XOR opad) ||
Hash[(K+ XOR ipad)|| M)]]
• where K+ is the key padded out to block size of the hash
function
• and opad, ipad are some padding constants
• overhead is just 3 more blocks of hash calculations than
the message needs alone
• any hash function (MD5, SHA-1, …) can be used
HMAC
structure
HMAC Security
• HMAC assumes a secure hash function
– as their creators said
• “you cannot produce good wine using bad grapes”
• it has been proved that attacking HMAC is equivalent
the following attacks on the underlying hash function
– brute force attack on key used
– birthday attack
• find M and M’ such that their hashes are the same
• since keyed, attacker would need to observe a very large (2n/2
messages) number of messages that makes the attacks infeasible
• Let’s see if MD5-based HMAC is secure.
Message Encryption
• Public key encryption for the bulk message is too
costly
– bulk encryption should be done using symmetric
(conventional) crypto
• If a key is mutually known (e.g. if D-H is used)
– use it to encrypt data
– this method is useful for connection oriented data transfers
where the same key is used for several data blocks
• If no key is established before
– mostly for connectionless services (such as e-mail transfer)
– best method is enveloping mechanism
Digital Envelopes
• A randomly chosen one-time symmetric encryption key is
encrypted with public key of the recipient
• fast en/decryption without pre-establishment of keys
EC: Conventional Encryption DC: Conventional Decryption
EP: Public-key Encryption DP: Public-key Decryption
Ks: Session key (one-time)
What we have covered and will cover
next?
• Symmetric Cryptography
• Asymmetric (Public-key) Cryptography
– including D-H key agreement
• Hash functions
• Digital Signatures using PKC
• Message Authentication Mechanisms
– MACs, HMAC
• After that we will continue with Key
Distribution/Management and Authentication
– they are closely related with each other
Prime Factorisation
• to factor a number n is to write it as a product
of other numbers: n=a × b × c
• note that factoring a number is relatively hard
compared to multiplying the factors together
to generate the number
• the prime factorisation of a number n is when
its written as a product of primes
– eg. 91=7×13 ; 3600=24×32×52
Relatively Prime Numbers & GCD
• two numbers a, b are relatively prime if
have no common divisors apart from 1
– eg. 8 & 15 are relatively prime since factors of 8
are 1,2,4,8 and of 15 are 1,3,5,15 and 1 is the only
common factor
• conversely can determine the greatest
common divisor by comparing their prime
factorizations and using least powers
– eg. 300=21×31×52 18=21×32 hence
GCD(18,300)=21×31×50=6
Fermat's Theorem
• ap-1 mod p = 1
– where p is prime and gcd(a,p)=1
• also known as Fermat’s Little Theorem
• useful in public key and primality testing
Euler Totient Function ø(n)
• when doing arithmetic modulo n
• complete set of residues is: 0..n-1
• reduced set of residues is those numbers
(residues) which are relatively prime to n
– eg for n=10,
– complete set of residues is {0,1,2,3,4,5,6,7,8,9}
– reduced set of residues is {1,3,7,9}
• number of elements in reduced set of residues
is called the Euler Totient Function ø(n)
Euler Totient Function ø(n)
• to compute ø(n) need to count number of
elements to be excluded
• in general need prime factorization, but
– for p (p prime) ø(p) = p-1
– for p.q (p,q prime) ø(p.q) = (p-1)(q-1)
• eg.
– ø(37) = 36
– ø(21) = (3–1)×(7–1) = 2×6 = 12
Euler's Theorem
• a generalisation of Fermat's Theorem
• aø(n)mod N = 1
– where gcd(a,N)=1
• eg.
– a=3;n=10; ø(10)=4;
– hence 34 = 81 = 1 mod 10
– a=2;n=11; ø(11)=10;
– hence 210 = 1024 = 1 mod 11
Slide   c2 + c3

More Related Content

What's hot

Giáo Trình Java Cơ Bản ( Vietnamese)
Giáo Trình Java Cơ Bản ( Vietnamese)Giáo Trình Java Cơ Bản ( Vietnamese)
Giáo Trình Java Cơ Bản ( Vietnamese)
Đông Lương
 
Bao cao session hijacking it-slideshares.blogspot.com
Bao cao session hijacking it-slideshares.blogspot.comBao cao session hijacking it-slideshares.blogspot.com
Bao cao session hijacking it-slideshares.blogspot.com
phanleson
 
[Cntt] bài giảng kĩ thuật vi xử lí
[Cntt] bài giảng kĩ thuật vi xử lí[Cntt] bài giảng kĩ thuật vi xử lí
[Cntt] bài giảng kĩ thuật vi xử lí
Hong Phuoc Nguyen
 
Giáo trình Lập trình C căn bản - Aptech
Giáo trình Lập trình C căn bản - AptechGiáo trình Lập trình C căn bản - Aptech
Giáo trình Lập trình C căn bản - AptechMasterCode.vn
 
Họ vi xử lí 8086 intel
Họ vi xử lí 8086 intelHọ vi xử lí 8086 intel
Họ vi xử lí 8086 intel
dark_valley
 
Ktmt chuong 5
Ktmt chuong 5Ktmt chuong 5
Ktmt chuong 5
Tùng Tò Mò
 
Hop ngu MIP
Hop ngu MIPHop ngu MIP
Hop ngu MIP
satlove02
 
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại viĐề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại viĐỗ Đức Hùng
 
Bài Tập Xử Lí Tín Hiệu Số
Bài Tập Xử Lí Tín Hiệu SốBài Tập Xử Lí Tín Hiệu Số
Bài Tập Xử Lí Tín Hiệu Số
viethung094
 
An toàn hệ điều hành PTIT
An toàn hệ điều hành PTITAn toàn hệ điều hành PTIT
An toàn hệ điều hành PTIT
Phạm Trung Đức
 
[Giao trinh] vi dieu-khien_8051 - dh tra vinh
[Giao trinh]   vi dieu-khien_8051 - dh tra vinh[Giao trinh]   vi dieu-khien_8051 - dh tra vinh
[Giao trinh] vi dieu-khien_8051 - dh tra vinh
cry_viem
 
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNGBÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Trường Phạm
 
Các loại mã đường truyền và ứng dụng neptune
Các loại mã đường truyền và ứng dụng neptuneCác loại mã đường truyền và ứng dụng neptune
Các loại mã đường truyền và ứng dụng neptune給与 クレジット
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
Võ Phúc
 
Tóm tắt về track, sector, cluster, cylinder
Tóm tắt về track, sector, cluster, cylinderTóm tắt về track, sector, cluster, cylinder
Tóm tắt về track, sector, cluster, cylinder
hoamonkhach
 
Kiến trúc máy tính
Kiến trúc máy tínhKiến trúc máy tính
Kiến trúc máy tính
LE The Vinh
 
Đề cương ôn tập mạng máy tính
Đề cương ôn tập mạng máy tínhĐề cương ôn tập mạng máy tính
Đề cương ôn tập mạng máy tính
Hưởng Nguyễn
 
Ch07
Ch07Ch07
trắc nghiệm ôn tập thông tin di động
trắc nghiệm ôn tập thông tin di độngtrắc nghiệm ôn tập thông tin di động
trắc nghiệm ôn tập thông tin di động
PTIT HCM
 

What's hot (20)

Giáo Trình Java Cơ Bản ( Vietnamese)
Giáo Trình Java Cơ Bản ( Vietnamese)Giáo Trình Java Cơ Bản ( Vietnamese)
Giáo Trình Java Cơ Bản ( Vietnamese)
 
Bao cao session hijacking it-slideshares.blogspot.com
Bao cao session hijacking it-slideshares.blogspot.comBao cao session hijacking it-slideshares.blogspot.com
Bao cao session hijacking it-slideshares.blogspot.com
 
[Cntt] bài giảng kĩ thuật vi xử lí
[Cntt] bài giảng kĩ thuật vi xử lí[Cntt] bài giảng kĩ thuật vi xử lí
[Cntt] bài giảng kĩ thuật vi xử lí
 
Giáo trình Lập trình C căn bản - Aptech
Giáo trình Lập trình C căn bản - AptechGiáo trình Lập trình C căn bản - Aptech
Giáo trình Lập trình C căn bản - Aptech
 
Họ vi xử lí 8086 intel
Họ vi xử lí 8086 intelHọ vi xử lí 8086 intel
Họ vi xử lí 8086 intel
 
Ktmt chuong 5
Ktmt chuong 5Ktmt chuong 5
Ktmt chuong 5
 
Hop ngu MIP
Hop ngu MIPHop ngu MIP
Hop ngu MIP
 
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại viĐề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
 
Bài Tập Xử Lí Tín Hiệu Số
Bài Tập Xử Lí Tín Hiệu SốBài Tập Xử Lí Tín Hiệu Số
Bài Tập Xử Lí Tín Hiệu Số
 
An toàn hệ điều hành PTIT
An toàn hệ điều hành PTITAn toàn hệ điều hành PTIT
An toàn hệ điều hành PTIT
 
[Giao trinh] vi dieu-khien_8051 - dh tra vinh
[Giao trinh]   vi dieu-khien_8051 - dh tra vinh[Giao trinh]   vi dieu-khien_8051 - dh tra vinh
[Giao trinh] vi dieu-khien_8051 - dh tra vinh
 
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNGBÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
 
Các loại mã đường truyền và ứng dụng neptune
Các loại mã đường truyền và ứng dụng neptuneCác loại mã đường truyền và ứng dụng neptune
Các loại mã đường truyền và ứng dụng neptune
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
 
Tóm tắt về track, sector, cluster, cylinder
Tóm tắt về track, sector, cluster, cylinderTóm tắt về track, sector, cluster, cylinder
Tóm tắt về track, sector, cluster, cylinder
 
Kiến trúc máy tính
Kiến trúc máy tínhKiến trúc máy tính
Kiến trúc máy tính
 
Đề cương ôn tập mạng máy tính
Đề cương ôn tập mạng máy tínhĐề cương ôn tập mạng máy tính
Đề cương ôn tập mạng máy tính
 
Ch07
Ch07Ch07
Ch07
 
Tổng quan về FPGA
Tổng quan về FPGATổng quan về FPGA
Tổng quan về FPGA
 
trắc nghiệm ôn tập thông tin di động
trắc nghiệm ôn tập thông tin di độngtrắc nghiệm ôn tập thông tin di động
trắc nghiệm ôn tập thông tin di động
 

Similar to Slide c2 + c3

Modern block cipher
Modern block cipherModern block cipher
Modern block cipher
Hoang Nguyen
 
Chuong 02 he thong so
Chuong 02 he thong soChuong 02 he thong so
Chuong 02 he thong so
Anh Ngoc Phan
 
Giáo trình kỹ thuật số chương 1-2.doc
Giáo trình kỹ thuật số chương 1-2.docGiáo trình kỹ thuật số chương 1-2.doc
Giáo trình kỹ thuật số chương 1-2.doc
Man_Ebook
 
Giao trinh ctmt
Giao trinh ctmtGiao trinh ctmt
Giao trinh ctmt
canh071179
 
Gt kts
Gt kts Gt kts
Gt kts
Khoatg Tran
 
Kiến trúc máy tính và hợp ngữ bài 08
Kiến trúc máy tính và hợp ngữ bài 08Kiến trúc máy tính và hợp ngữ bài 08
Kiến trúc máy tính và hợp ngữ bài 08
Nhóc Nhóc
 
01 ma hoa
01 ma hoa01 ma hoa
01 ma hoa
quangdao77
 
Chuong1
Chuong1Chuong1
Chuong1
saobang1606
 
04 Des Aes
04 Des Aes04 Des Aes
04 Des Aesmeorambo
 
Tự học PLC CP1L
Tự học PLC CP1LTự học PLC CP1L
Tự học PLC CP1L
quanglocbp
 
Channel coding chuong 6 ma hoa kenh phan ma chap.ppt
Channel coding chuong 6 ma hoa kenh phan ma chap.pptChannel coding chuong 6 ma hoa kenh phan ma chap.ppt
Channel coding chuong 6 ma hoa kenh phan ma chap.ppt
novrain1
 
Chuong 1- KN HE THONG SO VA MA.pdf
Chuong 1- KN HE THONG SO VA MA.pdfChuong 1- KN HE THONG SO VA MA.pdf
Chuong 1- KN HE THONG SO VA MA.pdf
Chuot Thien Linh
 
Dientuso Sld
Dientuso SldDientuso Sld
Dientuso Sld
hoadktd
 
AES-DES.pptx
AES-DES.pptxAES-DES.pptx
AES-DES.pptx
ssuserbc08fb
 
Tim hieu thanh ghi in asm
Tim hieu thanh ghi in asmTim hieu thanh ghi in asm
Tim hieu thanh ghi in asm
My Đá
 
Lop10 _Chương1_ Bài 2 : Thông Tin Và Dữ Liệu
Lop10 _Chương1_ Bài 2 : Thông Tin Và Dữ Liệu Lop10 _Chương1_ Bài 2 : Thông Tin Và Dữ Liệu
Lop10 _Chương1_ Bài 2 : Thông Tin Và Dữ Liệu
SP Tin K34
 
CHƯƠNG I_Lop10 bai2_THÔNG TIN VÀ DỮ LIỆU
CHƯƠNG I_Lop10  bai2_THÔNG TIN VÀ DỮ LIỆUCHƯƠNG I_Lop10  bai2_THÔNG TIN VÀ DỮ LIỆU
CHƯƠNG I_Lop10 bai2_THÔNG TIN VÀ DỮ LIỆU
SP Tin K34
 

Similar to Slide c2 + c3 (20)

Modern block cipher
Modern block cipherModern block cipher
Modern block cipher
 
Chuong 02 he thong so
Chuong 02 he thong soChuong 02 he thong so
Chuong 02 he thong so
 
Giáo trình kỹ thuật số chương 1-2.doc
Giáo trình kỹ thuật số chương 1-2.docGiáo trình kỹ thuật số chương 1-2.doc
Giáo trình kỹ thuật số chương 1-2.doc
 
Giao trinh ctmt
Giao trinh ctmtGiao trinh ctmt
Giao trinh ctmt
 
Gt kts
Gt kts Gt kts
Gt kts
 
Kiến trúc máy tính và hợp ngữ bài 08
Kiến trúc máy tính và hợp ngữ bài 08Kiến trúc máy tính và hợp ngữ bài 08
Kiến trúc máy tính và hợp ngữ bài 08
 
01 ma hoa
01 ma hoa01 ma hoa
01 ma hoa
 
Chuong1
Chuong1Chuong1
Chuong1
 
04 Des Aes
04 Des Aes04 Des Aes
04 Des Aes
 
Tự học PLC CP1L
Tự học PLC CP1LTự học PLC CP1L
Tự học PLC CP1L
 
Phan1 chuong1
Phan1 chuong1Phan1 chuong1
Phan1 chuong1
 
Channel coding chuong 6 ma hoa kenh phan ma chap.ppt
Channel coding chuong 6 ma hoa kenh phan ma chap.pptChannel coding chuong 6 ma hoa kenh phan ma chap.ppt
Channel coding chuong 6 ma hoa kenh phan ma chap.ppt
 
Chuong 1- KN HE THONG SO VA MA.pdf
Chuong 1- KN HE THONG SO VA MA.pdfChuong 1- KN HE THONG SO VA MA.pdf
Chuong 1- KN HE THONG SO VA MA.pdf
 
Dientuso Sld
Dientuso SldDientuso Sld
Dientuso Sld
 
AES-DES.pptx
AES-DES.pptxAES-DES.pptx
AES-DES.pptx
 
Tim hieu thanh ghi in asm
Tim hieu thanh ghi in asmTim hieu thanh ghi in asm
Tim hieu thanh ghi in asm
 
Ch06
Ch06Ch06
Ch06
 
Ch06
Ch06Ch06
Ch06
 
Lop10 _Chương1_ Bài 2 : Thông Tin Và Dữ Liệu
Lop10 _Chương1_ Bài 2 : Thông Tin Và Dữ Liệu Lop10 _Chương1_ Bài 2 : Thông Tin Và Dữ Liệu
Lop10 _Chương1_ Bài 2 : Thông Tin Và Dữ Liệu
 
CHƯƠNG I_Lop10 bai2_THÔNG TIN VÀ DỮ LIỆU
CHƯƠNG I_Lop10  bai2_THÔNG TIN VÀ DỮ LIỆUCHƯƠNG I_Lop10  bai2_THÔNG TIN VÀ DỮ LIỆU
CHƯƠNG I_Lop10 bai2_THÔNG TIN VÀ DỮ LIỆU
 

More from Huynh MVT

MPLS-based Layer 3 VPNs.pdf
MPLS-based Layer 3 VPNs.pdfMPLS-based Layer 3 VPNs.pdf
MPLS-based Layer 3 VPNs.pdf
Huynh MVT
 
MPLS Virtual Private Networks.pdf
MPLS Virtual Private Networks.pdfMPLS Virtual Private Networks.pdf
MPLS Virtual Private Networks.pdf
Huynh MVT
 
mplste-130112120119-phpapp02.pdf
mplste-130112120119-phpapp02.pdfmplste-130112120119-phpapp02.pdf
mplste-130112120119-phpapp02.pdf
Huynh MVT
 
MPLS-VPN-Technology.pdf
MPLS-VPN-Technology.pdfMPLS-VPN-Technology.pdf
MPLS-VPN-Technology.pdf
Huynh MVT
 
mpls.pdf
mpls.pdfmpls.pdf
mpls.pdf
Huynh MVT
 
TÀI LIỆU BỒI DƯỠNG ĐẢNG VIÊN MỚI.2021.pdf
TÀI LIỆU BỒI DƯỠNG ĐẢNG VIÊN MỚI.2021.pdfTÀI LIỆU BỒI DƯỠNG ĐẢNG VIÊN MỚI.2021.pdf
TÀI LIỆU BỒI DƯỠNG ĐẢNG VIÊN MỚI.2021.pdf
Huynh MVT
 
T-REC-G.984.3-200402-S!!PDF-E.pdf
T-REC-G.984.3-200402-S!!PDF-E.pdfT-REC-G.984.3-200402-S!!PDF-E.pdf
T-REC-G.984.3-200402-S!!PDF-E.pdf
Huynh MVT
 
WIMAX-THUYET-TRINH.pptx
WIMAX-THUYET-TRINH.pptxWIMAX-THUYET-TRINH.pptx
WIMAX-THUYET-TRINH.pptx
Huynh MVT
 
Nguyen dinh phu pic ccs
Nguyen dinh phu pic ccsNguyen dinh phu pic ccs
Nguyen dinh phu pic ccs
Huynh MVT
 
Mang va-truyen-so-lieu
Mang va-truyen-so-lieuMang va-truyen-so-lieu
Mang va-truyen-so-lieu
Huynh MVT
 
Ky thuat-chuyen-mach -ky-thuat-chuyen-mach-1
Ky thuat-chuyen-mach -ky-thuat-chuyen-mach-1Ky thuat-chuyen-mach -ky-thuat-chuyen-mach-1
Ky thuat-chuyen-mach -ky-thuat-chuyen-mach-1
Huynh MVT
 
Dien tu tuong tu ii
Dien tu tuong tu iiDien tu tuong tu ii
Dien tu tuong tu ii
Huynh MVT
 
Bài giảng-mạng-viễn-thông-2016
Bài giảng-mạng-viễn-thông-2016Bài giảng-mạng-viễn-thông-2016
Bài giảng-mạng-viễn-thông-2016
Huynh MVT
 
Kien truc-co-ban-cua-stm32-arm-cortex-m3
Kien truc-co-ban-cua-stm32-arm-cortex-m3Kien truc-co-ban-cua-stm32-arm-cortex-m3
Kien truc-co-ban-cua-stm32-arm-cortex-m3
Huynh MVT
 
Bài giảng môn học phương pháp nghiên cứu khoa học
Bài giảng môn học phương pháp nghiên cứu khoa họcBài giảng môn học phương pháp nghiên cứu khoa học
Bài giảng môn học phương pháp nghiên cứu khoa học
Huynh MVT
 
Vxl ch03-8051-3.1 3.2-v03
Vxl ch03-8051-3.1 3.2-v03Vxl ch03-8051-3.1 3.2-v03
Vxl ch03-8051-3.1 3.2-v03
Huynh MVT
 
Ngon ngu c theo chuan ansi
Ngon ngu c theo chuan ansiNgon ngu c theo chuan ansi
Ngon ngu c theo chuan ansi
Huynh MVT
 
Arduino cho người mới bắt đầu
Arduino cho người mới bắt đầuArduino cho người mới bắt đầu
Arduino cho người mới bắt đầu
Huynh MVT
 
Tổng quan về Intenet of Thing
Tổng quan về Intenet of ThingTổng quan về Intenet of Thing
Tổng quan về Intenet of Thing
Huynh MVT
 
Experimental Evaluation of Distortion in Amplitude Modulation Techniques for ...
Experimental Evaluation of Distortion in Amplitude Modulation Techniques for ...Experimental Evaluation of Distortion in Amplitude Modulation Techniques for ...
Experimental Evaluation of Distortion in Amplitude Modulation Techniques for ...
Huynh MVT
 

More from Huynh MVT (20)

MPLS-based Layer 3 VPNs.pdf
MPLS-based Layer 3 VPNs.pdfMPLS-based Layer 3 VPNs.pdf
MPLS-based Layer 3 VPNs.pdf
 
MPLS Virtual Private Networks.pdf
MPLS Virtual Private Networks.pdfMPLS Virtual Private Networks.pdf
MPLS Virtual Private Networks.pdf
 
mplste-130112120119-phpapp02.pdf
mplste-130112120119-phpapp02.pdfmplste-130112120119-phpapp02.pdf
mplste-130112120119-phpapp02.pdf
 
MPLS-VPN-Technology.pdf
MPLS-VPN-Technology.pdfMPLS-VPN-Technology.pdf
MPLS-VPN-Technology.pdf
 
mpls.pdf
mpls.pdfmpls.pdf
mpls.pdf
 
TÀI LIỆU BỒI DƯỠNG ĐẢNG VIÊN MỚI.2021.pdf
TÀI LIỆU BỒI DƯỠNG ĐẢNG VIÊN MỚI.2021.pdfTÀI LIỆU BỒI DƯỠNG ĐẢNG VIÊN MỚI.2021.pdf
TÀI LIỆU BỒI DƯỠNG ĐẢNG VIÊN MỚI.2021.pdf
 
T-REC-G.984.3-200402-S!!PDF-E.pdf
T-REC-G.984.3-200402-S!!PDF-E.pdfT-REC-G.984.3-200402-S!!PDF-E.pdf
T-REC-G.984.3-200402-S!!PDF-E.pdf
 
WIMAX-THUYET-TRINH.pptx
WIMAX-THUYET-TRINH.pptxWIMAX-THUYET-TRINH.pptx
WIMAX-THUYET-TRINH.pptx
 
Nguyen dinh phu pic ccs
Nguyen dinh phu pic ccsNguyen dinh phu pic ccs
Nguyen dinh phu pic ccs
 
Mang va-truyen-so-lieu
Mang va-truyen-so-lieuMang va-truyen-so-lieu
Mang va-truyen-so-lieu
 
Ky thuat-chuyen-mach -ky-thuat-chuyen-mach-1
Ky thuat-chuyen-mach -ky-thuat-chuyen-mach-1Ky thuat-chuyen-mach -ky-thuat-chuyen-mach-1
Ky thuat-chuyen-mach -ky-thuat-chuyen-mach-1
 
Dien tu tuong tu ii
Dien tu tuong tu iiDien tu tuong tu ii
Dien tu tuong tu ii
 
Bài giảng-mạng-viễn-thông-2016
Bài giảng-mạng-viễn-thông-2016Bài giảng-mạng-viễn-thông-2016
Bài giảng-mạng-viễn-thông-2016
 
Kien truc-co-ban-cua-stm32-arm-cortex-m3
Kien truc-co-ban-cua-stm32-arm-cortex-m3Kien truc-co-ban-cua-stm32-arm-cortex-m3
Kien truc-co-ban-cua-stm32-arm-cortex-m3
 
Bài giảng môn học phương pháp nghiên cứu khoa học
Bài giảng môn học phương pháp nghiên cứu khoa họcBài giảng môn học phương pháp nghiên cứu khoa học
Bài giảng môn học phương pháp nghiên cứu khoa học
 
Vxl ch03-8051-3.1 3.2-v03
Vxl ch03-8051-3.1 3.2-v03Vxl ch03-8051-3.1 3.2-v03
Vxl ch03-8051-3.1 3.2-v03
 
Ngon ngu c theo chuan ansi
Ngon ngu c theo chuan ansiNgon ngu c theo chuan ansi
Ngon ngu c theo chuan ansi
 
Arduino cho người mới bắt đầu
Arduino cho người mới bắt đầuArduino cho người mới bắt đầu
Arduino cho người mới bắt đầu
 
Tổng quan về Intenet of Thing
Tổng quan về Intenet of ThingTổng quan về Intenet of Thing
Tổng quan về Intenet of Thing
 
Experimental Evaluation of Distortion in Amplitude Modulation Techniques for ...
Experimental Evaluation of Distortion in Amplitude Modulation Techniques for ...Experimental Evaluation of Distortion in Amplitude Modulation Techniques for ...
Experimental Evaluation of Distortion in Amplitude Modulation Techniques for ...
 

Recently uploaded

100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
khanhthy3000
 
Quan Tri Doi Moi Sang Tao_ Innovation Management
Quan Tri Doi Moi Sang Tao_ Innovation ManagementQuan Tri Doi Moi Sang Tao_ Innovation Management
Quan Tri Doi Moi Sang Tao_ Innovation Management
ChuPhan32
 
Sinh-12-Chuyên-2022-2023.dành cho ôn thi hsg
Sinh-12-Chuyên-2022-2023.dành cho ôn thi hsgSinh-12-Chuyên-2022-2023.dành cho ôn thi hsg
Sinh-12-Chuyên-2022-2023.dành cho ôn thi hsg
vivan030207
 
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
Nguyen Thanh Tu Collection
 
insulin cho benh nhan nam vien co tang duong huyet
insulin cho benh nhan nam vien co tang duong huyetinsulin cho benh nhan nam vien co tang duong huyet
insulin cho benh nhan nam vien co tang duong huyet
lmhong80
 
LỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptx
LỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptxLỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptx
LỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptx
12D241NguynPhmMaiTra
 
Smartbiz_He thong MES nganh may mac_2024june
Smartbiz_He thong MES nganh may mac_2024juneSmartbiz_He thong MES nganh may mac_2024june
Smartbiz_He thong MES nganh may mac_2024june
SmartBiz
 
Ngân hàng điện tử số ptit - giảng viên cô Hà
Ngân hàng điện tử số ptit - giảng viên cô HàNgân hàng điện tử số ptit - giảng viên cô Hà
Ngân hàng điện tử số ptit - giảng viên cô Hà
onLongV
 
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nayẢnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
chinhkt50
 
Chương 3 Linh kien ban dan và KD dien tu - Copy.ppt
Chương 3 Linh kien ban dan và KD dien tu - Copy.pptChương 3 Linh kien ban dan và KD dien tu - Copy.ppt
Chương 3 Linh kien ban dan và KD dien tu - Copy.ppt
PhiTrnHngRui
 

Recently uploaded (10)

100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
 
Quan Tri Doi Moi Sang Tao_ Innovation Management
Quan Tri Doi Moi Sang Tao_ Innovation ManagementQuan Tri Doi Moi Sang Tao_ Innovation Management
Quan Tri Doi Moi Sang Tao_ Innovation Management
 
Sinh-12-Chuyên-2022-2023.dành cho ôn thi hsg
Sinh-12-Chuyên-2022-2023.dành cho ôn thi hsgSinh-12-Chuyên-2022-2023.dành cho ôn thi hsg
Sinh-12-Chuyên-2022-2023.dành cho ôn thi hsg
 
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
 
insulin cho benh nhan nam vien co tang duong huyet
insulin cho benh nhan nam vien co tang duong huyetinsulin cho benh nhan nam vien co tang duong huyet
insulin cho benh nhan nam vien co tang duong huyet
 
LỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptx
LỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptxLỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptx
LỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptx
 
Smartbiz_He thong MES nganh may mac_2024june
Smartbiz_He thong MES nganh may mac_2024juneSmartbiz_He thong MES nganh may mac_2024june
Smartbiz_He thong MES nganh may mac_2024june
 
Ngân hàng điện tử số ptit - giảng viên cô Hà
Ngân hàng điện tử số ptit - giảng viên cô HàNgân hàng điện tử số ptit - giảng viên cô Hà
Ngân hàng điện tử số ptit - giảng viên cô Hà
 
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nayẢnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
 
Chương 3 Linh kien ban dan và KD dien tu - Copy.ppt
Chương 3 Linh kien ban dan và KD dien tu - Copy.pptChương 3 Linh kien ban dan và KD dien tu - Copy.ppt
Chương 3 Linh kien ban dan và KD dien tu - Copy.ppt
 

Slide c2 + c3

  • 1.
  • 2. Mã hóa bảo mật khóa đối xứng (Symmetric Key Encryption) A encrypt B decrypt plaintext ciphertext plaintext M C = E(M, k). M = D(C, k). secret key k secret key k Confidential Our agents have installed hidden microphones and cameras in the embassy of country X. Confidential Our agents have installed hidden microphones and cameras in the embassy of country X
  • 3. Mật mã khối và Mật mã luồng dữ liệu Ciphertext blocks Các khối bản tin gốc (Plaintext blocks) Block cipher Key n bits Key Ciphertext stream Plaintext stream Stream cipher Bộ mật mã khối Key stream n bits Bộ sinh (thiết lập) Khóa Mật mã khối Mật mã luồng dữ liệu
  • 4. • Bản tin được cần mật mã hóa được phân chia thành các khối có độ dài k bit (ví dụ 64 bít). • Ánh xạ (1-1) k bít khối bản tin gốc thành k bít bản mã Ví dụ: với k = 3: input output 000 110 001 111 010 101 011 100 input output 100 011 101 010 110 000 111 001 Các hệ mật mã khối
  • 5. • Có bao nhiêu khả năng ánh xạ một khối bản tin có độ dài k=3? – Có bao nhiêu bản tin có độ dài 3-bit? (23) – Có bao nhiêu phép ánh xạ đối với các bản tin đầu vào có độ dài 3- bit? (8!) Số khả năng là: 40,320! • Với bản tin gốc độ dài k, thì số khả năng ánh xạ là 2k!; • Vấn đề phát sinh : (ví dụ với k = 64) – Hệ thống cần lưu trữ bảng ánh xạ có 264 phần tử, mỗi phần tử có độ dài 64 bit  rất lớn Các hệ mật mã khối
  • 6. Các thuộc tính của mật mã khối • Kích thước khối: khối có kích thước càng lớn thì tính bảo mật càng cao. • Kích thước khóa: Khóa có kích thước càng lớn thì tính bảo mật càng cao. • Số lượng vòng mã hóa : Số vòng (lần) mã hóa càng tăng thì tình bảo mật càng cao. • Các chế độ mã hóa : chỉ định với các bản tin có kích thước lớn sẽ được mã hóa như thế nào? 3
  • 7. Cấu trúc mã khối cơ bản Feistel Horst Feistel’s (1915 – 1990) Là cấu trúc mật mã cơ bản nhất và được áp dụng trong nhiều thuật toán mật mã phổ biến hiện nay như DES, Blowfish, IDEA Feistel chưa phải là một thuật toán mật mã, mà chỉ là một mô hình được xây dựng phù hợp cho việc thiết kế các thiết bị mật mã bằng phần cứng Nguyên lý hoạt động của Feistel dựa trên việc hoán vị và thay thế nhiều lần trên khối dữ liệu gốc Tất các các thao tác trong cấu trúc Feistel, kể cả hàm F, đều không cần phải có thao tác ngược.
  • 8. Cấu trúc mã khối Feistel • Encryption: – L1= R0 R1 = L0 ⊕ f1(R0) – L2 = R1 R2 = L1 ⊕ f2(R1) L0 R0 f1(•) f2(•) f1(•) L1 Ld-1 Rd R1 Rd-1 Ld … – Ld = Rd-1 Rd = Ld-1 ⊕ fd(Rd-1) • Decryption: – Rd-1 = Ld Ld-1 = Rd ⊕ fd(Ld) … – R0 = L1; L0 = R1 ⊕ f1(L1) Thông tin gốc được cắt thành từng khối có kích thước 2w bit (tức là một số bit chẵn). Mỗi khối bit được xử lý thành 2 phần bằng nhau: w bit bên trái (L) và w bit bên phải (R).
  • 9. Quá trình giải mã của Feistel tương tự như quá trình mã hoá, chỉ khác ở chỗ thứ tự các khoá phụ đưa vào tại mỗi vòng bị đảo ngược so với quá trình mã hoá, nghĩa là khoá Kn sẽ đưa vào vòng thứ nhất, khoá K1 đưa vào vòng cuối cùng Nguyên lý hoạt động của Feistel dựa trên việc hoán vị và thay thế nhiều lần trên khối dữ liệu gốc Cấu trúc mã khối Feistel
  • 10. Các thuộc tính của cấu trúc mã hóa Feistel Kích thước khối dữ liệu đầu vào (block size) Chiều dài khoá (key size) Số vòng lặp (number of rounds) Thuật toán sinh khoá phụ (subkey generation algorithm) Hàm F thực hiện tại mỗi vòng (round function) Đạt tốc độ tối đa khi cài đặt bằng phần mềm Dễ phân tích và thực hiện
  • 11. Mã TinyDES Mã TinyDES có các tính chất sau: Là mã thuộc hệ mã Feistel gồm 3 vòng Kích thước của khối là 8 bít Kích thước khóa là 8 bít Mỗi vòng của TinyDES dùng khóa con có kích thước 6 bít được trích ra từ khóa chính. Các vòng Feistel của mã TinyDES
  • 12. Các vòng của TinyDES Hàm F của Feistel là: F(Ri-1, Ki) = P-box(S-box(Expand( Ri-1) Ki)) Hàm Expand vừa mở rộng vừa hoán vị Ri-1 từ 4 bít lên 6 bít Hàm S-boxes biến đổi một số 6 bít đầu vào thành một số 4 bít đầu ra Hàm P-box là một hoán vị 4 bít
  • 13. Các vòng của TinyDES Expand: gọi 4 bít của Ri-1 là b0b1b2b3. Hàm Expand hoán vị và mở rộng 4 bít thành 6 bít cho ra kết quả: b2b3b1b2b1b0. Ví dụ: R0 = 0110  Expand(R0) = 101110 S-box: Gọi b0b1b2b3b4b5 là 6 bít đầu vào của S-box, ứng với mỗi trường hợp của 6 bít đầu vào sẽ có 4 bít đầu ra. Việc tính các bít đầu ra dựa trên bảng sau: Ví dụ: X = 101010. Tra bảng ta có S-box(X) = 0110. P-box: thực hiện hoán vị 4 bít đầu b0b1b2b3 cho ra kết quả b2b0b3b1.
  • 14. Thuật toán sinh khóa con của TinyDES Khóa K 8 bít ban đầu được chia thành 2 nửa trái phải KL0 và KR0 , mỗi nửa có kích thước 4 bít. Tại vòng thứ nhất KL0 và KR0 được dịch vòng trái 1 bít để có được KL1 và KR1. Tại vòng thứ hai KL1 và KR1 được dịch vòng trái 2 bít để có được KL2 và KR2. Tại vòng thứ 3 KL2 và KR2 được dịch vòng trái 1 bít để có KL3 và KR3. Cuối cùng khóa Ki của mỗi vòng được tạo ra bằng cách hoán vị và nén (compress) 8 bít của KLi và KRi (k0k1k2k3k4k5k6k7) thành kết quả gồm 6 bít : k5k1k3k2k7k0.
  • 15. Ví dụ mã TinyDES Ví dụ: mã hóa bản rõ P = 0101.1100 (5C) với khóa K = 1001.1010 L0 = 0101, R0 = 1100, KL0 = 1001, KR0 = 1010 Vòng 1:  L1 = R0 = 1100, Expand(R0) = 001011  KL1 = KL0 <<1 = 0011, KR1 =KR0 << 1 = 0101  K1 = Compress(KL1KR1) = 101110 Nén (Compress) 8 bít của KLi và KRi (k0k1k2k3k4k5k6k7) thành kết quả gồm 6 bít : k5k1k3k2k7k0 E(b0b1b2b3)  b2b3b1b2b1b0  Expand(R0)  K1 = 100101  S-box(100101) = 1000  F1 = P-box(1000) = 0100  R1 = L0  F1 = 0001 P-Box(b0b1b2b3)  b2b0b3b1
  • 16. Ví dụ mã TinyDES L1 = 1100, R1 = 0001, KL1 = 0011, KR1 = 0101 Vòng 2:  L2 = R1 = 0001, Expand(R1) = 010000  KL2 = KL1 <<2 = 1100, KR2 =KR1 << 2 = 0101  K2 = Compress(KL2KR2) = 110011 Nén (Compress) 8 bít của KLi và KRi (k0k1k2k3k4k5k6k7) thành kết quả gồm 6 bít : k5k1k3k2k7k0 E(b0b1b2b3)  b2b3b1b2b1b0  Expand(R1)  K2 = 100011  S-box(100011) = 1100  F2 = P-box(1100) = 0101  R2 = L1  F2 = 1001 P-Box(b0b1b2b3)  b2b0b3b1
  • 17. Ví dụ mã TinyDES  C = L3 R3 = 1001 0010 Vòng 3:  L3 = R2 = 1001, Expand(R2) = 010001  KL3 = KL2 <<1 = 1001, KR3 =KR2 << 1 = 1010  K3 = Compress(KL3KR3) = 001001 Nén (Compress) 8 bít của KLi và KRi (k0k1k2k3k4k5k6k7) thành kết quả gồm 6 bít : k5k1k3k2k7k0 E(b0b1b2b3)  b2b3b1b2b1b0  Expand(R2)  K3 = 011000  S-box(011000) = 0101  F3 = P-box(0101) = 0011  R3 = L2  F3 = 0010 P-Box(b0b1b2b3)  b2b0b3b1 L2 = 0001, R2 = 1001, KL2 = 1100, KR2 = 0101
  • 18. 8 Ciphertext 64 bit DES 56 bit Key Plaintext 64 bit Mật mã DES - Kích thước khối: 64 bit - Chiều dài khoá: 64 bit, thực ra là 56 bit như sẽ trình bày sau đây - Số vòng lặp: 16 vòng - Thuật toán sinh khoá phụ: kết hợp phép dịch trái và hoán vị - Hàm F: kết hợp các phép XOR, hoán vị và thay thế (S-box). Các thuộc tính:
  • 19. 1 2 3 4 5 6 7 8 first 7 bits Parity-check bits Bít kiểm tra được xác định thông qua tính XOR của 7 bít đầu 9 5758596061626364 7 bits ... Trong mật mã DES chỉ định chiều dài khóa là 64 bit: • Bao gồm 8 byte; trong mỗi byte thì bít thứ 8 là bít kiểm tra chẵn lẻ (parity-check bit Chiều dài khóa trong DES
  • 21. Decryption Encryption R0 R1=L0 f (R0,K0) R2=L1 f (R1,K1)   Key K0 f Key K1 bản rõ f Bản mã Cấu trúc Feistel 2 tầng trong DES L0 L1=R0 L2=R1
  • 22. IP(x) = L0R0 Li = Ri-1 Ri = Li-1 ⊕ f(Ri-1, Ki) y = IP-1(R16L16) 11 Với bản rõ cho trước x, một xâu bit x0 sẽ được xây dựng bằng cách hoán vị các bit của x theo phép hoán vị cố định ban đầu IP. Trong đó L0 gồm 32 bit đầu và R0 là 32 bit cuối.   là phép loại trừ của hai xâu bit (Cộng module 2)  k1, k2, …, k16 là các xâu bit có độ dài 48 được tính như 1 hàm của khóa k (ki chính là một phép chọn hoán vị bit trong k). Thuật toán mật mã DES
  • 23. Phép hoán vị ban đầu IP 58 60 62 64 57 59 61 63 50 52 54 56 49 51 53 55 42 44 46 48 41 43 45 47 34 36 38 40 33 35 37 39 26 28 30 32 25 27 29 31 18 20 22 24 17 19 21 23 10 12 14 16 9 11 13 15 2 4 6 8 1 3 5 7 Bảng chỉ định cách thức hoán vị đầu vào của khối bản tin 64 bít. Ví dụ: Bảng này có ý nghĩa là bit thứ 58 của x là bit đầu tiên của IP(x); bit thứ 50 của x là bit thứ 2 của IP(x) Bộ chuyển vị IP Hoán vị khởi đầu nhằm đổi chỗ khối dữ liệu vào , thay đổi vị trí của các bít trong khối dữ liệu vào.
  • 24. Phép hoán vị ngược IP-1 40 39 38 37 36 35 34 33 8 7 6 5 4 3 2 1 48 47 46 45 44 43 42 41 16 15 14 13 12 11 10 9 56 55 54 53 52 51 50 49 24 23 22 21 20 19 18 17 64 63 62 61 60 59 58 57 32 31 30 29 28 27 26 25 Tương tự như bảng hoán vị ban đầu Tại vòng thứ 16, R16 đổi chỗ cho L16. Sau đó ghép 2 nửa R16, L16 cho đi qua hoàn vị nghịch đảo của hoàn vị IP sẽ tính được bản mã. Bản mã cũng có độ dài 64 bít.
  • 25. Hoạt động của hàm F tại từng vòng Từ L0 và R0 sẽ lặp 16 vòng, tại mỗi vòng tính: Li=Ri-1 Ri=Li-1 f(Ri-1,Ki) với i= 1, 2,…,16 với:  là phép XOR của hai xâu bit: 0  0=0 , 1  1=0 1  0=1,0  1=1 f : hàm mà ta sẽ mô tả sau. Ki : các chuỗi có độ dài 48 bit được tính như là các hàm của khóa K. K1 đến K16 lập nên một lịch khóa.
  • 26. 16 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 C1 C2 C3 C4 C5 C6 C7 C8 Fixed permutation function Hoạt động của hàm F tại từng vòng Biến thứ nhất A được mở rộng thành một xâu bit độ dài 48 theo một hàm mở rộng cố định E. E table thực hiện chức năng hoán vị các bit trong khối thông tin, đồng thời chuyển từ 32 bit thành 48 bit bằng cách sử dụng ma trận E table E(Li)=E(011001)=E(01010101)
  • 27. S-Box B (6 bit) C (4 bit) S -Box (Substitution Box) thực hiện thao tác thay thế chuỗi bit thành một chuỗi bit khác, đồng thời thực hiện thao tác ngược lại với E table là chuyển khối thông tin từ 48 bit thành 32 bit.  Hai bit b1b6 xác định biểu diễn nhị phân hàng r của Sj (0 r  3)  Bốn bit (b2 b3 b4 b5) xác định biểu diễn nhị phân của cột c của Sj (0 c  15).  Khi đó Sj(Bj) sẽ xác định phần tử Sj(r, c) ; phần tử này viết dưới dạng nhị phân là một xâu bit có độ dài 4  Bằng cách tương tự tính các Cj = Sj(Bj) , (1  j  8). Mỗi Si là một bảng 416 cố định có các hàng là các số nguyên từ 0 đến 15 Với xâu bit có độ dài 6 (kí hiệu Bi = b1 b2 b3 b4 b5 b6) S-Box (Substitution Box)
  • 28. Ví dụ, xét ma trận S1, với chuỗi bit là 101100 - Bit đầu và bit cuối là (10)2, có giá trị thập phân là 2, do đó hàng được chọn là hàng số 2. - 4 bit còn lại là 0110 nhị phân, giá trị thập phân tương ứng là 6, do đó giá trị tại cột 6 được chọn. - Giá trị tại hàng 2 cột 6 trong ma trận S1 là 2, giá trị xuất ra là 0010. 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 Hàng 0  Hàng 1  Hàng 2  Hàng 3  Cột 0 1 2 15 …… S-Box (Substitution Box) (b1b6) (b2 b3 b4 b5)
  • 33. Khóa K - K là một xâu có độ dài 64 bit trong đó 56 bit dùng làm khóa và 8 bit dùng để kiểm tra sự bằng nhau (phát hiện lỗi). - Các bit ở các vị trí 8, 16,…, 64 được xác định, sao cho mỗi byte chứa số lẻ các số 1, vì vậy từng lỗi có thể được phát hiện trong mỗi 8 bit. - Các bit kiểm tra sự bằng nhau là được bỏ qua khi tính lịch khóa.
  • 34. Quá trình sinh khoá …………………….. Khoá ban đầu nhập vào là một chuỗi 64 bit, trong vòng đầu tiên khoá 64 bit được cho qua hộp PC-1(Permuted Choice) để hoán vị có lựa chọn thành khoá 56 bit. - Các bít kiểm tra sẽ được bỏ qua trong quá trình nén khóa tahông qua các khối PC-i
  • 36. 20 57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36 Right 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4 14 15 17 6 11 21 24 10 1 23 5 19 3 12 28 4 26 41 51 34 8 52 45 53 16 31 33 46 7 37 48 42 27 47 44 50 20 55 49 36 13 30 39 29 2 40 56 32 Hộp PC-1 và PC-2 bit thứ 57 trở thành bit đầu tiên, bit thứ 49, 41, 33, … lần lượt là các bit tiếp theo, và bit thứ 4 trở thành bit cuối cùng của chuỗi khoá. Tiếp theo chia đôi khoá 56 bit đó thành hai nửa trái và phải, mỗi nửa này sẽ được dịch vòng sang trái 1 hoặc 2 bit tuỳ mỗi vòng theo quy tắc sau: Khoá đi qua PC-2 thì bit thứ 14 trở thành bit đầu tiên, các bit thứ 17, 11, 24, … là các bit tiếp theo, bit thứ 32 là bit cuối cùng của khoá con. left PC-1 PC-2
  • 37. Giải mã • Việc giải mã dùng cùng một thuật toán như việc mã hoá. • Để giải mã dữ liệu đã được mã hoá, quá trình giống như mã hoá được lặp lại nhưng các chìa khoá phụ được dùng theo thứ tự ngược lại từ K16 đến K1, nghĩa là trong bước 2 của quá trình mã hoá dữ liệu đầu vào ở trên Ri-1 sẽ được XOR với K17-i chứ không phải với Ki.
  • 38. Thuật toán Kiểu mã hõa Chiều dài khóa Ứng dụng DES Block Cipher 56 bits Thông dụng, nhưng khả năng bảo mật không mạnh TripleDES Block Cipher 168 bits (112 - tối ưu) Nâng cấp từ DES, Khả năng bảo mật tốt Blowfish Block Cipher Thay đổi (Up to 448 bits) Tính bảo mật cực tốt AES Block Cipher Thay đổi (128, 192, hoặc 256 bits) Thay thế cho DES, Khả năng bảo mật cực tốt RC4 Stream Cipher Thay đổi (40 hoặc 128 bits) Mã hóa bảo mật nhanh với luồng dữ liệu Các phương pháp mã hóa bảo mật hiện nay
  • 39.
  • 40.
  • 41. Mã khoá đơn/mật/riêng dùng 1 khoá Dùng chung cả người nhận và người gửi Khi khoá này được dùng, việc trao đổi thông tin được thỏa thuận. Là đối xứng, hai đối tác là như nhau  Do đó không bảo vệ người gửi khỏi việc người nhận giả mạo mẩu tin và tuyên bố là nó được gửi đi bởi người gửi (giả mạo).
  • 42. Có thể là bước tiến quan trọng nhất trong lịch sử 3000 năm mã hoá Không đối xứng vì hai phía không như nhau Sử dụng thông minh của lý thuyết số vào hàm số Hỗ trợ thêm chứ không phải thay thế khoá riêng.
  • 43. Tại sao lại phải dùng mã khoá công khai? • Phát triển hướng tới hai mục tiêu chính – Chứ ký điện tử - làm sao kiểm chứng được mẩu tin nhận được là của người đứng tên gửi • Phát minh khoá công khai thuộc về Whitfield Diffie & Martin Hellman ở Đại học Stanford trong năm 1976 • Được biết đến sớm hơn bởi cộng đồng các nhà khoa học
  • 44. – Khoá công khai, mà mọi người đều biết, được dùng để mã hoá mẩu tin và kiểm chứng chữ ký. – Khoá riêng, chỉ người nhận biết, đề giải mã bản tin hoặc để tạo chữ ký. – Là không đối xứng vì những người mã hoá và kiểm chứng chữ ký không thể giải mã hoặc tạo chữ ký.
  • 45.
  • 46. Các thuật toán khoá công khai dùng 2 khoá với các đặc trưng – Không có khả năng tính toán để tìm khoá giải mã nếu chỉ biết thuật toán và khoá mã – Có thể dễ dàng mã hoá hoặc giải mã mẩu tin nếu biết khoá tương ứng
  • 47.
  • 48. Có thể phân loại ứng dụng thành 3 loại:
  • 49. Cũng giống như khoá riêng việc tìm kiếm vét cạn luôn luôn có thể, nhưng khoá sử dụng là rất lớn (>512 bit) Tính an toàn dựa trên sự khác biết đủ lớn giữa các bài toán dễ (mã/giải mã) và bài toán khó khó (thám mã) Bài toán khó tổng quát hơn đã được biết đến, nhưng rất khó có thể thực hiện trên thực tế, đòi hỏi sử dụng số lượng tính toán rất lớn  Do đó chậm so với mã đối xứng
  • 50. • Được sáng tạo bởi Rivest, Shamir & Adleman ở MIT vào năm 1977 • Là mã công khai được biết đến nhiều nhất và sử dụng rộng rãi nhất • Dựa trên lũy thừa trên trường hữu hạn các số nguyên modulo nguyên tố • Phép lũy thừa cần O((log n)3) phép toán (dễ) • Sử dụng các số rất lớn 1024 bit • Tính an toàn dựa vào độ khó phân tích ra thừa số các số lớn. Lũy thừa yêu cầu O(e log n log log n) phép toán (khó)
  • 51. 1. (nghĩa là để giải mã được mà không biết khoá mật thì phải tốn hàng triệu năm). 2. (thao tác mã hoá và giải mã tốn ít thời gian). 3. . 4. . 5. (dùng làm chữ ký điện tử). 51
  • 52. Thuật toán RSA có hai Khóa: - Khóa công khai (Public key): được công bố rộng rãi cho mọi người và được dùng để mã hóa - Khóa bí mật (Private key): Những thông tin được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa bí mật tương ứng 10/07/2021 52
  • 53. 53 Chọn p,q nguyên tố Tính n =p*q Tính Φ(n) = (p-1)(q-1) e Chọn khóa riêng d d Chọn khóa công khai e (0< e < Φ(n)) (e< >Φ(n)) Bản mã C Bản rõ m Bản rõ gốc m n m c e mod  n c m d mod  1   e d
  • 54.
  • 55. – Chọn e và d để e.d=1+k.ø(n) với k là nguyên  Khi đó: Cd = Me.d = M1+k.ø(n) = M1.(Mø(n))k = M1.(1)k = M1 = M mod n Ước số chung lớn nhất a và n được gọi là nguyên tố cùng nhau
  • 56. • Mỗi người sử dụng tạo một cặp khoá công khai – riêng như sau: • Ta đã biết ø(N)=(p-1)(q-1) • Và có thể dùng Định lý Trung Hoa để giảm bớt tính toán – Trong đó 1<e<ø(N), ƯSCLN(e,ø(N))=1 – e.d=1 mod ø(N) với 0≤d≤ ø(N)
  • 57. Lý thuyết Bước 1:B (người nhận) tạo hai số nguyên tố lớn ngẫu nhiên p và q Bước 2: tính n = p*q và Φ(n) = (p-1)(q-1) Bước 3: chọn một số ngẫu nhiên e (0< e < Φ(n)) sao cho ƯCLN(e,Φ(n))=1 Bước 4: tính bằng cách dùng thuật toán Euclide Tìm số tự nhiên x sao cho Bước 5: - n và e làm khoá công khai (public key), - d làm khoá bí mật (pivate key). Ví dụ 1: Bước 1: Chọn số 23 và 41 (hai số này là 2 số nguyên tố) Bước 2: n = 23 * 41 = 943 Φ(n) = 22 * 40 = 880 Bước 3: chọn e = 7 vì ƯCLN(7, 880)=1 Bước 4: => 7d=1+880x  d= 503 và x = 4 Bước 5: - n = 943 và e = 7 - d = 503 57 1   e d e n x d 1 ) ( *    e n x d 1 ) ( *   
  • 58. Ví dụ 2: 1. Chọn các số nguyên tố: p=17 & q=11. 2. Tính n = p.q = 17×11 = 187 3. Tính ø(n)=(p–1)(q-1)=16×10=160 4. Chọn e : gcd(e,160)=1;  Lấy e=7 5. Xác định d: để d.e = 1 mod 160 và d < 160 Giá trị cần tìm là d=23, vì 23×7=161= 10×160+1 6. Khoá công khai KU={7,187} 7. Khoá riêng bí mật KR={23,17,11}
  • 59. • Để mã hoá mẩu tin, người gửi: • Để giải mã hoá bản mã, người nhận: • Lưu ý rằng bản tin M < n, do đó khi cần thì chia nhỏ khối bản rõ.
  • 60. 60 Mã hoá và giải mã n m c e mod  Bước 1: A nhận khoá công khai của B. Bước 2: A biểu diễn thông tin cần gửi thành số m (0 <= m <= n-1) Bước 3: Tính Bước 4: Gửi c cho B Bước 5: Giải mã tính  m là thông tin nhận được. Lý thuyết Ví dụ: (tiếp ví dụ 1 – slide 45) Bước 1: A nhận khoá công khai n = 943 và e = 7 Bước 2: Thông tin cần gửi m = 35 Bước 3: Bước 4: Bước 5: Gải mã  m = 35 943 mod 357  c 545  c n c m d mod  943 mod 545503  m
  • 61. – Tìm kiếm khoá bằng phương pháp vét cạn (không khả thi với kích thước đủ lớn của các số) – Tấn công bằng toán học dựa vào độ khó việc tính ø(n) bằng cách phân tích n – Tấn công thời gian (trong khi giải mã) – Tấn công với bản mã chọn trước
  • 62. • Tấn công toán học có 3 dạng • Hiện tại tin rằng tất cả đều tưong đương với bài toán phân tích – Có các bước tiến chậm theo thời gian – Hiện tại cho rằng RSA 1024 hoặc 2048 là an toàn
  • 63. • Phát triển vào giữa năm 1990 • Paul Kocher chỉ ra rằng . • Tấn công thời gian không chỉ áp dụng cho RSA, mà cả với các hệ mã công khai khác. • Tấn công thời gian giống như kẻ cướp đoán sự an toàn bằng cách quan sát một người nào đó trong bao lâu chuyển quay điện thoại từ số này sang số khác.
  • 64. –Kẻ tấn công chọn bản mã và đoán bản rõ được giải mã –Chọn bản mã để khám phá RSA cung cấp thông tin để thám mã –Có thể tính với bộ đệm ngãu nhiên của bản rõ –Hoặc sử dụng bộ đệm mã hoá phả xứng (OASP)
  • 65. - Độ an toàn của hệ thống RSA dựa trên 2 vấn đề: , để không có khả năng phân tích nó về mặt tính toán. . 65
  • 66. 66 Số các chữ số trong số được phân tích Thời gian phân tích 50 4 giờ 75 104 giờ 100 74 năm 200 4000 năm 300 500.000 năm 500 4x 10^25 năm
  • 67. -Vấn đề này nảy sinh ra 1 lỗ hổng gọi là - Khi A và B trao đổi thông tin thì C có thể gửi cho A một khóa bất kì để A tin rằng đó là khóa công khai của B gửi. - Sau đó C sẽ giải mã và đánh cắp được thông tin. Đồng thời mã hóa lại thông tin theo khóa công khai của B và gửi lại cho B. - Về nguyên tắc, cả A và B đều không phát hiện được sự can thiệp của C
  • 68.
  • 69. Đảm bảo nội dung thông tin trao đổi giữa các thực thể là chính xác, không bị thêm, sửa, xóa hay phát lại - đảm bảo tính tòan vẹn về nội dung Đảm bảo đối tượng tạo ra thông tin (nguồn gốc thông tin) đúng là đối tượng hợp lệ đã được khai báo (đảm bảo tính tòan vẹn về nguồn gốc thông tin) Dùng các thuật toán mật mã (đối xứng và bất đối xứng) để xác thực thông tin Dùng mã xác thực MAC (Message Authentication Code) – Mã chứng thực thông điệp Dùng các hàm băm bảo mật (Secure Hash Function)
  • 70.
  • 71. Kích thước của MAC là cố định, không phụ thuộc vào kích thước của khối dữ liệu gốc và thường nhỏ hơn dữ liệu gốc Mã chứng thực thông điệp (MAC) có thể coi là một dạng checksum của mã hóa,
  • 72. Ứng với một khối thông tin gốc M và một khóa bí mật K, hàm C chỉ tạo ra duy nhất một mã xác thực MAC. Chỉ có phía gởi và phía nhận hợp lệ mới được biết khóa K. Dùng cơ chế mật mã khối (Cipher Block Chaining) và được gọi là CMAC hay CBC-MAC. Dựa trên các hàm băm bảo mật và được gọi là HMAC
  • 73.  Giống như mã xác thực MAC,  Hhàm băm chỉ dựa vào thông tin gốc để tạo ra mã băm mà không dùng thêm bất kỳ khóa bí mật nào
  • 74. Mã băm được dùng để kiểm tra tính chính xác của thông tin nhận được Chỉ có thể dùng hàm băm để tính mã băm từ thông tin gốc chứ không thể tính được thông tin gốc từ mã băm  hàm băm một chiều (one way hash fntion)  H có thể áp dụng cho các thông điệp x với các độ dài khác nhau  Kích thước của output h = H(x) là cố định và nhỏ  Tính một chiều: với một h cho trước, không thể tìm lại được x sao cho h = H(x)  Tính chống trùng yếu: cho trước một x, không thể tìm y≠ x sao cho H(x) = H(y)  Tính chống trùng mạnh: không thể tìm ra cặp x, y bất kỳ (x≠y) sao cho H(x) = H(y)
  • 75. SHA (Secure Hash Function) được chuẩn hoá năm 1993, sau đó được chỉnh sửa năm 1995 và đặt tên là SHA-1 Nguyên lý hoạt động: Tham khảo tài liệu (trang 88)
  • 76. Độ an toàn không cao. Nguyên lý hoạt đông: tham khảo tài liệu (trang 85)
  • 77.
  • 78. Chữ ký số là một cơ chế xác thực cho phép người tạo ra thông tin (message creator) gắn thêm một đọan mã đặc biệt vào thông tin có tác dụng như một chữ ký Chữ ký được tạo ra bằng cách áp dụng một hàm băm lên thông gốc, sau đó mã hóa thông tin gốc dùng khóa riêng của người gởi Message Sent to Receiver Digest Algorithm Digital Signature Sent to Receiver Message Digest Sender’s Private Key Sender’s Public Key Message Digest Signature Algorithm Signature Algorithm Digest Algorithm Message Digest Sender Receiver Same?
  • 79.  Phải xác nhận chính xác người ký và ngày giờ phát sinh chữ ký.  Phải xác thực nội dung thông tin ngay tại thời điểm phát sinh chữ ký.  Phải có khả năng cho phép kiểm chứng bởi một người thứ 3 để giải quyết các tranh chấp nếu có. Là một chuỗi bit phát sinh từ khối thông tin cần được xác nhận (thông tin gốc). Chữ ký phải chứa thông tin nhận dạng riêng của người ký để tránh giả mạo và tránh phủ nhận. Quy trình tạo ra chữ ký cũng như xác minh chữ ký phải đơn giản, nhanh chóng Chữ ký thông thể bị giả mạo bằng bất cứ cách nào. Có thể sao chép một bản sao của chữ ký dành cho mục đích lưu trữ.
  • 80.  Thuật toán tạo chữ ký cố định (deterministic) tạo ra một chữ ký duy nhất ứng với một khối thông tin gốc xác định C hữ ký ngẫu nhiên (probabilistic) tạo ra những chữ ký khác nhau đối với cùng một bản tin  Cơ chế tạo chữ ký phục hồi được (reversible signature) cho phép người nhận phục hồi lại thông tin gốc từ chữ ký, điều này cũng có nghĩa là chữ ký phải có chứa thông tin gốc trong nó dưới một dạng mã hoá nào đó, người gởi chỉ cần gởi đi chữ ký là đủ.  Cơ chế tạo chữ ký không phục hồi được (non-reversible signature) không cho phép phục hồi thông tin gốc từ chữ ký. Chữ ký chỉ là một khối thông tin cộng thêm có kích thước nhỏ hơn thông tin gốc. Người gởi cần phải gởi chữ ký đi kèm với thông tin gốc như một dạng phụ lục.
  • 81. chữ ký có thể được tạo ra bằng cách mã hóa tòan bộ bản tin bằng khóa riêng của người tạo ra thông tin, hoặc là chỉ mã hóa phần mã băm (kết quả tạo ta từ hàm băm đối với thông tin gốc) dùng khóa riêng của người tạo thông tin.
  • 82. Khi thực thể A muốn gởi một bản tin cho thực thể B, quá trình tạo ra một chữ ký được thực hiện bình thường như đối với chữ ký trực tiếp Trước khi bản tin này được gởi đến B, nó phải được gởi đến một thực thể thứ 3 gọi là trọng tài (arbiter). Trọng tài thực hiện việc kiểm tra, xác nhận tính chính xác của thông tin và chữ ký, sau đó ghi lại ngày giờ rồi mới gởi cho thực thể B, kèm theo thông tin xác nhận của trọng tài.
  • 83. (Digital Signature Standard)  DSS thuộc loại chữ ký ngẫu nhiên và không phục hồi được
  • 84.
  • 86.
  • 87.
  • 88. Network Security large message m H: Hash function H(m) digital signature (encrypt) Bob’s private key K B - + Bob sends digitally signed message: Alice verifies signature, integrity of digitally signed message: KB(H(m)) - encrypted msg digest KB(H(m)) - encrypted msg digest large message m H: Hash function H(m) digital signature (decrypt) H(m) Bob’s public key K B + equal ? Digital signature = signed message digest
  • 89. • A digital certificate is a signed statement by a trusted party that another party’s public key belongs to them. – This allows one certificate authority to be authorized by a different authority (root CA) • Top level certificate must be self signed • Any one can start a certificate authority – Name recognition is key to some one recognizing a certificate authority – Verisign is industry standard certificate authority Authentication Digital Cerftificates Identity Information Certificate Authority’s Private Key Sender’s Public Key Signature Algorithm Certificate
  • 90. • Chaining is the practice of signing a certificate with another private key that has a certificate for its public key – Similar to the passport having the seal of the government • It is essentially a person’s public key & some identifying information signed by an authority’s private key verifying the person’s identity • The authorities public key can be used to decipher the certificate • The trusted party is called the certificate authority Authentication Cerftificates Chaining Certificate Authority’s Private Key Signature Algorithm New Certificate Certificate
  • 91. Network Security Digital signatures cryptographic technique analogous to hand-written signatures: • sender (Bob) digitally signs document, establishing he is document owner/creator. • verifiable, non-forgeable: recipient (Alice) can prove to someone that Bob, and no one else (including Alice), must have signed document
  • 92. Network Security simple digital signature for message m: • Bob signs m by encrypting with his private key KB, creating “signed” message, KB(m) - - Dear Alice Oh, how I have missed you. I think of you all the time! …(blah blah blah) Bob Bob’s message, m Public key encryption algorithm Bob’s private key K B - Bob’s message, m, signed (encrypted) with his private key m,K B - (m) Digital signatures
  • 93. Network Security - Alice thus verifies that:  Bob signed m  no one else signed m  Bob signed m and not m‘ non-repudiation:  Alice can take m, and signature KB(m) to court and prove that Bob signed m - Digital signatures  suppose Alice receives msg m, with signature: m, KB(m)  Alice verifies m signed by Bob by applying Bob’s public key KB to KB(m) then checks KB(KB(m) ) = m.  If KB(KB(m) ) = m, whoever signed m must have used Bob’s private key. - - - + + +
  • 94. Network Security Message digests computationally expensive to public-key-encrypt long messages goal: fixed-length, easy- to- compute digital “fingerprint” • apply hash function H to m, get fixed size message digest, H(m). Hash function properties: • many-to-1 • produces fixed-size msg digest (fingerprint) • given message digest x, computationally infeasible to find m such that x = H(m) large message m H: Hash Function H(m)
  • 95. Network Security Internet checksum: poor crypto hash function Internet checksum has some properties of hash function:  produces fixed length digest (16-bit sum) of message  is many-to-one (many messages to 1 message) But given message with given hash value, it is easy to find another message with same hash value: I O U 1 0 0 . 9 9 B O B 49 4F 55 31 30 30 2E 39 39 42 D2 42 message ASCII format B2 C1 D2 AC I O U 9 0 0 . 1 9 B O B 49 4F 55 39 30 30 2E 31 39 42 D2 42 message ASCII format B2 C1 D2 AC different messages but identical checksums!
  • 96. Network Security Recall: ap5.0 security hole man (or woman) in the middle attack: Trudy poses as Alice (to Bob) and as Bob (to Alice) I am Alice I am Alice R T K (R) - Send me your public key T K + A K (R) - Send me your public key A K + T K (m) + T m = K (K (m)) + T - Trudy gets sends m to Alice encrypted with Alice’s public key A K (m) + A m = K (K (m)) + A - R
  • 97. Network Security Public-key certification • motivation: Trudy plays pizza prank on Bob – Trudy creates e-mail order: Dear Pizza Store, Please deliver to me four pepperoni pizzas. Thank you, Bob – Trudy signs order with her private key – Trudy sends order to Pizza Store – Trudy sends to Pizza Store her public key, but says it’s Bob’s public key – Pizza Store verifies signature; then delivers four pepperoni pizzas to Bob – Bob doesn’t even like pepperoni
  • 98. Network Security Certification authorities • certification authority (CA): binds public key to particular entity, E. • E (person, router) registers its public key with CA. – E provides “proof of identity” to CA. – CA creates certificate binding E to its public key. – certificate containing E’s public key digitally signed by CA – CA says “this is E’s public key” Bob’s public key K B + Bob’s identifying information digital signature (encrypt) CA private key K CA - K B + certificate for Bob’s public key, signed by CA
  • 99. Network Security • when Alice wants Bob’s public key: – gets Bob’s certificate (Bob or elsewhere). – apply CA’s public key to Bob’s certificate, get Bob’s public key Bob’s public key K B + digital signature (decrypt) CA public key K CA + K B + Certification authorities
  • 100.
  • 101. 8: Network Security 8-101 Digital Signatures Cryptographic technique analogous to hand-written signatures. sender (Bob) digitally signs document, establishing he is document owner/creator. verifiable, nonforgeable: recipient (Alice) can prove to someone that Bob, and no one else (including Alice), must have signed document
  • 102. 8: Network Security 8-102 Digital Signatures Simple digital signature for message m: • Bob signs m by encrypting with his private key KB, creating “signed” message, KB(m) - - Dear Alice Oh, how I have missed you. I think of you all the time! …(blah blah blah) Bob Bob’s message, m Public key encryption algorithm Bob’s private key K B - Bob’s message, m, signed (encrypted) with his private key K B - (m)
  • 103. 8: Network Security 8-103 Digital Signatures (more) • Suppose Alice receives msg m, digital signature KB(m) • Alice verifies m signed by Bob by applying Bob’s public key KB to KB(m) then checks KB(KB(m) ) = m. • If KB(KB(m) ) = m, whoever signed m must have used Bob’s private key. + + - - - - + Alice thus verifies that:  Bob signed m.  No one else signed m.  Bob signed m and not m’. (Message was not altered) Non-repudiation:  Alice can take m, and signature KB(m) to court and prove that Bob signed m. -
  • 105. Public-Key Signatures (1) Digital signatures using public-key cryptography.
  • 106. Public-Key Signatures (2) Criticisms of DSS: 1.Too secret 2.Too slow 3.Too new 4.Too insecure
  • 107. Message Digests (1) Message Digest properties 1. Given P, easy to compute MD(P). 2. Given MD(P), effectively impossible to find P. 3. Given P no one can find P′ such that MD(P′) = MD(P). 4. Change to input of even 1 bit produces very different output.
  • 108. Message Digests (2) Digital signatures using message digests
  • 109. Message Digests (3) Use of SHA-1 and RSA for signing nonsecret messages
  • 110. Message Digests (4) (a)A message padded out to a multiple of 512 bits. (b)The output variables. (c)The word array.
  • 111. Important Hash Functions • SHA-3 – In 2007, NIST announced a competition for the SHA-3, next generation NIST hash function – Winning design was announced by NIST in October 2, 2012 – The winner is Keccak by by Guido Bertoni, Joan Daemen, Michaël Peeters, and Gilles Van Assche – Different design principles than other SHAs • Called Sponge construction – However, standardization process is delayed (as of May 2014 only a draft is published) – There is a controversy (read the wikipedia page of SHA-3) – It seems it is not going to replace SHA-2
  • 112. Digital Signatures • Mechanism for non-repudiation • Basic idea – use private key on the message to generate a piece of information that can be generated only by yourself • because you are the only person who knows your private key – public key can be used to verify the signature • so everybody can verify • Generally signatures are created and verified over the hash of the message – Why?
  • 114. Digital Signature – RSA approach M: message to be signed H: Hash function E: RSA Private Key Operation PRa: Sender’s Private Key D: RSA Public Key Operation PUa: Sender’s Public Key E [PRa,H(M)] Signature of A over M
  • 115. Digital Signature – DSA approach • DSA: Digital Signature Algorithm – NIST standard - FIPS 186 - current revision is 186-4 (2013) – Key limit 512 – 1024 bits, only for signature, no encryption • Starting186-3, increased up to 3072 – based on discrete logarithm problem – Message hash is not restored for verification (difference from RSA) M: message to be signed H: Hash function Sig: DSA Signing Operation PRa: Sender’s Private Key Ver: DSA Verification Operation PUa: Sender’s Public Key s, r Sender’s signature over M PUG: Global Public Key components s, r
  • 116. Collision resistant hash functions and digital signatures • Have you seen the reason why hash functions should be collision resistant? – because otherwise messages would be changed without changing the hash value used in signature and verification
  • 117. Collision resistant hash functions and digital signatures • Birthday attack – generate two messages • one with legitimate meaning • one fraudulent – create a set of messages from each of them that carries the same meaning • play with blanks, synonyms, punctuations – calculate the hashes of those two sets – you should have 2n/2 messages (and hashes) in each set for 0.63 probability of a match, where n is the hash size – if a match is found, then the fraudulent hash could be replaced with the legitimate one without affecting the signature
  • 118. Elliptic Curve Cryptography • Based on the difficulty of Elliptic Curve Discrete Logarithm problem – details are not in the scope of this course – a concise description is in Sections 10.3 and 10.4 of Stallings • Actually a set of cryptosystems – each elliptic curve is one cryptosystem • 160-bit, 163-bit, 233-bit, … defined in IEEE P1363 standard • Key size is smaller than RSA – 160-bit ECC is almost has the security as 1024 bit RSA • Private Key operation is faster than RSA, public key operation is almost equal
  • 119. Elliptic Curve Cryptography • Key exchange – ECDH • Elliptic Curve Diffie-Hellman • Digital Signatures – ECDSA • Elliptic Curve Digital Signature Algorithm • ECDH and ECDSA are standard methods • Encryption/Decryption with ECC is possible, but not common
  • 120. Message Authentication • Making sure of – message has been sent by the alleged sender – message has been received intact • no modification • no insertion • no deletion – i.e., Message Authentication also covers integrity • Digital Signatures – provides integrity + authentication + nonrepudiation • We will see mechanisms that provide authentication, but not non-repudiation
  • 121. Mechanisms for Message Authentication • General idea – receiver makes sure that the sender knows a secret shared between them – in other words, sender demonstrates knowledge of that shared secret – without revealing the shared secret to unauthorized parties of course • We will see some mechanisms for this purpose
  • 122. Mechanisms for Message Authentication • Message Encryption – provides message authentication, but … • Message Authentication Code Functions – similar to encryption functions, but not necessarily reversible – Generally Hash based MAC is used (will see) • Actually hash functions are used for message authentication in several ways (will see)
  • 123. Using Message Encryption for Authentication • Provides encryption. What about authentication? – yes, but there must be a mechanism to detect the restored M is the same as the sent M • intelligible restored plaintext (may be difficult) • error control codes (checksum), see next slide
  • 124. Using Message Encryption for Authentication • Addition of FCS (frame check sequence) helps to detect if both M’s are the same or not F: FCS function
  • 125. Using Message Encryption for Authentication • What about public-key encryption? • Provides confidentiality, but not authentication – Why? – What should be done for authentication using public-key crypto? – we have seen the answer before.
  • 126. Message Authentication Code (MAC) and MAC Functions • An alternative technique that uses a secret key to generate a small fixed-size block of data – based on the message – not necessarily reversible – secret key is shared between sender and receiver – called cryptographic checksum or MAC (message authentication code) • appended to message • receiver performs same computation on message and checks if matches the received MAC • provides assurance that message is unaltered and comes from sender
  • 127. MAC • Only authentication C: MAC function • Authentication and confidentiality
  • 128. MAC – The Basic Question • Is MAC a signature? – No, because the receiver can also generate it
  • 129. Hash based Message Authentication • Hash Functions – condenses arbitrary messages into fixed size • We can use hash functions in authentication and digital signatures – with or without confidentiality
  • 130. Can we just use hash function for integrity?
  • 131. Hash based message authentication using symmetric encryption • with confidentiality • without confidentiality
  • 132. Other Hash based message authentication techniques • Authentication is based on a shared-secret s, but no encryption function is employed
  • 133. Keyed Hash Functions • it is better to have a MAC using a hash function rather than a block cipher – because hash functions are generally faster – not limited by export controls unlike block ciphers • hash functions are not designed to work with a key • hash includes a key along with the message • original proposal: KeyedHash = Hash(Key || Message) – by Gene Tsudik (1992) • eventually led to development of HMAC – by Bellare, Kanetti and Krawczyk
  • 134. HMAC • specified as Internet standard RFC2104 – used in several products and standards including IPSec and SSL • uses hash function on the message: HMACK = Hash[(K+ XOR opad) || Hash[(K+ XOR ipad)|| M)]] • where K+ is the key padded out to block size of the hash function • and opad, ipad are some padding constants • overhead is just 3 more blocks of hash calculations than the message needs alone • any hash function (MD5, SHA-1, …) can be used
  • 136. HMAC Security • HMAC assumes a secure hash function – as their creators said • “you cannot produce good wine using bad grapes” • it has been proved that attacking HMAC is equivalent the following attacks on the underlying hash function – brute force attack on key used – birthday attack • find M and M’ such that their hashes are the same • since keyed, attacker would need to observe a very large (2n/2 messages) number of messages that makes the attacks infeasible • Let’s see if MD5-based HMAC is secure.
  • 137. Message Encryption • Public key encryption for the bulk message is too costly – bulk encryption should be done using symmetric (conventional) crypto • If a key is mutually known (e.g. if D-H is used) – use it to encrypt data – this method is useful for connection oriented data transfers where the same key is used for several data blocks • If no key is established before – mostly for connectionless services (such as e-mail transfer) – best method is enveloping mechanism
  • 138. Digital Envelopes • A randomly chosen one-time symmetric encryption key is encrypted with public key of the recipient • fast en/decryption without pre-establishment of keys EC: Conventional Encryption DC: Conventional Decryption EP: Public-key Encryption DP: Public-key Decryption Ks: Session key (one-time)
  • 139. What we have covered and will cover next? • Symmetric Cryptography • Asymmetric (Public-key) Cryptography – including D-H key agreement • Hash functions • Digital Signatures using PKC • Message Authentication Mechanisms – MACs, HMAC • After that we will continue with Key Distribution/Management and Authentication – they are closely related with each other
  • 140. Prime Factorisation • to factor a number n is to write it as a product of other numbers: n=a × b × c • note that factoring a number is relatively hard compared to multiplying the factors together to generate the number • the prime factorisation of a number n is when its written as a product of primes – eg. 91=7×13 ; 3600=24×32×52
  • 141. Relatively Prime Numbers & GCD • two numbers a, b are relatively prime if have no common divisors apart from 1 – eg. 8 & 15 are relatively prime since factors of 8 are 1,2,4,8 and of 15 are 1,3,5,15 and 1 is the only common factor • conversely can determine the greatest common divisor by comparing their prime factorizations and using least powers – eg. 300=21×31×52 18=21×32 hence GCD(18,300)=21×31×50=6
  • 142. Fermat's Theorem • ap-1 mod p = 1 – where p is prime and gcd(a,p)=1 • also known as Fermat’s Little Theorem • useful in public key and primality testing
  • 143. Euler Totient Function ø(n) • when doing arithmetic modulo n • complete set of residues is: 0..n-1 • reduced set of residues is those numbers (residues) which are relatively prime to n – eg for n=10, – complete set of residues is {0,1,2,3,4,5,6,7,8,9} – reduced set of residues is {1,3,7,9} • number of elements in reduced set of residues is called the Euler Totient Function ø(n)
  • 144. Euler Totient Function ø(n) • to compute ø(n) need to count number of elements to be excluded • in general need prime factorization, but – for p (p prime) ø(p) = p-1 – for p.q (p,q prime) ø(p.q) = (p-1)(q-1) • eg. – ø(37) = 36 – ø(21) = (3–1)×(7–1) = 2×6 = 12
  • 145. Euler's Theorem • a generalisation of Fermat's Theorem • aø(n)mod N = 1 – where gcd(a,N)=1 • eg. – a=3;n=10; ø(10)=4; – hence 34 = 81 = 1 mod 10 – a=2;n=11; ø(11)=10; – hence 210 = 1024 = 1 mod 11