ì
Bài Thảo Luận : Thực tập an toàn thông tin
Bài Thảo Luận : Thực tập an toàn thông tin
Chủ đề : Tìm hiểu mã hoá khối
Chủ đề : Tìm hiểu mã hoá khối
Giáo viên hướng dẫn : TH.S CAO NGỌC ÁNH
Giáo viên hướng dẫn : TH.S CAO NGỌC ÁNH
Thành viên:
Thành viên:
►
►
Bùi Vĩnh Tiến
Bùi Vĩnh Tiến
►
►
Nguyễn Duy Trung
Nguyễn Duy Trung
►
►
Lê Công Đồng
Lê Công Đồng
I. Mã kh iố
Mã hóa kh i là nh ng thu t toán mã hóa đ i x ng ho t đ ng trên ố ữ ậ ố ứ ạ ộ
nh ng kh i thông tin có đ dài xác đ nh(block) v i nh ng chuy n đ i ữ ố ộ ị ớ ư ể ổ
xác đ nh. ị
Phân bi t v i mã hóa kh i là mã hóa dòng. Mã hóa dòng làm vi c trên ế ớ ố ệ
t ng bít c a d li u và quá trình bi n đ i thay đ i theo quá trình mã ừ ủ ữ ệ ế ổ ổ
hóa. Tuy nhiên, s phân bi t gi a 2 ph ng pháp nhi u khi không rõ ự ệ ữ ươ ề
ràng vì mã hóa kh i khi ho t đ ng theo m t ch đ nào đó thì có tác ố ạ ộ ộ ế ộ
d ng nh m t ph ng pháp mã hóa dòng.ụ ư ộ ươ
Đ xây d ng thu t toán mã hóa kh i an toàn b ng cách s d ng k t ể ự ậ ố ằ ử ụ ế
h p các thao tác mã hóa t o ra tính h n lo n và tính khu ch tán thông ợ ạ ỗ ạ ế
tin:
Tính h n lo n giúp phá v m i quan h gi a b n rõ và b n mã, t o ỗ ạ ỡ ố ệ ữ ả ả ạ
ra m i quan h ph c t p và ch t ch gi a khóa và b n mã.ố ệ ứ ạ ặ ẽ ữ ả
S khu ch tán giúp phá v và phân tán các ph n t trong các m ự ế ỡ ầ ử ẫ
xu t hi n trong b n rõ đ không th phát hi n ra các m u này ấ ệ ả ể ể ệ ẫ
trong b n mã.ả
II. Các ch đ s d ng Mã kh iế ộ ử ụ ố
1. Ch đ b ng tra mã đi n t (Electronic code book -ECB)ế ộ ả ệ ử
Ký hi u :ệ
E : Encryption (Mã hóa)
Pi : Plaintext block I (Kh i b n rõ)ố ả
K : Secret key (Khóa b o m t)ả ậ
D : Decryption (Gi i mã)ả
Ci : Ciphertext block i (Kh i b n mã)ố ả
Mã hóa:
Cj= Ek(Pj)
P=P1P2…Pn
Giải mã:
Pj= Dk(Cj)
Chỉ thích hợp cho việc mã
hóa các thông điệp ngắn.
Bảng mã của thông điệp dài
có tính an toàn không cao.
u đi m c a ECB :Ư ể ủ
Đ n gi n ơ ả
Không câ n đô ng bô hóa gi a be n g i và nhân. ̀ ̀ ̃ ̣̂ ư ử ̣
Các bit l i s không đ c đ a vào các kh i k sau . ỗ ẽ ượ ư ố ế
Nh c đi m :ượ ể
Trong ch đ này, các kh i đ c t o m t mã riêngbi t, đ c l p. Do ế ộ ố ượ ạ ậ ệ ộ ậ
đó, nh ng kh i tin gi ng nhau s đ c mã hóa thành nh ng kh i mã ữ ố ố ẽ ượ ữ ố
gi ng nhau.ố
Traffic analysis (Phân tích đ ng truy n): Ng i tha m mã có th d a ́ườ ề ườ ể ự
vào y u t ca c khô i plaintext giô ng nhau t o các th ng kê v các ́ ́ ́ế ố ạ ố ề
b n rõ t ng ng ngay c khi không gi i mã đ c toàn b b n mã, ả ươ ứ ả ả ượ ộ ả
ng i thám mã có th l i d ng th ng ke này đ khám phá khóa.̂ườ ể ợ ụ ố ể
Substitution attack (T n công thay th ): Mode ECB không b o v ấ ế ả ệ
đ c b n mã nhi u kh i. Đ i th có th s a đ i 1 thông báo dài b ng ượ ả ề ố ố ủ ể ử ổ ằ
cách ch c n xóa b t hay thay đ i th t m t vài kh i. N u đ i th ỉ ầ ớ ổ ứ ự ộ ố ế ố ủ
có trong tay 1 vài kh i mã đ c mã hóa cùng khóa v i thông ba o, đ i ́ố ượ ớ ố
th có th chèn nó vào b n mã. ECB không ne n dùng đ mã hóa các ̂ủ ể ả ể
b n rõ dài có nhi u kh i.ả ề ố
Ví dụ
N u ECB đ c s d ng trong truy n tin m t trong giao d ch ngân hàng, k đ ch có ế ượ ử ụ ề ậ ị ẻ ị
th t n công làm gi thông báo, l nh chuy n tài kho n. Nh c đi m nói trên ể ấ ả ệ ể ả ượ ể
khi n cho vi c truy n tin m t theo ch đ mã này là không có l i, tuy nhiên ch ế ệ ề ậ ế ộ ợ ế
đ này th ng đ c dùng trong mã hóa thông tin l u tr , ví d nh các c s d ộ ườ ượ ư ữ ụ ư ơ ở ữ
li u vì nó cho phép t ng đ n v d li u đ c mã hóa đ c l p và do đó có th c p ệ ừ ơ ị ữ ệ ượ ộ ậ ể ậ
nh t thay đ i d dàng t ng ph n mà không đ ng ch m đ n các ph n khác c a c ậ ổ ễ ừ ầ ộ ạ ế ầ ủ ơ
s d li u.ở ữ ệ
VD1: Mã hóa và gi i mã b n rõ : “Hello !!Hello !!Hello !!” Key : “abcdefgh” theo ả ả
h mã DES v i c ch ma hóa ECB.̃ệ ớ ơ ế
Ta có
B n rõ C (ASCII) : Hello !!Hello !!Hello !!ả
B n rõ C (HEX) : 48656C6C6F20212148656C6C6F20212148656C6C6F202121ả
Khóa key (ASCII) : abcdefgh
Khóa key (HEX) : 6162636465666768
Kh iố Kh i b n rõố ả Kh i mã mã hóa DESố
Kh i mã sau khi mã hóa ố
DES
Kh i b n mãố ả
C1 48656C6C6F202121 48656C6C6F202121 44665395698A26B9 44665395698A26B9
C2 48656C6C6F202121 48656C6C6F202121 44665395698A26B9 44665395698A26B9
C3 48656C6C6F202121 48656C6C6F202121 44665395698A26B9 44665395698A26B9
VD1.1. Mã hóa
B1 : Chia bản rõ ra thành các khối bản rõ (Plaintext block) 64bit
Bản rõ gồm các khối : C1: 48656C6C6F202121
C2: 48656C6C6F202121
C3: 48656C6C6F202121
B2 : Mã hóa các khối bản rõ theo hệ mã DES bằng khóa Key :
6162636465666768
B3 : Sau khi mã hóa được các khối thì bản mã chính là tổng hợp của các khối
bản mã
Bản mã sau khi mã hóa DES theo chế độ ECB :
44665395698A26B944665395698A26B944665395698A26B9
2. Ch đ mã móc xích (Cipher Block Chaining -CBC)ế ộ
Ký hi u :ệ
E : Encryption (Mã hóa)
Pi : Plaintext block I (Kh i b n rõ)ố ả
K : Secret key (Khóa b o m t)ả ậ
D : Decryption (Gi i mã)ả
Ci : Ciphertext block i (Kh i b n mã)ố ả
IV : Initial Vector (C0)
•
Trong chế độ này, mỗi khối tin trước khi được mã hóa thì được XOR với khối mã sinh
ra từ bước trước đó.
Hàm mã hóa:
C0 = IV
Cj= Ek(Cj-1
XOR Pj)
1.Hàm giải mã:
Pj= Cj-1 XOR
Dk(Cj)
Chú ý khối đầu
tiên:
C0 = Ek(IV
XOR Pj)
P0 = IV XOR
Dk(C1)
Ca c v n đê bao m t trong CBĆ ̀ấ ̉ ậ
Ca c khô i plaintext giô ng nhau trong cùng 1 message th ng đ c mã ́ ́ ́ ̀ươ ượ
hóa thành ca c khô i ciphertext kha c nhau. Tuy nhie n ne u 2 message ́ ́ ́ ̂ ̂
giô ng nhau thì se cho ke t qua mã hóa giô ng nhau ne u cùng gia tri ́ ̃ ̂́ ́ ̂́ ́̉ ̣
IV.
Error Propagation : Các kh i ciphertext có liên quan v i nhau, vì v y có ố ớ ậ
nghĩa là ca c l i cũng s truy n theo.– Vi d : kh i mã ci đ c truy n ́ ́ỗ ẽ ề ụ ố ượ ề
v i 1 l i, khi đó khô i ci và ci+1 s gi i mã không đu ng. Nh ng t t c ́ ́ớ ỗ ẽ ả ư ấ ả
ca c kh i mã kha c c1, ,ci−1, ci+2, , không bi anh h ng.́ ́ố ̣ ̉ ưở
Ví dụ
VD2: Mã hóa và gi i mã b n rõ : “Hello !!Hello !!Hello !!” Key : ả ả
“abcdefgh” Initialization Vector(IV): “defghabc” theo h mã DES v i ệ ớ
c ch ma hóa CBC̃ơ ế
Ta có
B n rõ C (ASCII) : Hello !!Hello !!Hello !!ả
Bản rõ C(HEX) :
48656C6C6F20212148656C6C6F20212148656C6C6F202121
Khóa key (ASCII) : abcdefgh
Khóa key (HEX) : 6162636465666768
IV (ASCII) : defghabc
IV (HEX) : 6465666768616263
B3 : XOR Kh i b n mã P1 v i C2 sau đó th c hi n mã hóa DES v i khóa key ta ố ả ớ ự ệ ớ
đ c kh i b n mã P2ượ ố ả
C2: 48656C6C6F202121
P1: 894D6EB32C66803C
C2 XOR P1 : C12802DF4346A11D
Mã hóa DES C2 XOR P1 v i khóa Key ta đ c b n mã P2: C12802DF4346A11Dớ ượ ả
B4 : L p l i b c 3 đ n khi mã hóa h t các kh i b n rõ ặ ạ ướ ế ế ố ả
XOR Kh i b n mã P2 v i C3 sau đó th c hi n mã hóa DES v i khóa key ta đ c ố ả ớ ự ệ ớ ượ
kh i b n mã P3ố ả
C3: 48656C6C6F202121
P2: C12802DF4346A11D
C3 XOR P2: 894D6EB32C66803C
Mã hóa DES C3 XOR P2 v i khóa Key ta đ c b n mã P3: 894D6EB32C66803Cớ ượ ả
B5 : Sau khi mã hóa đ c toàn b các kh i b n rõ ta đ c b n mã là t p h p ượ ộ ố ả ượ ả ậ ợ
c a các kh i b n mã ủ ố ả
B n mã sau khi mã hóa DES ch đ CBC :ả ở ế ộ
894D6EB32C66803C C12802DF4346A11D894D6EB32C66803C
3.Ch đ Mã ph n h i k-bit (k-bit Cipher Feedback Mode -CFB)ế ộ ả ồ
Ký hi u :ệ
E : Encryption (Mã hóa)
Pi : Plaintext block I (Kh i b n rõ)ố ả
K : Secret key (Khóa b o m t)ả ậ
D : Decryption (Gi i mã)ả
Ci : Ciphertext block i (Kh i b n mã)ố ả
IV : Initial Vector (C0)
W
Mã hóa
Cj= Pj XOR Ek(Cj-1)
Giải mã:
Pj= Cj XOR Dk(Cj-1)
Ví dụ
VD3: Mã hóa và gi i mã b n rõ : “Hello !!Hello !!Hello !!” Key : “abcdefgh” ả ả
Initialization Vector(IV): “defghabc” theo h mã DES v i c ch ma hóa CFB̃ệ ớ ơ ế
Ta có
B n rõ C (ASCII) : Hello !!Hello !!Hello !!ả
B n rõ C (HEX) : 48656C6C6F20212148656C6C6F20212148656C6C6F202121ả
W
Khóa key (ASCII) : abcdefgh
Khóa key (HEX) : 6162636465666768
IV (ASCII) : defghabc
IV (HEX) : 6465666768616263
VD3.1. Mã hóa
B1 : Chia b n rõ ra thành các kh i b n rõ (Plaintext block) 64bitả ố ả
B n rõ g m các kh i : ả ồ ố C1: 48656C6C6F202121
C2: 48656C6C6F202121
C3: 48656C6C6F202121
B2 : Th c hi n mã hóa DES IV v i khóa Keyự ệ ớ
Mã hóa DES IV : 6465666768616263
Key : 6162636465666768
K t qu Des1: ế ả 2FDC6E5FFFB9157F
B3 : Th c hi n XOR K t qu sau khi mã hóa DES : Des1 v i kh i b n rõ ự ệ ế ả ớ ố ả
C1 ta đ c kh i b n mã P1ượ ố ả
C1: 48656C6C6F202121
Des1: 2FDC6E5FFFB9157F
P1: 67B902339099345E
W
B4 : Th c hi n mã hóa DES P1 v i khóa Key sau đó XOR v i kh i b n ự ệ ớ ớ ố ả
rõ C2 ta đ c kh i b n mã P2ượ ố ả
Mã hóa DES P1: 67B902339099345E
Key: 6162636465666768
K t qu Des2:ế ả 5B5C22D51D1A5B49
Th c hi n XOR k t qu Des2 v i C2 ta đ c P2ự ệ ế ả ớ ượ
C2: 48656C6C6F202121
Des2: 5B5C22D51D1A5B49
P2:
13394EB9723A7A68
B5 : L p l i b c 4 đ n khi mã hóa h t các kh i b n rõ ặ ạ ướ ế ế ố ả
Th c hi n mã hóa DES P2 v i khóa Key sau đó XOR v i kh i b n rõ C3 ta ự ệ ớ ớ ố ả
đ c kh i b n mã P3ượ ố ả
Mã hóa DES P2: 13394EB9723A7A68
Key: 6162636465666768
K t qu Des3:ế ả E832BC92806BFB2C
Th c hi n XOR k t qu Des3 v i C3 ta đ c P3ự ệ ế ả ớ ượ
C3: 48656C6C6F202121
Des3: E832BC92806BFB2C
P3: A057D0FEEF4BDA0D
B6: Sau khi mã hóa đ c toàn b các kh i b n rõ ta đ c b n mã là t p ượ ộ ố ả ượ ả ậ
h p c a các kh i b n mã ợ ủ ố ả
B n mã sau khi mã hóa DES ch đ CFB :ả ở ế ộ
67B902339099345E13394EB9723A7A68
A057D0FEEF4BDA0D
III. Ý nghĩa c a m t mã kh i ủ ậ ố
Mã kh i có m t u đi m đó là t c đ mã hoá r t nhanh, ố ộ ư ể ố ộ ấ
nó có th đáp ng cho vi c mã d li u, ti ng nói. Mã ể ứ ệ ữ ệ ế
kh i là y u t n i b t và quan tr ng trong m t s các h ố ế ố ổ ậ ọ ộ ố ệ
th ng m t mã. C th chúng cung c p m t s tin c y. ố ậ ụ ể ấ ộ ự ậ
Gi ng nh vi c xây d ng m t kh i c b n, chúng linh ố ư ệ ự ộ ố ơ ả
ho t h n trong vi c cho phép xây d ng các s gi ng u ạ ơ ệ ự ố ả ẫ
nhiên, dòng khoá, MAC và các hàm băm. Mã kh i có th ố ể
ng d ng cho c các thu t toán mã hoá bí m t và công ứ ụ ả ậ ậ
khai.