有沒有辦法將多組數據加密成一個結果,用單獨的密鑰解密每組數據
我所描繪的是這樣的:
A座:“你好,你今天好嗎?”
B座:“天氣讓我想起了夏天。”
我對此進行編碼,給我兩個密鑰和一個生成的加密塊,例如
AP: 2da93742a7340ad12372aff BP: 023cd97d40293d7c4027947 DATA: ksdjhfksdjhf0wddfg74059r7sdhdkfh
而解密
AP
會給我*“你好,你今天好嗎?”* 而 withBP
則對應於*“天氣讓我想起了夏天”。*.
您可能有一些額外的隱式約束使以下解決方案無效。但就目前的問題而言,以下內容可能會為您提供所需的內容:
假設我們有一個經過身份驗證的對稱加密方案。(說 encrypt-then-mac 以合適的模式使用塊密碼。)
我們收到兩條消息 $ m_0,m_1 $ 和兩把鑰匙 $ k_0,k_1 $ . 為了使事情更簡單,我們假設消息具有相同的長度,並且我們的加密方案將為相同長度的輸入輸出相同長度的密文。
我們加密 $ c_0 \leftarrow \mathsf{Enc}(k_0,m_0) $ 和 $ c_1 \leftarrow \mathsf{Enc}(k_1,m_1) $ . 然後我們選擇一個隨機位 $ b \in {0,1} $ 並輸出密文 $ c=c_b\Vert c_{1-b} $ .
解密,給定一個密鑰 $ k $ 和一個密文 $ c $ , 我們分手了 $ c $ 分成兩半,並嘗試解密每一半。由於加密方案是經過認證的,所以只有在實際加密的一半的情況下才能解密成功 $ k $ 除非機率可以忽略不計。然後我們簡單地輸出這個消息。
該方案的 CPA 安全性很容易降低認證加密方案的 CPA 安全性。如果我們需要 CCA 安全性,使用第三個密鑰在完整密文上添加一個額外的 MAC 就足夠了,並將第三個密鑰作為您所謂的 AP 和 BP 的一部分,即兩個密鑰。
加密方案的安全性確保給定其中一個密鑰,您只能解密其中一個消息。此外,由於密文的順序是隨機的,您無法知道您的密鑰/消息是第一個還是第二個。