You are on page 1of 41

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐIỆN TỬ - VIỄN THÔNG

BỘ MÔN ĐIỆN TỬ HÀNG KHÔNG VŨ TRỤ

Các chế độ hoạt động sử dụng


mã khóa đối xứng hiện đại
◼ Giảng viên: PGS. TS. Hà Duyên Trung
◼ Email: haduyentrungvn@gmail.com
Nội dung

❏ Để hiển thị cách các mật mã tiêu chuẩn hiện đại, chẳng
hạn như DES hoặc AES, có thể được sử dụng để tạo ra các
tin nhắn dài.
❏ Để thảo luận về năm chế độ hoạt động được thiết kế để sử
dụng với mật mã khối hiện đại.
❏ Để xác định phương thức hoạt động nào tạo ra mật mã
dòng ngoài các mật mã khối bên dưới.
❏ Để thảo luận về các vấn đề bảo mật và sự lan truyền lỗi
của các phương thức hoạt động khác nhau.
❏ Để thảo luận về hai mật mã dòng được sử dụng để xử lý
dữ liệu theo thời gian thực.
1 USE OF MODERN BLOCK CIPHERS

Symmetric-key encipherment can be done using modern block ciphers.


Modes of operation have been devised to encipher text of any size
employing either DES or AES.
Quá trình mã hóa khóa đối xứng có thể được thực hiện bằng cách sử
dụng mật mã khối hiện đại. Các phương thức hoạt động đã được tạo ra
để tạo ra văn bản ở bất kỳ kích thước nào sử dụng DES hoặc AES.
Nội dung trong phần này gồm:
1.1 Electronic Codebook (ECB) Mode: Chế độ sổ mật điện tử
1.2 Cipher Block Chaining (CBC) Mode: Chế độ chuỗi khối mật mã (CBC)
1.3 Cipher Feedback (CFB) Mode: Chế độ phản hồi mật mã (CFB)
1.4 Output Feedback (OFB) Mode: Chế độ phản hồi đầu ra (OFB)
1.5 Counter (CTR) Mode
Continued

Figure 1 Modes of operation


1.1 Electronic Codebook (ECB) Mode

Chế độ hoạt động đơn giản nhất được gọi là chế độ sổ mã


điện tử (ECB).

Figure 2 Electronic codebook (ECB) mode


1.1 Continued

Example 1
Có thể chứng minh rằng mỗi khối bản rõ tại phía Alice được khôi
phục chính xác tại phía Bob. Bởi vì mã hóa và giải mã là nghịch
đảo của nhau,

Example 2

Chế độ này được gọi là sổ mã điện tử vì người ta có thể biên dịch


trước 2K sách mã (một cho mỗi khóa) trong đó mỗi sổ mã có 2n
mục nhập trong hai cột. Mỗi mục nhập có thể liệt kê bản rõ và các
khối bản mã tương ứng. Tuy nhiên, nếu K và n lớn, thì sổ mã sẽ
quá lớn để biên dịch trước và duy trì.
1.1 Continued
Example 3

Assume that Eve works in a company a few hours per month (her monthly payment
is very low). She knows that the company uses several blocks of information for
each employee in which the seventh block is the amount of money to be deposited in
the employee’s account. Eve can intercept the ciphertext sent to the bank at the end
of the month, replace the block with the information about her payment with a copy
of the block with the information about the payment of a full-time colleague. Each
month Eve can receive more money than she deserves.

Giả sử rằng Eve làm việc trong một công ty vài giờ mỗi tháng (tiền lương hàng
tháng của cô ấy rất thấp). Cô ấy biết rằng công ty sử dụng một số khối thông tin cho
mỗi nhân viên, trong đó khối thứ bảy là số tiền được gửi vào tài khoản của nhân
viên. Eve có thể chặn bản mã được gửi đến ngân hàng vào cuối tháng, thay thế khối
với thông tin về khoản thanh toán của cô ấy bằng một bản sao của khối với thông tin
về khoản thanh toán của một đồng nghiệp toàn thời gian. Mỗi tháng Eve có thể nhận
được nhiều tiền hơn những gì cô ấy xứng đáng.
1.1 Continued

Error Propagation: Truyền lỗi


A single bit error in transmission can create errors in several in the
corresponding block. However, the error does not have any effect on
the other blocks.
Một lỗi bit trong quá trình truyền có thể tạo ra một số lỗi trong khối
tương ứng. Tuy nhiên, lỗi không có bất kỳ ảnh hưởng nào đến các
khối khác.
1.1 Continued

Ciphertext Stealing: Đánh cắp bản mã


