タグ付けされた質問 「cryptography」

暗号化に関する課題:暗号化または復号化。

7
シャミールの秘密共有の再構築を実装する
シャミールの秘密共有方式は、秘密を再構築するために必要ないくつかの部分に分割することによって秘密を保護する簡単な方法です。 あなたの仕事は、首相によって定義された有限体上のシャミルの秘密共有再構築を実装すること1928049029です。これが何を意味するかについて疑問がある場合は、質問するか、Wikipediaの有限体と有限体演算を参照してください(以下のリソースを参照)。 入力 入力はstdinを使用して行われます。最初に整数k、次にk行続きます。これらの各行にはx y、秘密を表す整数のペアが含まれています。言い換えればf(x) = y、秘密を構築するために使用された元の多項式で。 指定されたシークレットの数は、対応するシークレットを構築するのに常に十分です。 出力 再構築されたシークレットをstdoutに出力します。 例 入力: 5 1 564797566 2 804114535 4 1354242660 6 1818201132 7 503769263 出力: 1234 入力: 7 1 819016192 2 1888749673 3 1737609270 4 365594983 5 1628804870 6 1671140873 7 492602992 出力: 456457856 資源 ウィキペディアの記事 論文 有限体出典:ウィキペディア 有限体演算出典:ウィキペディア ラグランジュ多項式出典:ウィキペディア 有限体演算に関する章

1
AESのブロックの復号化
今日の目標は、AESを使用して秘密のメッセージを解読することです。暗号文とキーを指定すると、メッセージを復号化して印刷します。 プログラムはどの言語でもかまいません。stdinの入力で実行され、stdoutの出力が正しいかどうかがチェックされます。 stdinの入力の最初の行は、16バイトでエンコードされた16バイトのキーになります。stdinの入力の2行目は、16バイトでエンコードされた16バイトの暗号文です。 プログラムの出力は、指定された鍵でAES-128を使用して暗号文を復号化した後の16バイトメッセージでなければなりません。ASCIIオクテットとして解釈された結果を出力する必要があります。解読後の結果はすべて有効なASCIIであると想定できます。 AESを実装するライブラリ/組み込み機能を使用することはできません。このような機能を使用して、hex / binary / ASCIIエンコーディング間で変換できます。 バイト単位の最短コードが優先されます。 入力と出力の例: bd8ab53f10b3d38576a1b9a15cf03834 02c0ee126cae50ba938a8b16f0e04d23 明日攻撃する。 そしてもう一つ: f4af804ad097ba832906db0deb7569e3 38794338dafcb09d6b32b04357f64d4d おめでとう。

6
柵フェンス暗号
2つのプログラムを作成 します。-文字列とキーを読み取り、そのキーを使用して文字列を柵フェンス暗号にエンコードするプログラム。-同様に、リバース機能のプログラムを作成します。キーを使用して柵のフェンスを解読します。 レールフェンス暗号が何であるかを知らない人にとって、それは基本的に、らせん状に線形パターンを作成する方法でプレーンテキストを書き込む方法です。例-「FOOBARBAZQUX」が3のキーを使用して柵で囲まれた場合 F . . . A . . . Z . . . . O . B . R . A . Q . X O . . . B . . . U 上記のスパイラルを1行ずつ読み取ると、暗号文は「FAZOBRAQXOBU」になります。 詳細については、- 柵フェンス暗号-ウィキペディアをご覧ください。 任意の言語のコードを歓迎します。 バイト単位の最短回答が優先されます。

