Encryption

了解加密技術算法

  • June 1, 2017

我很難理解標題為“使用具有機率加密的任意矩陣的優化加密技術”的文章中提到的密鑰集生成步驟。步驟是:

  1. 考慮大小為 n = pow (p, p) 個字元的源文本的 0 到 n-1 個值的序列。
  2. 將序列的每個元素轉換為以 p 為底的形式。
  3. 以 nx p 階的矩陣形式 A 表示步驟 2 的值。
  4. 從 A 的每個元素中減去 1。
  5. 考慮一個大小為 px p 的隨機矩陣 B。
  6. 將矩陣 A 與 B 相乘以生成結果矩陣 R。
  7. 使用替換函式將 R 的所有正整數替換為 +1,將負整數替換為 -1,將零替換為 0。
  8. 將 R 的每個元素遞增 1。
  9. 將 R 的每一行,從基數 p 轉換為十進制以生成鍵序列集。

我無法理解這是如何工作的。你能用一個例子來解釋這些步驟嗎?還是虛擬碼?

老實說,這篇論文看起來像垃圾。它在 2.2 節中將 Base64 稱為“加密算法”。圖 1 和圖 2 是由一個白痴創造的。但不管怎麼說…

  1. >

考慮大小為 n = pow (p, p) 個字元的源文本的 0 到 n-1 個值的序列。

如果 $ p = 4 $ , 然後 $ n = p^p = 256 $ 我們將使用一個 256 字節的塊。但為簡潔起見,我將考慮更簡單的情況 $ p = 3 $ 並將密碼字母表限制為字母表中的 26 個字母加上空格字元。

據推測,在應用此算法之前,必須將密碼片語填充到塊大小,但本文沒有描述如何做到這一點。假設我們從 27 個字元的 keyphrase 開始THIS IS MY SECRET KEYPHRASE。 2. >

將序列的每個元素轉換為以 p 為底的形式。

如果 ’ ‘=000, ‘A’=001, ‘B’=002 等等,直到 ‘Z’=222,我們得到以下結果:

202 022 100 201 000 100 201 000 111 221 000 201 012 010 200 012 202 000
102 012 221 121 022 200 001 201 012
  1. >

以 nx p 階的矩陣形式 A 表示步驟 2 的值。

$$ A = \begin{bmatrix} 2&0&2&0&2& \dots &0&0&1&1&1\ 2&2&1&0&0& \dots &0&2&0&0&0\ 1&0&2&0&1& \dots &0&1&0&1&2\\end{bmatrix} $$ 4. >

從 A 的每個元素中減去 1。

$$ A = \begin{bmatrix} 1&-1&1&-1&1& \dots &-1&-1&0&0&0\ 1&1&0&-1&-1& \dots &-1&1&-1&-1&-1\ 0&-1&1&-1&0& \dots &-1&0&-1&0&1\\end{bmatrix} $$ 5. >

考慮一個大小為 px p 的隨機矩陣 B。

這是未指定的。但是讓我們假設元素 $ B $ 都在範圍內 $ 0 $ 至 $ n-1 $ :

$$ B = \begin{bmatrix} 21&16&5\ 15&23&8\ 3&10&10\\end{bmatrix} $$ 6. >

將矩陣 A 與 B 相乘以生成結果矩陣 R。

$$ R = B \times A = \begin{bmatrix} 37&-10&26&-42&5&\dots&-42&-5&-21&-16&-11\ 38&0&23&-46&-8&\dots&-46&8&-31&-23&-15\ 13&-3&13&-23&-7&\dots&-23&7&-20&-10&0\\end{bmatrix} $$ 7. >

使用替換函式將 R 的所有正整數替換為 +1,將負整數替換為 -1,將零替換為 0。

$$ R = \begin{bmatrix} 1&-1&1&-1&1&\dots&-1&-1&-1&-1&-1\ 1&0&1&-1&-1&\dots&-1&1&-1&-1&-1\ 1&-1&1&-1&-1&\dots&-1&1&-1&-1&0\\end{bmatrix} $$ 等一下; 如果 $ p > 3 $ , 那麼不是矩陣 $ R $ 將主要由一個組成?也許 $ B $ 還應該包括負值嗎?誰知道? 8. >

將 R 的每個元素遞增 1。

$$ R = \begin{bmatrix} 2&0&2&0&2&\dots&0&0&0&0&0\ 2&1&2&0&0&\dots&0&2&0&0&0\ 2&0&2&0&0&\dots&0&2&0&0&1\\end{bmatrix} $$ 9. >

將 R 的每一行,從基數 p 轉換為十進制以生成鍵序列集。

這不可能。雖然 $ p=3 $ 在這個例子中,元素 $ R $ 由值0、1 和 2組成 $ p $ . 然而,根據本文後面討論的加密算法,我們應該最終得到一組 $ n $ 價值觀。所以我想我們只是替換每組 $ p $ 中的元素 $ R $ 結果將它們解釋為基數中的數字 $ p $ :

$$ K = \begin{bmatrix} 20&8&18&20&0&18&11&9&0\ 23&1&18&2&0&18&2&20&0\ 20&2&18&8&6&18&2&20&1\\end{bmatrix} $$ 當從密碼字母表中展平為一串字元時,結果如下:

THRT RKI WARB RBT TBRHFRBTA

如果我開始涉足加密算法,我可能會失去生存的意願,所以我會在這裡停下來。

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