0

私はBouncyCastles Java APIを使用しており、McEliece暗号化を使用したいと考えています。良いパラメータ(例:How to choose McEliece's parameters?)を見つけるためにさまざまな用紙を閲覧した後、BouncyCastle APIを使用してこれらのパラメータを設定することはできません。BouncyCastleのタプル(m、t、poly)でMcElieceパラメータタプル(n、k、t)を定義する

すべての論文では、パラメータセットは3タプル:(n、k、t)です。

new McElieceCCA2Parameters(m, t, poly) 
それらが (N、K、T)パラメータに対応するにはどうすればよい

:しかしはBouncyCastleと、Iのみで鍵ペア生成のための3タプル(M、T、ポリ)を指定することができセット?

+0

あなたが参照しているバウンシーバージョンはわかりませんが、[1.52 'McElieceCCA2Parameters'](http://grepcode.com/file/repo1.maven.org/maven2/org.bouncycastle/bcprov-jdk15on/1.52 /org/bouncycastle/pqc/crypto/mceliece/McElieceCCA2Parameters.java#McElieceCCA2Parameters)は最大で 'm'と' t'をとります。 –

+0

私はバージョン1.55を使用していますが、それにもかかわらず、1.52に戻るパラメータが2つしかない場合、どのように指定することができますか。 *(n、k、t)* = *(6624,5129,118)*? – Ph3n1x

答えて

1

m,tおよびpolyはGoppaコードを定義していると思います。 mは、コード内でサポートを生成するGF2上の多項式の次数を表します。 nは、サポートされる要素の数/暗号化されたメッセージの長さをビット単位で表します。私はMcElieceParametersを簡単に見て、彼らは完全なサポートを使用しています。 nは常に2^mに等しいことを意味します。 t、コードで修正できるエラーの数は、[2; (n - 1)/m]から選択し、kは暗黙的にn - m*tに等しい必要があります。

+0

答えをありがとうが、私はそれを完全に理解していませんでした。両方のタプルの 't'は同じですか? *(n、k、t)*が*(6624,5129,118)*であるときにmについて 'k = n-m * t 'を解くと' m≒12.67'となる。しかし、 'm'は整数でなければなりません。 単純な例を提供してもよろしいですか?例えば。 '(m、t、poly)'を指定して '(n、k、t)' = *(6624,5129,118)*を得る方法は? – Ph3n1x

+0

私が見る限り、BouncyCastleは 'n = 1 << m'を計算するので、' n'を2のべき乗の値以外にする可能性はありません。間違っていますか? – Ph3n1x

+0

@ Ph3n1x不完全な回答をおかけして申し訳ありません。はい、 't 'は'(n、k、t) 'と'(m、t、poly) '表記で同じです。あなたは正しいです、nは常に2の威力です。私が見たことから、弾力のある城の図書館はあなたの必要なセットアップを許可していません。 –

関連する問題