有沒有可以判斷 「B是否屬於A的子序列」 的單向加密演算法?

有沒有可以判斷 「A是否部分屬於B」 的單向加密演算法? (A和B均為單向加密後的密文)

比如:

字元串S,通過某種單向加密演算法得到密文A;

字元串S1,是S的一個子序列,通過同樣的單向加密演算法得到密文B;

有沒有哪種單向加密演算法可以通過密文AB判斷,密文B是通過密文A的原碼的一個子序列加密而來,有這樣的單向加密演算法嗎?

--------------------追加線----------------------

@swordfeng, 單向加密演算法,也稱不可逆加密演算法。不能直接根據密文解密得到明文。

@趙劼,@白喵黑咪,在演算法公開、不使用密鑰的前提下,確實可能存在從密文子序列開始演化得到全部明文的可能性。如果在加密的時候引入密鑰因子,是否這種安全風險就不那麼大的。畢竟任何對稱加密演算法其安全性也是維繫於密鑰的保密性上。


【單向加密演算法】意義不明,啥叫單向加密?非對稱密鑰加密演算法?還是散列演算法?

你要這樣幹嘛不在B直接指出它是A的哪個子串,這樣基本還是安全的但是不知道明碼是啥。。。如果可以解密就能驗證。。。

======

原來的推理有點亂,刪了,容我再想想

手機碼字,見諒

======

提供一種方法,不知道是否足夠安全

把字元串的所有字串全部用同一種對稱密鑰方式加密一遍,拼在一起作為密文


那豈不是都能從密文猜出明文來了。


沒有


沒有。

------------------------

字元串S,通過某種單向加密演算法得到密文A;

字元串S1,是S的一個父序列,通過同樣的單向加密演算法得到密文B;

若此加密演算法能判斷A對應明文是否為B對應明文的子序列;那麼S的父序列有無窮多個,此演算法必定都能判斷為「是」(廢話);那麼不是S的父序列也有無窮多個,此演算法必定都能判斷為「非」。

- -

密文與明文必定是嚴格的一一對應的關係。這就不是單向加密了吧。(是這樣么?)

所以,這種演算法不存在。


添加一個標示?

a=父級密文—a密聞

b=父級密文—b密聞

因為a沒有父級所以得到:abcedf

b有父級得到的是abcedf-acacac


這沒有辦法通過選擇明文攻擊CPA,也是實踐密碼學演算法必須通過的基礎攻擊。也就是如果有這樣的東西,一定是不能用的東西。


推薦閱讀:

這道矩陣題目如果從頭證明可以證明嗎?如何證明?
為什麼部分人容易忘記數學證明,如何解決?
如何評價「世界上只有兩門真正的學問,一門是數學,一門是哲學」的觀點?
討論計算機專業人員的數學路線?
如何通俗易懂地解釋歐拉公式(e^πi+1=0)?

TAG:數學 | 推薦演算法 | 演算法設計 | 計算機演算法設計 | 加密演算法 |