2
1000の最も一般的な単語
この質問は、「物事の説明者」が楽しく読めるから書いてありました。 文字、数字、およびこのようなもののセットを読み取り/受け取り、すべての単語がこのセットの一部である場合に"#%|?戻る「コンピュータに物事を実行させるもの」を記述します。True / 1 すべての単語がそのセットの一部ではない場合、そのセットの一部ではなかった単語を返します。 このウェブサイトは、すべての場合において正しいと見なすことができます。ルールはそのサイトの仕様に従うように書かれています。 例: Truthy: 最初の水平線より上のテキスト全体が入力として貼り付けられている場合、コードは真の値を返す必要があります。 次の行は真の値を返します(入力はで区切られています###) This returns "Hello, World!" ### tHiS rEtUrNs TrUe... ### Thing Explainer is a book written by a man. The man writes books with simple words. ### This set of stuff "#!^{>7( must return true 偽り: 次の例では、入力と出力はで区切られてい***ます。異なるテストケースはで区切られ###ます。 This code doesn't return …
9 code-golf  string  parsing  code-golf  array-manipulation  random  permutations  code-golf  string  code-golf  parsing  code-golf  string  quine  code-golf  string  parsing  comment  code-golf  string  counting  natural-language  code-golf  string  decision-problem  code-golf  math  code-challenge  metagolf  test-battery  code-golf  string  code-golf  math  number  arithmetic  source-layout  code-golf  number  primes  decision-problem  code-golf  math  arithmetic  code-golf  date  code-golf  string  cryptography  code-golf  code-golf  chess  board-game  code-golf  geometry  grid  puzzle-solver  set-partitions  code-golf  number  natural-language  code-golf  ascii-art  code-golf  math  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  string  natural-language  code-golf  game  board-game  tic-tac-toe  code-golf  ascii-art  hexagonal-grid  code-golf  string  comment  code-golf  internet  code-golf  sorting  code-golf  kolmogorov-complexity  unicode  code-golf  tips  code-golf  string  natural-language  code-golf  string  kolmogorov-complexity  source-layout  hello-world  code-golf  string  kolmogorov-complexity  counting  natural-language  code-golf  random  quine  code-golf  string  math  bitwise  code-golf  permutations  code-golf  string  code-golf  arithmetic 

3
RSAキーペアを生成する
正の整数N&gt; = 4N&gt; =4N >= 4を指定すると、キーの長さがNNNビットのRSAキーペア(秘密キーと公開キーの両方)を出力します。 RSA鍵生成アルゴリズムは次のとおりです。 NNNビットのセミプライムんんn選択します。素因数ましょうんんnあることpppとqqq。 λ (n )= L CM(p − 1 、q− 1 )λ(ん)=LCM(p−1、q−1)\lambda(n) = LCM(p-1, q-1)計算します。 1 &lt; e &lt; λ (n )およびG C D (e 、λ (n ))= 1となるような整数eee選択します。1 &lt; e &lt; λ (n )1&lt;e&lt;λ(ん)1 < e < \lambda(n)G CD (e 、λ (n ))= …

4
お茶の時間です!
前書き しばらく前に私は小さな暗号化アルゴリズム(TEA)を偶然見つけました。それ以来、特別な暗号化セキュリティプロパティが不要で、自己実装が要件であるときはいつでもそれを勧めてきました。 今日は、* tiny *暗号化アルゴリズムという名前を文字通り使用したいと思います。あなたの仕事は、最も小さな暗号化アルゴリズムを実装することです! 仕様 入力 入力は8バイト(または同等の言語)のリストであり、これは平文であり、16バイト(または同等の言語)の別のリストであり、これはkeyです。 10進数、16進数、8進数、または2進数からの入力変換が可能です。1 64ビット、2 32ビットまたは4 16ビット整数を出力として(オプションでリストとして)読み取ることができます(プレーンテキストの場合、キーの数値を2倍にします) 出力 出力は8バイト(または同等の言語)のリストで、これは暗号文です。 10進数、16進数、8進数、または2進数への出力変換は許可されていますが、必須ではありません。 出力として1 64ビット、2 32ビット、または4 16ビット整数を(オプションでリストとして)書き込むことができます。 何をすべきか? あなたの仕事は実装することである暗号化方向の小さな暗号化アルゴリズム(のTEA)、ノートXTEAとXXTEAが他のアルゴリズムです。 ウィキペディアには、Cコードの例と、他の言語でのいくつかの実装への参照のリストがあります。これは元の説明(PDF)です。 より正式に: Let k1, k2, k3, k4, v1, v2, sum be unsigned 32-bit integers. (k1,k2,k3,k4) &lt;- key input (v1,v2) &lt;- plaintext input sum &lt;- 0 repeat 32 times: sum …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.