1 回答

TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
需要一種可以編碼和解碼[6]字節(jié)的密碼。
編碼(以不同格式顯示數(shù)據(jù))和加密(提供機(jī)密性)之間存在差異。密碼用于加密。此外,我假設(shè)您出于保密原因想要加密數(shù)據(jù)。
是否有第三方功能可以滿足我的要求?或者 std 函數(shù)可以以某種方式實(shí)現(xiàn)這一點(diǎn)?
理論上 - 有些方法不需要填充。請(qǐng)參閱不同的操作模式。有些模式(CTR、OFB、..)不需要填充,從而有效地將塊密碼轉(zhuǎn)換為流密碼。
甚至還有專用的流密碼,例如 Salsa 或 ChaCha。
所以 - 現(xiàn)在您可以將 6 個(gè)字節(jié)的明文加密為 6 個(gè)字節(jié)的密文。
當(dāng)您需要發(fā)送與明文相同數(shù)量的加密數(shù)據(jù)時(shí),有兩個(gè)問題:
為了在重復(fù)使用相同密鑰進(jìn)行多次加密時(shí)保持?jǐn)?shù)據(jù)機(jī)密性,每個(gè)密碼都需要一些初始狀態(tài) (IV),它可以是隨機(jī)的或計(jì)數(shù)器。必須不重復(fù)使用相同的 Key 和 IV。所以在正常情況下,這個(gè)計(jì)數(shù)器或狀態(tài)是隨加密數(shù)據(jù)一起發(fā)送的。使用一些靜態(tài)向量可以破壞加密(部分或完全)。這就是評(píng)論中的人不能給你簡單答案的原因。如果沒有傳輸額外的數(shù)據(jù),就沒有適當(dāng)?shù)募用堋?/p>
另一個(gè)問題是數(shù)據(jù)完整性。如果密文在傳輸過程中被修改(有意或無意),如果不傳輸額外的字節(jié),接收方就無法檢測(cè)到數(shù)據(jù)已被修改。我假設(shè) 6 字節(jié)無論如何都沒有完整性控制,所以也許這不是你關(guān)心的問題。
通過位移和異或來實(shí)現(xiàn)這個(gè)指定的功能很幼稚,還有更多嗎?
是的,您可以使用靜態(tài) IV 向量加密數(shù)據(jù),但正如我們所理解的那樣,這并沒有正確加密,因此知道多個(gè)消息或初始信息,數(shù)據(jù)可以被完全解密。
使用 XOR、矩陣運(yùn)算等簡單的東西……也可以揭示密鑰本身。
- 1 回答
- 0 關(guān)注
- 111 瀏覽
添加回答
舉報(bào)