Đề tài: MỘT SỐ PHƯƠNG PHÁP MÃ HÓA ÂM THANH SỐ
10/19/14Bùi Hương Giang - K20 1/13
BÁO CÁO BÀI TẬP LỚN
MẬT MÃ VÀ AN TOÀN DỮ LIỆU
Giảng viên: PGS.TS. Trịnh Nhật Tiến
Học viên: Bùi Hương Giang – K20
Lớp: INT 6010 2
Mã HV: 13025155
MỘT SỐ PHƯƠNG PHÁP MÃ HÓA ÂM THANH SỐ
10/19/14Bùi Hương Giang - K20 2/13
Nội dung
I- Các phương pháp mã hóa âm thanh số
II- Demo
Phương pháp mã hóa Rijndael (AES)
Phương pháp mã hóa DES
Phương pháp mã hóa RC4
10/19/14
Bùi Hương Giang - K20
3/13
I- Các phương pháp mã hóa âm thanh số
1-Phương pháp mã hóa Rijndael (AES)
Được phát triển bởi Joan Daemen và Vicent Rijnmen
AES: làm việc với các khối dữ liệu đầu vào và đầu ra 128 bit,
Khóa có độ dài 128, 192 hoặc 256 bit
Rijndael: làm việc với dữ liệu và khóa có độ dài bất kỳ là bội số
của 32 bit trong khoảng từ 128-256 bit (128, 160, 192, 224, và 256 bít)
-> Có thể mã hóa các file có dung lượng lớn như âm thanh, video, ảnh,
Mỗi khối dữ liệu 128 bit đầu vào được chia thành 16 byte (mỗi byte 8 bit),
có thể xếp thành 4 cột, mỗi cột 4 phần tử hay là một ma trận 4x4 của các byte,
nó được gọi là ma trận trạng thái
Giới thiệu
10/19/14
Bùi Hương Giang - K20
4/13
1-Phương pháp mã hóa Rijndael (AES)
I- Các phương pháp mã hóa âm thanh số
Mô tả thuật toán:
1- Khởi động vòng lặp
•
AddRoundKey— Mỗi cột của trạng thái đầu tiên lần lượt được kết hợp với một khóa con
theo thứ tự từ đầu dãy khóa, sử dụng phép toán XOR (⊕)
2- Vòng lặp
•
SubBytes— đây là phép thế (phi tuyến) trong đó mỗi byte trong trạng thái sẽ được thế
bằng một byte khác theo bảng tra (Rijndael S-box) : bij= S(aij)
10/19/14
Bùi Hương Giang - K20
5/13
I- Các phương pháp mã hóa âm thanh số
1- Phương pháp mã hóa Rijndael (AES)
2- Vòng lặp (tiếp)
•
ShiftRows— dịch chuyển, các hà ng trong trạng thái được dịch vòng trái theo số bước khác nhau
•
MixColumns— quá trình trộn làm việc theo các cột trong khối theo một phép biến đổi tuyến tính
Mỗi cột được nhân với một hệ số cố định
•
AddRoundKey
10/19/14
Bùi Hương Giang - K20
6/13
I- Các phương pháp mã hóa âm thanh số
1- Phương pháp mã hóa Rijndael (AES)
3- Vòng lặp cuối
•
SubBytes
•
ShiftRows
•
AddRoundKey
Tại chu trình cuối thì bướcMixColumnskhông thực hiện.
Đánh giá thuật toán:
- Độ an toàn cao
-
Hạn chế được các khóa yếu do sự khác nhau trong cấu trúc mã hóa,
thông qua phép XOR
- Thích hợp triển khai trên nhiều loại hệ thống khác nhau
-
Thời gian xử lý việc giải mã lớn hơn mã hóa,
không tận dụng được toàn bộ đoạn chương trình mã hóa
10/19/14
Bùi Hương Giang - K20
7/13
I- Các phương pháp mã hóa âm thanh số
2- Phương pháp mã hóa DES
Là thuật toán mã hóa khối
Xử lý thông tin của bản rõ có độ dài xác định 64 bit
Độ dài khóa chỉ sử dụng 56 bit, số vòng lặp là 16
Nguyên lý:
1- Sử dụng một khóa k tạo ra n khóa con k1, k2, , kn
2- Hoán vị dữ liệu ban đầu
3- Thực hiện n vòng lặp, ở mỗi vòng lặp
+ Dữ liệu được chia thành 2 phần
+ Áp dụng phép toán thay thế lên một phần, phần còn lại giữ nguyên
+ Hoán vị 2 phần cho nhau
4- Hoán vị dữ liệu bước cuối
Giới thiệu
10/19/14
Bùi Hương Giang - K20
8/13
I- Các phương pháp mã hóa âm thanh số
2- Phương pháp mã hóa DES
Mô tả giải thuật
- Có 16 chu trình giống nhau trong quá trình xử lý
- Có 2 lần hoán vị đầu và cuối (IP & FP)
-
Khối thông tin 64 bit trước khi vào chu trình được chia
làm 2 phần và sẽ được xử lý tuần tự thông qua hàm Feistel
- 56 bit khóa con cũng được chia làm 2 phần bằng nhau
-
Mỗi phần được xử lý độc lập, và sau mỗi chu trình
sẽ được dịch chuyển đi 1 hoặc 2 bit
(dịch trái khi mã hóa, dịch phải khi giải mã )
- Khi giải mã các khóa con được thực hiện theo thứ tự ngược lại
10/19/14
Bùi Hương Giang - K20
9/13
I- Các phương pháp mã hóa âm thanh số
2- Phương pháp mã hóa DES
Đánh giá giải thuật
- Khóa 56 bit -> Có 256 = 7.2 * 1016 khóa
=> Khóa yếu, dễ bị bẻ khóa, theo nghiên cứu là chưa đầy 24h
- Hiện nay phương pháp này không còn được sử dụng nhiều,
Thay thế bằng mã hóa 3DES
10/19/14
Bùi Hương Giang - K20
I- Các phương pháp mã hóa âm thanh số
10/13
3- Phương pháp mã hóa RC4
- Được phát triển bởi Ron Rivest
- Giải thuật này sử dụng những từ khóa với chiều dài có thể biến
đổi lên đến 256 bytes.
- RC4 thuộc nhóm mã hóa dòng với độ dài khóa không cố định
- Thủ tục cơ bản nhất trong một hệ mã
dòng bất kỳ là thủ tục sinh Gamma
1.TăngQ1lên1: Q1=(Q1+1)mod256
2.ThayđổigiátrịcủaQ2: Q2=(Q2+S[Q1])mod256
3.Hóanđổigiátrịcủa2phầntử: S[Q1]↔S[Q2]
4.TínhtrổngTcủa2phầntửnày: T=(S[Q1]+S[Q2])mod256
5.Gángiátrịchoγ: γ=S[T]
Giới thiệu
10/19/14
Bùi Hương Giang - K20
I- Các phương pháp mã hóa âm thanh số
11/13
3- Phương pháp mã hóa RC4
•
Xáo trộn khối S:
•
i = 0 255
•
j = (j + S[i] + k[i]) mod 256
•
Hoán đổi giá trị: S[i] ↔ S[j]
•
Sinh một giá trị Gamma: γ
•
Đọc một ký tự Xi từ bản tin.
•
Thực hiện phép XOR giữa Xi và γ sẽ thu được một ký tự của bản mã Yi: Yi = Xi Å γ
Khởi tạo khối S
- Gán cho mỗi phần tử giá trị bằng chỉ số của nó: S[i] = i; i=0 255
- Tạo một mảng k gồm 256 phần tử, mỗi phần tử có kích thước 1 byte.
- Điền đầy bảng k bằng các byte của khóa K: k[0]=K[0], k[1]=K[1],
- Khởi tạo biến đếm j: j=0;
Mã hóa và giải mã
Giải thuật
10/19/14
Bùi Hương Giang - K20
I- Các phương pháp mã hóa âm thanh số
12/13
3- Phương pháp mã hóa RC4
Đánh giá giải thuật
- Thuật toán đơn giản. Ý nghĩa của từng bước rõ ràng logic
-
RC4 an toàn với cả 2 phương pháp thám mã cơ bản là
thám mã tuyến tính và thám mã vi phân
- Số trạng thái mà RC4 có thể có là 256! X 256 x 256=21700
- Có thể thay đổi kích thước của bảng anphabet (4bits, 16 bits, )
10/19/14
Bùi Hương Giang - K20
13/13
II- Demo phương pháp mã hóa Rijndael