了解加密技術算法
我很難理解標題為“使用具有機率加密的任意矩陣的優化加密技術”的文章中提到的密鑰集生成步驟。步驟是:
- 考慮大小為 n = pow (p, p) 個字元的源文本的 0 到 n-1 個值的序列。
- 將序列的每個元素轉換為以 p 為底的形式。
- 以 nx p 階的矩陣形式 A 表示步驟 2 的值。
- 從 A 的每個元素中減去 1。
- 考慮一個大小為 px p 的隨機矩陣 B。
- 將矩陣 A 與 B 相乘以生成結果矩陣 R。
- 使用替換函式將 R 的所有正整數替換為 +1,將負整數替換為 -1,將零替換為 0。
- 將 R 的每個元素遞增 1。
- 將 R 的每一行,從基數 p 轉換為十進制以生成鍵序列集。
我無法理解這是如何工作的。你能用一個例子來解釋這些步驟嗎?還是虛擬碼?
老實說,這篇論文看起來像垃圾。它在 2.2 節中將 Base64 稱為“加密算法”。圖 1 和圖 2 是由一個白痴創造的。但不管怎麼說…
- >
考慮大小為 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
- >
以 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
如果我開始涉足加密算法,我可能會失去生存的意願,所以我會在這裡停下來。