Chủ đề 3: Modes of Operation và Padding Scheme
Nội dung
CCáácc kikiểểuu thao CCáácc kikiểểuu chchèènn bbổổ sung (Modes of Operation) thao ttáácc (Modes of Operation) sung thông tin (Padding Scheme) thông tin (Padding Scheme)
(Modes of Operation) CCáácc kikiểểuu thaothao ttáácc (Modes of Operation)
Trong mãmã hhóóaa, , thưthườờngng ddữữ liliệệuu đưđượợcc chiachia ththàànhnh ttừừngng Trong (block) ccóó kkííchch thưthướớcc ccốố đđịịnhnh ((vvíí ddụụ nhưnhư 64 hay đođoạạnn (block) 64 hay 128 bit). 128 bit). ĐĐểể mãmã hhóóaa ccáácc thông thông điđiệệpp ddààii ((ccóó ththểể chiachia ththàànhnh nhinhiềềuu block), ccóó ththểể ssửử ddụụngng ccáácc kikiểểuu thaothao ttáácc khkháácc nhaunhau block), ((modesmodes ofof operation operation)) khkháácc nhaunhau
(Modes of Operation) CCáácc kikiểểuu thaothao ttáácc (Modes of Operation)
thông tin (
(ECB, CBC, CCáácc kikiểểuu thaothao ttáácc đđầầuu tiêntiên đưđượợcc đđềề nghnghịị (ECB, CBC, confidentiality), ), OFB, CFB) đđảảmm bbảảoo ttíínhnh bbíí mmậậtt ((confidentiality OFB, CFB) không gigiúúpp đđảảmm bbảảoo ttíínhnh totoàànn vvẹẹnn thông message tin (message không integrity) ) integrity CCáácc kikiểểuu thaothao ttáácc đưđượợcc thithiếếtt kkếế chocho phphéépp ((CCMCCM, , EAXEAX vvàà OCBOCB) ) vvừừaa đđảảmm bbảảoo ttíínhnh bbíí mmậậtt, , vvừừaa đđảảmm bbảảoo tin. thông tin. xxáácc đđịịnhnh ttíínhnh totoàànn vvẹẹnn thông MMộộtt ssốố kikiểểuu thaothao ttáácc đưđượợcc xâyxây ddựựngng đđểể mãmã hhóóaa sector sector trêntrên đđĩĩaa::
narrow--block encryption block encryption ––LRWLRW
Tweakable narrow Tweakable WideWide--block encryption block encryption --CMCCMC vvàà EMEEME
Electronic codebook (ECB) Electronic codebook (ECB)
codebook electronic codebook
khuyếếnn khkhííchch ssửử ddụụngng ECBECB trong trong ccáácc giaogiao
KiKiểểuu mãmã hhóóaa đơnđơn gigiảảnn nhnhấấtt llàà electronic ((ECBECB) ) Thông điđiệệpp ccầầnn mãmã hhóóaa đưđượợcc chiachia ththàànhnh ttừừngng đođoạạnn, , Thông mmỗỗii đođoạạnn đưđượợcc mãmã hhóóaa đđộộcc llậậpp nhaunhau. . dung, , sausau khikhi mãmã hohoáá HHạạnn chchếế: : ccáácc khkhốốii ccóó ccùùngng nnộộii dung xong ccũũngng ttạạoo ththàànhnh ccáácc khkhốốii kkếếtt ququảả gigiốốngng hhệệtt xong nhaunhau (cid:206)(cid:206) Không Không cheche gigiấấuu đưđượợcc ccáácc ““mmẫẫuu”” ddữữ liliệệuu (data pattern). . (data pattern) Không khuy Không ththứứcc mãmã hhóóaa
Electronic codebook (ECB) Electronic codebook (ECB)
Electronic codebook (ECB) Electronic codebook (ECB)
Electronic codebook (ECB) Electronic codebook (ECB)
ẢẢnh gnh gốốcc
Mã hMã hóóa a theo kiểểu u ECBECB theo ki
Mã hMã hóóa a theo cáác kic kiểểu khu kháácc theo c
m cho giao thứức kc kéém an to
n thông tin (víí ddụụ như đ như đốối vi vớới ki m an toààn đn đểể bbảảo vo vệệ n công i kiểểu tu tấấn công
ECBECB ccóó ththểể llààm cho giao th ttíính to nh toààn vn vẹẹn thông tin (v attacks)) replay attacks replay
block chaining (CBC) Cipher--block chaining (CBC) Cipher
cipher--block chaining
(CBC):: block chaining (CBC) ciphertext plaintext đưđượợcc XORXOR vvớớii khkhốốii ciphertext
ciphertext phphụụ thuthuộộcc vvààoo ttấấtt ccảả plaintext xuxuấấtt hihiệệnn ttừừ đđầầuu đđếếnn ththờờii điđiểểmm
thông điđiệệpp đưđượợcc ttạạoo vector khkhởởii
Trong kikiểểuu mãmã hhóóaa cipher Trong MMỗỗii khkhốốii plaintext trưtrướớcc khikhi đưđượợcc mãmã hhóóaa. . NhưNhư vvậậyy, , mmỗỗii khkhốốii ciphertext ccáácc khkhốốii plaintext đđóó ĐĐểể đđảảmm bbảảoo ttíínhnh duyduy nhnhấấtt ccủủaa mmỗỗii thông mãmã hhóóaa, , tata ssửử ddụụngng thêmthêm vector initialization vector)) ((initialization vector
block chaining (CBC) Cipher--block chaining (CBC) Cipher
CC00 = IV= IV CCii = = EEKK ((PPii ⊕⊕ CCii –– 11))
block chaining (CBC) Cipher--block chaining (CBC) Cipher
CC00 = IV= IV PPii = = DDKK ((CCii ) ) ⊕⊕ CCii –– 11
block chaining (CBC) Cipher--block chaining (CBC) Cipher
CBC llàà kikiểểuu mãmã hhóóaa thưthườờngng đưđượợcc ssửử ddụụngng nhnhấấtt CBC HHạạnn chchếế: : xxửử lýlý tutuầầnn ttựự, , không song hhóóaa
song song song counter mode đđểể xxửử lýlý song
không ththểể song ccóó ththểể chchọọnn gigiảảii phpháápp counter mode song song
block chaining (PCBC) Propagating cipher--block chaining (PCBC) Propagating cipher
CBC. trong kikiểểuu CBC. = IV, CC00 = 0, = 0, CCii = = EEKK ( ( PPii ⊕⊕ PPii –– 11 ⊕⊕ CCii –– 11) ) = IV, CC00 = 0, = 0, PPii = = DDKK ((CCii ) ) ⊕⊕ PPii –– 11 ⊕⊕ CCii –– 11 trong Kerberos Kerberos vvàà
KiKiểểuu mãmã hhóóaa propagating cipher block chaining propagating cipher--block chaining đưđượợcc thithiếếtt kkếế chocho phphéépp ssựự ảảnhnh hưhưởởngng lanlan truytruyềềnn nhinhiềềuu hơnhơn trong PP00 = IV, PP00 = IV, PCBC thưthườờngng đưđượợcc ddùùngng chchủủ yyếếuu trong PCBC WASTE ((ngongoààii rara ththìì íítt thông WASTE thông ddụụngng !)!)
Cipher feedback (CFB) Cipher feedback (CFB)
BBảảnn chchấấtt::
Plaintext KHÔNG đưđượợcc mãmã hhóóaa bbằằngng chchíínhnh thuthuậậtt Plaintext KHÔNG totoáánn đangđang xxéétt Plaintext đưđượợcc mãmã hhóóaa bbằằngng ccááchch XOR XOR vvớớii mmộộtt Plaintext chuchuỗỗii đưđượợcc ttạạoo rara bbằằngng thuthuậậtt totoáánn mãmã hhóóaa.. stream cipher Block Cipher ththàànhnh stream cipher BiBiếếnn Block Cipher
Cipher feedback (CFB) Cipher feedback (CFB)
CC00 = IV= IV CCii = = PPii ⊕⊕ EEKK ((CCii –– 11) )
Cipher feedback (CFB) Cipher feedback (CFB)
Output feedback (OFB) Output feedback (OFB)
BBảảnn chchấấtt::
Plaintext KHÔNG đưđượợcc mãmã hhóóaa bbằằngng chchíínhnh thuthuậậtt Plaintext KHÔNG totoáánn đangđang xxéétt Plaintext đưđượợcc mãmã hhóóaa bbằằngng ccááchch XOR XOR vvớớii mmộộtt Plaintext chuchuỗỗii đưđượợcc ttạạoo rara bbằằngng thuthuậậtt totoáánn mãmã hhóóaa.. stream cipher Block Cipher ththàànhnh stream cipher BiBiếếnn Block Cipher
Output feedback (OFB) Output feedback (OFB)
OO00 = IV= IV OOii = = EEKK ((OOii –– 11) ) CCii = = PPii ⊕⊕ OOii
Output feedback (OFB) Output feedback (OFB)
OO00 = IV= IV OOii = = EEKK ((OOii –– 11) ) PPii = = CCii ⊕⊕ OOii
Counter (CTR)
Segmented Integer Counter llàà Segmented Integer Counter
OFB, kikiểểuu Counter block cipher Counter ccũũngng bibiếếnn block cipher
keystream titiếếpp theotheo bbằằngng ccááchch mãmã hhóóaa
KiKiểểuu CTR CTR còncòn ggọọii (SIC) (SIC) Tương ttựự OFB, Tương ththàànhnh stream cipher stream cipher. . block keystream TTạạoo rara block "counter". gigiáá trtrịị kkếế titiếếpp ccủủaa "counter". không Counter ccóó ththểể llàà bbấấtt kkỳỳ hhààmm nnààoo sinhsinh rara dãydãy ssốố không Counter ccóó gigiáá trtrịị llặặpp llạạii sausau mmộộtt khokhoảảngng ththờờii giangian đđủủ lâulâu
Counter (CTR)
nhiên”” bbấấtt kkỳỳ khkhốốii
nonce gigiốốngng nhưnhư
hay XOR đđểể ttạạoo ththàànhnh 1 1 dãydãy bit bit đđặặcc trưng
OFC, CTR CTR ccóó ttíínhnh chchấấtt gigiốốngng OFC, CTR CTR chocho phphéépp gigiảảii mãmã ““ngngẫẫuu nhiên cipherytext nnààoo cipherytext LưuLưu ý: ý: vaivai tròtrò ccủủaa đođoạạnn ddữữ liliệệuu nonce (IV) initialization vector (IV) initialization vector counter ccóó ththểể đưđượợcc nnốốii vvớớii nhaunhau, , IV/nonce vvàà gigiáá trtrịị counter IV/nonce ccộộngng hay XOR trưng duyduy nhnhấấtt ứứngng vvớớii mmỗỗii gigiáá trtrịị counter counter ccụụ ththểể
Counter (CTR)
Counter (CTR)
Sự lan truyền lỗi
lan truyềền ln lỗỗi: 1 tiêu ch
i: 1 tiêu chíí đ đểể đ đáánh gi
u mã hóóaa
nh giáá kikiểểu mã h i mã thông tin trong i khi giảải mã thông tin trong
: Khảảo so sáát st sựự lan truy
lan truyềền ln lỗỗi khi gi
HHạạn chn chếế ssựự lan truy VVíí ddụụ: Kh CBCCBC
Initialization vector (IV)
ECB) đđềềuu ssửử ddụụngng
TTấấtt ccảả ccáácc kikiểểuu mãmã hhóóaa ((ngongoạạii trtrừừ ECB) IV). initialization vector -- IV). vector khkhởởii ttạạoo ((initialization vector vector TTáácc ddụụngng ccủủaa IV: IV: không Dummy block đđểể viviệệcc xxửử lýlý khkhốốii đđầầuu tiêntiên không Dummy block khkháácc bibiệệtt so so vvớớii viviệệcc xxửử lýlý ccáácc khkhốốii titiếếpp thaothao nhiên ccủủaa quyquy trtrììnhnh mãmã hhóóaa. . TăngTăng ttíínhnh ngngẫẫuu nhiên
IV: IV:
Không ccầầnn gigiữữ bbíí mmậậtt Không CCầầnn đđảảmm bbảảoo llàà hhạạnn chchếế viviệệcc ssửử ddụụngng llạạii ccùùngng gigiáá trtrịị IV IV vvớớii ccùùngng 1 1 khkhóóaa. .
Initialization vector (IV)
i giáá trtrịị IV l m rò rỉỉ IV lààm rò r i CBC vàà CFB, s CFB, sửử ddụụng lng lạại gi
i IV lààm phm pháá vvỡỡ hohoààn n i OFB vàà CTR, s CTR, sửử ddụụng lng lạại IV l
t sinh ngẫẫu nhiên v
n khi nộội dung c u nhiên vàà gigiữữ i plaintext đầầu u i dung củủa kha khốối plaintext đ
VVớới CBC v thông tin. thông tin. VVớới OFB v nh an toààn cn củủa ha hệệ ththốốngng totoààn tn tíính an to IV trong CFB phảải đưi đượợc phc pháát sinh ng IV trong CFB ph bbíí mmậật cho đ t cho đếến khi n tiên đượợc sc sẵẵn sn sààng đng đểể mã hmã hóóaa tiên đư
Các kiểu chèn bổ sung thông tin
ch thướớc phc phùù hhợợp cho vi sung thông tin đểể khkhốối di dữữ liliệệu u p cho việệc mã h
ch thướớc phc phùù hhợợp vp vớới i
sung cóó kkíích thư
u sau khi bổổ sung c
c mã hóóaa
ng khôi phụục chc chíính xnh xáác dc dữữ liliệệu sau khi gi
i mã u sau khi giảải mã
sung thêm vàào)o)
Padding Scheme: bbổổ sung thông tin đ Padding Scheme: c mã hóóaa ccóó kkíích thư Yêu cYêu cầầu:u:
CCáác phương ph
KhKhốối di dữữ liliệệu sau khi b viviệệc mã h CCóó ththểể ddễễ ddààng khôi ph (c(cắắt bt bỏỏ chchíính xnh xáác cc cáác dc dữữ liliệệu bu bổổ sung thêm v c phương phááp cơ b p cơ bảản:n: RFC1321 Bit Padding: xem RFC1321 Bit Padding: xem
http://www.faqs.org/rfcs/rfc1321.html http://www.faqs.org/rfcs/rfc1321.html
RFC1319 Byte Padding: xem RFC1319 Byte Padding: xem
http://www.faqs.org/rfcs/rfc1319.html http://www.faqs.org/rfcs/rfc1319.html
Các kiểu chèn bổ sung thông tin
ch thướớc khc khốối di dữữ liliệệu u ““chuchuẩẩnn””: : nn bitbit
ch thướớc c mm bit (bit (mm ≤≤ nn))
Bit Padding: Bit Padding: KKíích thư KhKhốối di dữữ liliệệu gu gốốc c MM ccóó kkíích thư u sau khi padding KhKhốối di dữữ liliệệu sau khi padding
MM
11 00……00
LL = = nn –– ((mm mod mod nn)) ĐiĐiềều gu gìì xxảảy ra n
y ra nếếu u mm = = nn??
mm bitbit
1 bit1 bit (L (L –– 1) bit 1) bit
Các kiểu chèn bổ sung thông tin
Byte Padding (PKCS5): Byte Padding (PKCS5):
ch thướớc khc khốối di dữữ liliệệu u ““chuchuẩẩnn””: : nn byte ( ch thướớc c mm byte ( byte (nn < 256) < 256) byte (mm ≤≤ nn))
KKíích thư KhKhốối di dữữ liliệệu gu gốốc c MM ccóó kkíích thư u sau khi padding KhKhốối di dữữ liliệệu sau khi padding
MM
L L …… LL
LL = = nn –– ((mm mod mod nn)) ĐiĐiềều gu gìì xxảảy ra n
y ra nếếu u mm = = nn??
LL bytebyte
mm bytebyte
Tìm hiểu thêm
OAEPOAEP CCMCCM EAXEAX OCBOCB