A technique called ciphertext stealing (CTS) can make it possible to
use ECB mode without padding. In this technique the last two
plaintext blocks, PN−1 and PN , are encrypted differently and out of
order, as shown below, assuming that PN−1 has n bits and PN has m
bits, where m ≤ n .
Một kỹ thuật được gọi là đánh cắp bản mã (CTS) có thể làm cho nó có
thể sử dụng chế độ ECB mà không cần đệm. Trong kỹ thuật này, hai
khối văn bản rõ cuối cùng, PN−1 và PN, được mã hóa khác nhau và
không theo thứ tự, như hình dưới đây, giả sử rằng PN−1 có n bit và PN
có m bit, trong đó m ≤ n.
1.2 Cipher Block Chaining (CBC) Mode

In CBC mode, each plaintext block is exclusive-ored with the


previous ciphertext block before being encrypted.
Trong chế độ CBC, mỗi khối văn bản rõ được XOR với khối bản mã
trước đó trước khi được mã hóa.
Figure 3 Cipher block chaining (CBC)
mode
1.2 Continued
Figure 3 Cipher block chaining
(CBC) mode
1.2 Continued
Example 4
It can be proved that each plaintext block at Alice’s site is recovered
exactly at Bob’s site. Because encryption and decryption are inverses
of each other,
Có thể chứng minh rằng mỗi khối văn bản rõ ràng tại phía Alice được
khôi phục chính xác tại phía Bob. Bởi vì mã hóa và giải mã là nghịch
đảo của nhau,

Initialization Vector (IV): Véc tơ khởi tạo (IV)


The initialization vector (IV) should be known by the
sender and the receiver.
Vectơ khởi tạo (IV) nên được cho bởi người gửi và người
nhận.
1.2 Continued

Error Propagation: Truyền lỗi


In CBC mode, a single bit error in ciphertext block Cj during
transmission may create error in most bits in plaintext block Pj during
decryption.
Trong chế độ CBC, một lỗi bit đơn lẻ trong khối bản mã Cj trong quá
trình truyền có thể tạo ra lỗi ở hầu hết các bit trong khối văn bản rõ Pj
trong quá trình giải mã.
1.2 Continued

Ciphertext Stealing: Đánh cắp bản mã


The ciphertext stealing technique described for ECB mode
can also be applied to CBC mode, as shown below.
Kỹ thuật đánh cắp bản mã được mô tả cho chế độ ECB
cũng có thể được áp dụng cho chế độ CBC, như được hiển
thị bên dưới.

The head function is the same as described in ECB mode;


the pad function inserts 0’s.
Chức năng đầu giống như được mô tả trong chế độ ECB;
hàm pad sẽ chèn các số 0.
1.3 Cipher Feedback (CFB) Mode
In some situations, we need to use DES or AES as secure ciphers, but
the plaintext or ciphertext block sizes are to be smaller.
Trong một số tình huống, chúng ta cần sử dụng DES hoặc AES làm
mật mã an toàn, nhưng kích thước khối bản rõ hoặc bản mã phải nhỏ
hơn. Figure 4 Encryption in cipher feedback (CFB) mode
1.3 Continued

Note
In CFB mode, encipherment and decipherment use
the encryption function of the underlying block
cipher.

The relation between plaintext and ciphertext blocks is


shown below:
1.3 Continued

CFB as a Stream Cipher: CFB như là một dạng mật mã


dòng
Figure 5 Cipher feedback (CFB) mode as a stream cipher
1.3 Continued
1.4 Output Feedback (OFB) Mode

In this mode each bit in the ciphertext is independent of the previous bit
or bits. This avoids error propagation.
Trong chế độ này, mỗi bit trong bản mã độc lập với bit hoặc các bit
trước đó. Điều này tránh sự lan truyền lỗi.
Figure 6 Encryption in output feedback (OFB) mode
1.4 Continued
OFB as a Stream Cipher: OFB như là một dạng
mật mã dòng
Figure 7 Output feedback (OFB) mode as a stream cipher
1.4 Continued
1.5 Counter (CTR) Mode

In the counter (CTR) mode, there is no feedback. The


pseudorandomness in the key stream is achieved using a counter.
Ở chế độ bộ đếm (CTR), không có phản hồi. Tính ngẫu nhiên trong
luồng khóa đạt được bằng cách sử dụng một bộ đếm.
Figure 8 Encryption in counter (CTR) mode
1.5 Continued

Figure 9 Counter (CTR) mode as a stream cipher


1.5 Continued
1.5 Continued

Comparison of Different Modes: So sánh các chế độ khác nhau


2 USE OF STREAM CIPHERS

Although the five modes of operations enable the use of block ciphers for
encipherment of messages or files in large units and small units,
sometimes pure stream are needed for enciphering small units of data
such as characters or bits.
Mặc dù năm chế độ hoạt động cho phép sử dụng mật mã khối để giải mã
thông điệp hoặc tệp theo đơn vị lớn và đơn vị nhỏ, nhưng đôi khi dòng
thuần lại cần thiết để giải mã các đơn vị dữ liệu nhỏ như ký tự hoặc bit.

