This document defines variables and strings used in an assembly language program that performs various mathematical operations and checks on two input numbers a and b. It allows the user to select from menu options to calculate the sum, difference, product, quotient of a and b or check if they are prime numbers, perfect numbers, square numbers, or symmetrical numbers. The program flow jumps to different code blocks depending on the menu selection to perform the corresponding operation and display the output.
Sự phát triển của máy vi tính đã làm gia tăng một cách mạnh mẽ các ứng dụng của XỬ LÝ TÍN HIỆU SỐ (Digital Signal Proccessing). Xu hướng này đã được tăng cường bởi sự phát triển đồng thời của thuật toán số (Numerical Algorithms) cho xử lý tín hiệu số. Hiện nay, xử lý tín hiệu số đã trở nên một ứng dụng cơ bản cho kỹ thuật mạch tích hợp hiện đại với các chip có thể lập trình ở tốc độ cao. Vì vậy, xử lý tín hiệu số được ứng dụng trong nhiều lĩnh vực khác nhau như:
• Xử lý tín hiệu âm thanh: nhận dạng tiếng nói/ người nói; tổng hợp tiếng nói, biến văn bản thành tiếng nói; kỹ thuật âm thanh số ;…
• Xử lý ảnh: thu nhận và khôi phục ảnh; làm nổi đường biên; lọc nhiễu; nhận dạng; mắt người máy; hoạt hình; các kỹ xảo về hình ảnh; bản đồ;…
• Viễn thông: xử lý tín hiệu thoại và tín hiệu hình; truyền dữ liệu; khử xuyên kênh; fax; truyền hình số; …
• Thiết bị đo lường và điều khiển: phân tích phổ; đo lường địa chấn; điều khiển vị trí và tốc độ; điều khiển tự động;…
• Quân sự: truyền thông bảo mật; xử lý tín hiệu rada, sonar; dẫn đường tên lửa;…
• Y học: não đồ; điện tim; chụp X quang; chụp CT (Computed Tomography Scans); nội soi;…
The document discusses using symmetric encryption to provide confidentiality, noting the need to securely distribute shared keys between parties and alternatives like using a trusted third party. It also covers generating random numbers, which are important in cryptography, and sources of randomness like noise-based hardware generators as well as pseudorandom number generators that can pass tests for randomness. Placement of encryption at different layers in the OSI model and traffic analysis techniques are also summarized.
This document defines variables and strings used in an assembly language program that performs various mathematical operations and checks on two input numbers a and b. It allows the user to select from menu options to calculate the sum, difference, product, quotient of a and b or check if they are prime numbers, perfect numbers, square numbers, or symmetrical numbers. The program flow jumps to different code blocks depending on the menu selection to perform the corresponding operation and display the output.
Sự phát triển của máy vi tính đã làm gia tăng một cách mạnh mẽ các ứng dụng của XỬ LÝ TÍN HIỆU SỐ (Digital Signal Proccessing). Xu hướng này đã được tăng cường bởi sự phát triển đồng thời của thuật toán số (Numerical Algorithms) cho xử lý tín hiệu số. Hiện nay, xử lý tín hiệu số đã trở nên một ứng dụng cơ bản cho kỹ thuật mạch tích hợp hiện đại với các chip có thể lập trình ở tốc độ cao. Vì vậy, xử lý tín hiệu số được ứng dụng trong nhiều lĩnh vực khác nhau như:
• Xử lý tín hiệu âm thanh: nhận dạng tiếng nói/ người nói; tổng hợp tiếng nói, biến văn bản thành tiếng nói; kỹ thuật âm thanh số ;…
• Xử lý ảnh: thu nhận và khôi phục ảnh; làm nổi đường biên; lọc nhiễu; nhận dạng; mắt người máy; hoạt hình; các kỹ xảo về hình ảnh; bản đồ;…
• Viễn thông: xử lý tín hiệu thoại và tín hiệu hình; truyền dữ liệu; khử xuyên kênh; fax; truyền hình số; …
• Thiết bị đo lường và điều khiển: phân tích phổ; đo lường địa chấn; điều khiển vị trí và tốc độ; điều khiển tự động;…
• Quân sự: truyền thông bảo mật; xử lý tín hiệu rada, sonar; dẫn đường tên lửa;…
• Y học: não đồ; điện tim; chụp X quang; chụp CT (Computed Tomography Scans); nội soi;…
The document discusses using symmetric encryption to provide confidentiality, noting the need to securely distribute shared keys between parties and alternatives like using a trusted third party. It also covers generating random numbers, which are important in cryptography, and sources of randomness like noise-based hardware generators as well as pseudorandom number generators that can pass tests for randomness. Placement of encryption at different layers in the OSI model and traffic analysis techniques are also summarized.
This lesson describes the concept of VPN and introduces some VPN terminology.
Importance
This lesson is the foundation lesson for the MPLS VPN Curriculum.
Objectives
Upon completion of this lesson, the learner will be able to perform the following
tasks:
■ Describe the concept of VPN
■ Explain VPN terminology as defined by MPLS VPN architecture
This lesson describes the concept of VPN and introduces some VPN terminology.
Importance
This lesson is the foundation lesson for the MPLS VPN Curriculum.
Objectives
Upon completion of this lesson, the learner will be able to perform the following
tasks:
■ Describe the concept of VPN
■ Explain VPN terminology as defined by MPLS VPN architecture
This document discusses MPLS Traffic Engineering (TE) configurations using IS-IS as the IGP. It covers topics such as MPLS TE tunnel setup with IS-IS, explicit paths, bandwidth reservations, metric manipulation, static routing, targeted LDP, fast reroute, inter-area MPLS TE using IS-IS areas, and inter-AS MPLS TE. Diagrams are provided to illustrate the various MPLS TE concepts and configurations.
This lesson describes the concept of VPN and introduces some VPN terminology.
Importance
This lesson is the foundation lesson for the MPLS VPN Curriculum.
Objectives
Upon completion of this lesson, the learner will be able to perform the following
tasks:
■ Describe the concept of VPN
■ Explain VPN terminology as defined by MPLS VPN architecture
This lesson describes the concept of VPN and introduces some VPN terminology.
Importance
This lesson is the foundation lesson for the MPLS VPN Curriculum.
Objectives
Upon completion of this lesson, the learner will be able to perform the following
tasks:
■ Describe the concept of VPN
■ Explain VPN terminology as defined by MPLS VPN architecture
This document describes the transmission convergence layer specification for Gigabit-capable Passive Optical Networks (G-PON). It defines the frame structure, encapsulation, dynamic bandwidth allocation, operations, administration and maintenance (OAM) functionality, security, and other aspects of the transmission convergence layer. The transmission convergence layer provides the interface between the optical distribution network and the payload data and is responsible for the transmission of different traffic types over the G-PON infrastructure. It allows the transport of services such as voice, video and data at rates up to 2.5 Gbps downstream and 1.25 Gbps upstream through encapsulation using the G-PON Encapsulation Method (GEM).
The document discusses the history and development of artificial intelligence over several decades. Early research focused on symbolic approaches using rules and logic but progress was slow. More recently, machine learning techniques such as deep learning have seen increasing success by learning from large amounts of data without being explicitly programmed. These new approaches are being applied to many areas and fueling a new wave of innovation and development in AI.
Trong quá trình phát triển của con người, những cuộc các mạng về công nghệ đóng một vai trò rất quan trọng, chúng làm thay đổi từng ngày từng giờ cuộc sống của con người, theo hướng hiện đại hơn. Đi đôi với quá trình phát triển của con người, những thay đổi do chính tác động của con người trong tự nhiên, trong môi trường sống cũng đang diễn ra, tác động trở lại chúng ta, như ô nhiễm môi trường, khí hậu thay đổi, v.v... Dân số càng tăng, nhu cầu cũng tăng theo, các dịch vụ, các tiện ích từ đó cũng được hình thành và phát triển theo. Đặc biệt là áp dụng các công nghệ của các ngành điện tử, công nghệ thông tin và viễn thông vào trong thực tiễn cuộc sống con người. Công nghệ cảm biến không dây được tích hợp từ các kỹ thuật điện tử, tin học và viễn thông tiên tiến vào trong mục đích nghiên cứu, giải trí, sản xuất, kinh doanh, v.v..., phạm vi này ngày càng được mở rộng, để tạo ra các ứng dụng đáp ứng cho các nhu cầu trên các lĩnh vực khác nhau. Hiện nay, công nghệ cảm biến không dây chưa được áp dụng một các rộng rãi ở nước ta, do những điều kiện về kỹ thuật, kinh tế, nhu cầu sử dụng. Song nó vẫn hứa hẹn là một đích đến tiêu biểu cho các nhà nghiên cứu, cho những mục đích phát triển đầy tiềm năng. Để áp dụng công nghệ này vào
thực tế trong tương lai, đã có không ít các nhà khoa học đã tập trung nghiên cứu, nắm bắt những thay đổi trong công nghệ này.
Experimental Evaluation of Distortion in Amplitude Modulation Techniques for ...Huynh MVT
Experimental Evaluation of Distortion in Amplitude Modulation Techniques for Parametric Loudspeakers
A PC (Intel Xeon with 16Gb of RAM, Intel Corporation, Santa Clara, California, USA)
Audio Measurements in the Presence of a High-Level Ultrasonic Carrier
Smartbiz_He thong MES nganh may mac_2024juneSmartBiz
Cách Hệ thống MES giúp tối ưu Quản lý Sản xuất trong ngành May mặc như thế nào?
Ngành may mặc, với đặc thù luôn thay đổi theo xu hướng thị trường và đòi hỏi cao về chất lượng, đang ngày càng cần những giải pháp công nghệ tiên tiến để duy trì sự cạnh tranh. Bạn đã bao giờ tự hỏi làm thế nào mà những thương hiệu hàng đầu có thể sản xuất hàng triệu sản phẩm với độ chính xác gần như tuyệt đối và thời gian giao hàng nhanh chóng? Bí mật nằm ở hệ thống Quản lý Sản xuất (MES - Manufacturing Execution System).
Hãy cùng khám phá cách hệ thống MES đang cách mạng hóa ngành may mặc và mang lại những lợi ích vượt trội như thế nào.
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
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
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 416
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
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.
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. -
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.
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
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
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