text: 在密碼學中，密文竊取是使用分組密碼操作模式的通用方法，該操作模式允許處理不能均勻分割成塊的訊息，而不會延長密文，代價是略為複雜。一般特性.密文竊取是一種使用塊密碼對明文進行加密的技術，但不將資訊填充為塊大小的倍數，因此密文與明文大小相同。它透過改變資訊最後兩個區塊的處理過程來實現這一目的。除最後兩個區塊外，其他所有區塊的處理都保持不變，但倒數第二個區塊的部分密文會被 "竊取"，以填充最後一個明文區塊。然後照常加密經過填充的最後一個區塊。最後兩個區塊的最終密文由部分倒數第二個區塊和完整的最後一個區塊組成，大小與原始明文相同。解密時需要先解密最後一個區塊，然後將竊取的密文還原到倒數第二個區塊，然後再像往常一樣解密。原則上，可以使用任何面向區塊的區塊密碼操作模式，但類似流密碼的模式已經可以應用於任意長度的資訊，而無需填充，因此它們無法從這項技術中受益。與密文竊取相結合的常見操作模式是電子密碼本。ECB 模式的密文竊取要求明文長度超過一個區塊。一種可行的變通方法是，當明文長度為一個或更少時，使用類似流密碼的塊密碼操作模式，如 CTR、CFB 或 OFB 模式。CBC 模式的密文竊取並不一定要求明文長度超過一個區塊。在明文長度為一個區塊或更短的情況下，初始化向量，則可能無法做到這一點，在這種情況下，CBC 模式的密文竊取只能發生在明文長度超過一個區塊的情況下。要對未知長度的資料進行 CTS 加密或解密，必須延遲處理最近的兩個資料塊，以便在資料流結束時對其進行適當處理。密文格式.有幾種不同的方式來排列密文以便傳輸。不同排列方式的密文位元數都相同，只是傳輸順序不同，因此選擇不影響安全性，純粹是為了方便實現。這裡的編號取自Dworkin所描述的。第三種最流行，由Daemen和Schneier描述；Meyer描述了相關但不相容的方案。CS1.安排密文傳輸最顯而易見的方式，不外乎是縮短倒數第二塊，後面接著完整的最後一塊。但這對接收者來說不方便，原因有二：這樣做的好處是，如果最後的明文塊恰好是塊大小的倍數，密文就與原始操作模式相同，避免了密文竊取。CS2.通常，更方便的方式是交換最後兩塊密文塊，因此密文結尾先是完整的最後一塊，然後是截斷的倒數第二塊。密文塊就會自然對齊。為了保持與非竊取模式的相容性，CS2只在竊取密文的數量非零時交換，即原始訊息不是塊大小的倍數。這保持了自然的對齊，以及與非竊取模式的相容性，但是需要以不同的方式處理對齊和不對齊訊息大小的情況。CS3.最流行的替代方案是無條件交換最後兩塊密文塊。下面描述了使用該方案的順序。竊取密文模式描述CS3.為了加密或解密資料，對除最後兩個資料塊外的所有資料塊使用標準分組密碼操作模式。下面的步驟描述瞭如何處理明文的最後兩個塊，即Pn-1和Pn，其中Pn-1的長度等於以位表示的密碼的塊大小B；最後一個塊的長度Pn是百萬位元；k是正在使用的金鑰。M可以範圍從1到B，所以Pn可能是一個完整的塊。CBC模式描述還使用了就在有關塊Cn-2之前的密文塊，如果明文適合在兩個塊內，則該密文塊實際上可能是IV。對於這描述，使用以下函式和運算子：ECB密文竊取.ECB模式的密文竊取在前兩塊內引入了塊間依賴關係，改變後兩塊的錯誤傳播行為。
metadata: erhwenkuo/wikipedia-zhtw
metadata: 密文竊取
metadata: https://zh.wikipedia.org/wiki?curid=6381957