Algorithm-Design

有沒有快捷鍵拉伸之類的東西?

  • October 29, 2019

我很好奇是否有用於密鑰拉伸的加密(或數學)技術

  1. 允許有秘密的人快速導出最終密鑰,
  2. 對於沒有秘密的人,需要確定的輪數來拉伸(即不是機率的)。

這樣的事情存在嗎?

對於上下文,我認為這對於正常的偽原子資訊交換很有用。兩方將使用他們使用種子和附加秘密派生的密鑰加密他們想要交換的資訊,交換加密資訊,交換種子,然後交換附加秘密。這樣一來,一方就不能簡單地等到他們收到另一方的密鑰後再發送他們的密鑰——即使他們延遲了最後一步,對方仍然可以派生密鑰(雖然這需要更多時間)。如果他們延遲倒數第二個步驟,對方就會知道他們不合作。

讓 $ p $ 和 $ q $ 是秘密的均勻隨機素數,並定義 $ n = pq $ . 考慮 $ s = 2^{2^t} \bmod n $ .

  • 在不知情的情況下 $ p $ 或者 $ q $ , 我們知道的最好的方法 $ s $ 是從 $ 2 $ 並將其平方 $ t $ 接連數次。我們可以調 $ t $ 強迫對方採取任意多的步驟。
  • 隨著知識 $ p $ 和 $ q $ ,我們可以使用快捷方式 $ 2^e \equiv 2^{e \bmod \lambda(n)} \pmod n $ 由卡邁克爾定理,因為 $ \lambda(n) = \operatorname{lcm}(p - 1, q - 1) $ ; 那麼它只需要一個部門 $ t $ 經過 $ \lambda(n) $ 以及關於 $ \log_2 n $ 平方和乘法模 $ n $ 計算答案,無論如何 $ t $ 是。

但是假設你使用這個協議。如果其中一方在協議完成之前跳過城鎮會發生什麼?

鮑勃:嘿,愛麗絲,魔法詞所在的盒子的組合是 $ 2^{2^{t_b}} \bmod n_b $ 在哪裡 $ t_b = 1,000,000,000,000 $ 和 $ n_b = \dotsb $ .

愛麗絲:太好了!生命、宇宙和一切意義的秘密都用密鑰加密 $ 2^{2^{t_a}} \bmod n_a $ 在哪裡 $ t_a = 3,141,159,265,359 $ 和 $ n_a = \dotsb $ .

鮑勃:太棒了,謝謝!順便一提, $ n_b = p_b q_b $ 在哪裡 $ p_b = \dotsb $ 和 $ q_b = \dotsb $ .

愛麗絲:哈哈,笨蛋!當我去打開你的魔法盒時,玩得開心追逐意義!

鮑勃:爆炸!我的 ASIC 需要三百年才能計算出來。

您可以嘗試的另一種方法(不涉及捷徑)是讓每一方以鎖步方式一點一點(或逐個字母)揭示秘密:

愛麗絲:我的秘密的第一個字母是 C。

鮑勃:我的秘密的第一個字母是 V。

愛麗絲:我秘密的第二個字母是 H。

鮑勃:我秘密的第二個字母是 L。

愛麗絲:我秘密的第三個字母是 U。

鮑勃:我秘密的第三個字母是 F。

愛麗絲:我秘密的第四個字母是 M。

鮑勃:我秘密的第四個字母是 E。

愛麗絲:我的秘密的第五個字母是 P,拼出 CHUMP,因為你已經給了我足夠的暴力來猜出你的秘密,而我沒有給你笨拙的蹲下!

麻煩是雙重的:

  1. 如果沒有可驗證的證據證明愛麗絲提供的內容實際上是她的秘密的一部分,鮑勃不應該繼續洩露任何秘密。
  2. 該協議偏愛擁有更多計算能力的任何一方——該一方可以隨時中止該協議,而將另一方留在塵埃中。

引用自:https://crypto.stackexchange.com/questions/75271