Topics discussed in this section:


2.1 RC4
2.2 A5/1
2.1 RC4

RC4 is a byte-oriented stream cipher in which a byte (8 bits) of a


plaintext is exclusive-ored with a byte of key to produce a byte of a
ciphertext.
RC4 (Ronald Rivest năm 1984) là một mật mã dòng hướng byte, trong
đó một byte (8 bit) của bản rõ được XOR với một byte khóa để tạo ra
một byte của bản mã. RC4 dùng nhiều trong truyền dữ liệu và giao
thức mạng, bao gồm SSL/TTL, mạng vô tuyến chuẩn IEEE802.11 LAN.
Khóa bí mật (1 byte) được lấy từ luồng khóa sinh ra, có không gian
256 bytes

State
RC4 is based on the concept of a state.
RC4 dựa trên khái niệm về một trạng thái. Một state của 256 bytes
2.1 Continued
Figure 10 The idea of RC4 stream cipher
2.1 Continued

Initialization: Khởi thạo


Initialization is done in two steps:

Key Stream Generation: Tạo luồng khóa


The keys in the key stream are generated, one by one.
2.1 Continued
Algorithm
2.1 Continued
Algorithm Continued
2.1 Continued

Example 5
To show the randomness of the stream key, we use a secret key
with all bytes set to 0. The key stream for 20 values of k is (222, 24,
137, 65, 163, 55, 93, 58, 138, 6, 30, 103, 87, 110, 146, 109, 199, 26,
127, 163).

Example 6
Repeat Example 5, but let the secret key be five bytes of (15, 202,
33, 6, 8). The key stream is (248, 184, 102, 54, 212, 237, 186, 133,
51, 238, 108, 106, 103, 214, 39, 242, 30, 34, 144, 49). Again the
randomness in the key stream is obvious.
2.2 A5/1

A5/1 (a member of the A5 family of ciphers) is used in the Global


System for Mobile Communication (GSM), a network for mobile
telephone communication.
A5 / 1 (một thành viên của họ mật mã A5) được sử dụng trong Hệ thống
toàn cầu cho thông tin di động (GSM), một mạng liên lạc qua điện
thoại di động.
Figure 8.11 General outline of A5/1
2.2 Continued

Key Generator: Tạo khóa


A5/1 uses three LFSRs with 19, 22, and 23 bits.

Figure 12 Three LFSR’s in A5/1


2.2 Continued

Initialization: Khởi tạo


1. set all bits in three LFSRs to 0.
2.

3.
2.2 Continued

4.
2.2 Continued

Example 7

At a point of time the clocking bits are 1, 0, and 1. Which LFSR is


clocked (shifted)?

Solution
The result of Majority (1, 0, 1) = 1. LFSR1 and LAFS3 are shifted,
but LFSR2 is not.
2.2 Continued

Encryption/Decryption
The bit streams created from the key generator are
buffered to form a 228-bit key that is exclusive-ored with
the plaintext frame to create the ciphertext frame.
Encryption/decryption is done one frame at a time.

Mã hóa / Giải mã
Các luồng bit được tạo ra từ bộ tạo khóa được đệm để tạo
thành khóa 228 bit được sử dụng riêng với khung bản rõ
để tạo khung bản mã. Mã hóa / giải mã được thực hiện
từng khung một.
3 OTHER ISSUES

Encipherment using symmetric-key block or stream


ciphers requires discussion of other issues.

Việc xử lý bằng cách sử dụng khối khóa đối xứng


hoặc mật mã dòng yêu cầu thảo luận về các vấn đề
khác.

Topics discussed in this section:


3.1 Key Management
3.2 Key Generation
3.1 Key Management

Alice and Bob need to share a secret key between


themselves to securely communicate using a symmetric-
key cipher. If there are n entities in the community,
n(n − 1)/2 keys are needed.
Alice và Bob cần chia sẻ khóa bí mật giữa họ để giao
tiếp an toàn bằng cách sử dụng mật mã khóa đối
xứng. Nếu có n thực thể trong cộng đồng thì cần n (n
- 1) / 2 khóa.

Note
Key management is discussed later.
3.2 Key Generation

Different symmetric-key ciphers need keys of different sizes. The


selection of the key must be based on a systematic approach to avoid
a security leak. The keys need to be chosen randomly. This implies
that there is a need for random (or pseudorandom) number
generator.
Các mật mã khóa đối xứng khác nhau cần các khóa có kích thước khác
nhau. Việc lựa chọn khóa phải dựa trên cách tiếp cận có hệ thống để tránh
rò rỉ bảo mật. Các phím cần được chọn ngẫu nhiên. Điều này ngụ ý rằng
cần có bộ tạo số ngẫu nhiên (hoặc giả ngẫu nhiên).

You might also like