1対1の暗号で安全なビットシャッフル


7

入力項目(Nバイト)を指定して、これを出力(まだNバイト)にマップする関数を探しています。関数は以下の性質を持つ必要があります。

  • すべての入力が一部の出力にマップされ、2つの入力が同じ出力にマップされないように、1対1にする必要があります。
  • 出力要素が与えられた場合、たとえマッピングが完全にわかっていても、その出力につながる入力を推測するのは難しいはずです。

そのような機能はありますか?詳細はどこで確認できますか?


ちなみに私は貿易エンジニアで、コンピューターサイエンスの専門知識があるだけです。ですから、私の用語のゆるい/正しくない使用を許してください。
JnBrymn 2015

3
これは単なる好奇心のためですか、それともやりたいと思う理由はありますか?これをいくつかのシステムに展開したい場合は、情報セキュリティで、ここで尋ねていることが、それを使って解決しようとしている問題の合理的な解決策であるかどうかを尋ねることを強くお勧めします。
David Richerby、2015

回答:


10

これは、一方向置換と呼ばれます。「順列」は、2つの要件のうちの最初のものを指します。「一方向」とは、2つの要件のうち2番目の要件を指します。たとえば、RSAモジュラスまたは他のスキームを法として3乗することを基にした、一方向の置換にはさまざまな候補構造があります。


Feistelネットワークを調べることも価値があります。これらは、一般的な関数を順列に変換するための標準的な方法です。
仮名2015

2
@ Pseudonym、Feistelネットワークはキーを必要とし、それらは一方向ではありません。マップを計算するためにキーが必要です。キーを使用すると、簡単に後戻りできます。したがって、彼らはまったく異なる問題を解決します。
DW

Feistelネットワークの厳密な定義は、キーが必要であるということですが、それらの用途はラウンド関数への入力としてのみです。パラメータなしで関数を使用するように構造を変更するのは簡単です。
仮名

1
@仮名、はい、しかしその変更により、それは一方向ではありません。フォワードマップを計算するのと同じくらい簡単にリバースマップを計算できます。これらは非常に優れた手法ですが、この特定の問題を解決するものではありません。
DW

ああ、もちろん!申し訳ありませんが、その詳細を逃しました。
仮名

-1

あなたはDESやAESを見てみたいかもしれません、彼らはまさにあなたが望むことをしています。これらは、プレーンテキストを暗号化/非暗号化するキーの有無に応じたメソッドに変換されます。もう1つの方法は、デュアルキー(公開キーと秘密キー)を使用する方法です。これは、現在非常に一般的に使用されている方法であり、最も一般的な方法はRSAです。主に、すべての人に知られている公開キーと、自分だけのプライベートキーを使用することを深めています。それを知っている必要があります。そして、誰かがあなたに何かを送りたい場合、彼はあなたの公開鍵でそれを暗号化します(あなたの秘密鍵によってのみ破壊されるため、彼はもうそれを破壊することができないことに注意してください)。認証を行いたい場合は、秘密鍵で暗号化されたものを送信できます。受信者は公開鍵で暗号化を解除するので、確実に送信されます。

詳細はここにあります:

https://en.wikipedia.org/wiki/RSA_(cryptosystem)


1
AESとDESにはキーが必要ですが、それらは一方向ではありません。マップを計算するにはキーが必要です。キーを使用すると、簡単に逆方向に移動できます。したがって、彼らはまったく異なる問題を解決します。
DW

-2

あなたはこれを試すことができます:

最初に、入力値のSHA-256またはその他のハッシュを取得します。次に、古典的なA = C、B = D、C = E ...などの基本的な暗号を使用します。

違いは、入力文字列全体のSHA-256を使用して、シフト量を決定することです(A = B、A = C、A = Dなど)。

注:私は暗号の専門家ではありません。これがどれほど安全かはわかりません。


1
これは恐ろしく安全ではありません。シーザー暗号の鍵を決定するために使用する方法がどれほど豪華であるかは関係ありません。まだ26のオプションしかなく、それぞれを順番に試すだけで復号化できます。また、この質問では、1対1の質問があり、これはそうではない可能性があります。また、一方通行の質問ですが、これは確かにありません。暗号のルール1:「自分でロール」しないでください。
David Richerby
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.