HES
クラス CHes

java.lang.Object
  |
  +--HES.CHes

public class CHes
extends java.lang.Object


フィールドの概要
static int NOT_RANDOM
           マスターキーの正則行列を多項式にしたがって生成。
static int RANDOM
           マスターキーの正則行列をランダムに生成。
static int value_of_m
           マスターキー、普通鍵の行数。暗号子の列数。
static int value_of_n
           マスターキー、普通鍵の列数。正則行列のサイズ。暗号子の行数。
 
コンストラクタの概要
CHes()
           新しいHESオブジェクトを生成します。
 
メソッドの概要
 void create_master(java.lang.String savedir)
           マスターキー (B1,J) を生成し savedir に保存します。
 boolean decode(double[] input_dec_array, byte[] output_dec_array, double[][] B, double[][] J_inv, boolean ELIMINATE_CYCLE)
           暗号文を平文に復号化します。
 boolean encode(byte[] input_enc_array, double[] output_enc_array, double[][] A, boolean ELIMINATE_CYCLE)
           平文を暗号文に暗号化します。
 double[][] generate_A_from_one_B(double[][] B, double[][] J, int m0, int n0, boolean reset_srand, int seed)
           マスターキー (B1,J) からひとつの暗号子 A1n を生成しその配列を返します。
 void generate_A_from_one_B(java.lang.String nameB, java.lang.String nameJ, java.lang.String outputA, int n0, int m0, boolean reset_srand, int seed)
           マスターキー (B1,J) からひとつの暗号子 A1n を生成しファイルに保存します。
 double[][] generate_B_from_one_A(double[][] A, double[][] J, int m0, int n0, boolean reset_srand, int seed)
           マスターキー正則行列 J と暗号子 A1n から復号鍵 B2n を生成しその配列を返します。
 void generate_B_from_one_A(java.lang.String nameA, java.lang.String nameJ, java.lang.String outputB, int m0, int n0, boolean reset_srand, int seed)
           マスターキー正則行列 J と暗号子 A1n から復号鍵 B2n を生成しファイルに保存します。
 java.lang.String hes_decrypt_String(java.lang.String key_to_use, java.lang.String input_str)
           平文を暗号化して返します。
 void hes_decrypt(java.lang.String key_to_use, java.lang.String input_decrypt, java.lang.String output_decrypt)
           ファイルを暗号化します。
 java.lang.String hes_encrypt_String(java.lang.String key_to_use, java.lang.String nameJ, java.lang.String input_str)
           暗号文を復号して返します。
 void hes_encrypt(java.lang.String key_to_use, java.lang.String nameJ, java.lang.String input_encrypt, java.lang.String output_encrypt)
           ファイルを復号化します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

value_of_m

public static final int value_of_m
マスターキー、普通鍵の行数。暗号子の列数。
関連項目:
定数フィールド値

value_of_n

public static final int value_of_n
マスターキー、普通鍵の列数。正則行列のサイズ。暗号子の行数。
関連項目:
定数フィールド値

RANDOM

public static final int RANDOM
正則行列の生成にランダム関数をもちいる。
関連項目:
定数フィールド値

NOT_RANDOM

public static final int NOT_RANDOM
正則行列の生成に多項式を用いる。
関連項目:
定数フィールド値

コンストラクタの詳細

CHes

public CHes()
新しいHESオブジェクトを生成します。
メソッドの詳細

generate_B_from_one_A

public double[][] generate_B_from_one_A(double[][] A,
                                  double[][] J,
                                  int m0,
                                  int n0,
                                  boolean reset_srand,
                                  int seed)
マスターキー正則行列 J と暗号子 A1n から復号鍵 B2n を生成しその配列を返します。乱数を初期化する場合はreset_srandに真にします。

パラメータ:
A - 暗号子 A1n の配列
J - マスターキー正則行列 J の配列
m0 - 復号鍵の行数
n0 - 復号鍵の列数
srand - 乱数をリセット
seed - 乱数の種

generate_B_from_one_A

public void generate_B_from_one_A(java.lang.String nameA,
                                  java.lang.String nameJ,
                                  java.lang.String outputB,
                                  int m0,
                                  int n0,
                                  boolean reset_srand,
                                  int seed)
マスターキー正則行列 J と暗号子 A1n から復号鍵 B2n を生成しファイルに保存します。暗号子と正則行列は保存されているファイル名で与えます。また、生成する復号鍵は与えられたファイル名で保存されます。乱数を初期化する場合はreset_srandに真にします。

パラメータ:
nameA - 暗号子 A1n のファイル名
nameJ - マスターキー正則行列 J のファイル名
outputB - 生成した復号鍵の保存先
m0 - 復号鍵の行数
n0 - 復号鍵の列数
srand - 乱数をリセット
seed - 乱数の種

generate_A_from_one_B

public double[][] generate_A_from_one_B(double[][] B,
                                  double[][] J,
                                  int m0,
                                  int n0,
                                  boolean reset_srand,
                                  int seed)
マスターキー (B1,J) からひとつの暗号子 A1n を生成しその配列を返します。乱数を初期化する場合はreset_srandに真にします。

パラメータ:
B - マスターキー B1 の配列
J - マスターキー正則行列 J の配列
outputA - 生成した暗号子の保存先
n0 - マスターキーの列数
m0 - マスターキーの行数数
srand - 乱数をリセット
seed - 乱数の種

generate_A_from_one_B

public void generate_A_from_one_B(java.lang.String nameB,
                                  java.lang.String nameJ,
                                  java.lang.String outputA,
                                  int n0,
                                  int m0,
                                  boolean reset_srand,
                                  int seed)
マスターキー (B1,J) からひとつの暗号子 A1n を生成しファイルに保存します。マスターキーと正則行列は保存されているファイル名で与えます。また、生成する暗号子は与えられたファイル名で保存されます。乱数を初期化する場合はreset_srandに真にします。

パラメータ:
nameB - マスターキー B1 のファイル名
nameJ - マスターキー正則行列 J のファイル名
outputA - 生成した暗号子の保存先
n0 - マスターキーの列数
m0 - マスターキーの行数数
srand - 乱数をリセット
seed - 乱数の種

encode

public boolean encode(byte[] input_enc_array,
                      double[] output_enc_array,
                      double[][] A,
                      boolean ELIMINATE_CYCLE)
               throws java.io.IOException
平文ビット配列を暗号文ビット配列に暗号化します。成功したら真を返します。

パラメータ:
input_enc_array - 暗号化対象の平文の配列
output_enc_array - 暗号化されたあとの暗号文の配列
A - 暗号子 A の配列
ELIMINATE_CYCLE - 使用されていない
例外java.io.IOException

decode

public boolean decode(double[] input_dec_array,
                      byte[] output_dec_array,
                      double[][] B,
                      double[][] J_inv,
                      boolean ELIMINATE_CYCLE)
暗号文ビット配列を平文ビット配列に復号化します。成功したら真を返します。

パラメータ:
input_dec_array - 暗号化された配列
output_dec_array - 復号化された平文の配列
B - 普通鍵 または マスターキー B の配列
J_inv - マスターキー正則行列 J の逆行列の配列
ELIMINATE_CYCLE - 使用されていない

create_master

public void create_master(java.lang.String savedir)
マスターキー(B,J)を作成します。作成したマスターキーはそれぞれ B :"key.key", J :"j.mat"として指定したディレクトリに保存されます。
パラメータ:
savedir - 作成したマスターキーを保存するディレクトリ

hes_encrypt

public void hes_encrypt(java.lang.String key_to_use,
                        java.lang.String input_encrypt,
                        java.lang.String output_encrypt)
平文のファイルを復号化し暗号文のファイルを作成します。
パラメータ:
key_to_use - 暗号子 A のファイル名
input_encrypt - 暗号化対象の平文ファイル名
output_encrypt - 暗号化された出力ファイル名

hes_decrypt

public void hes_decrypt(java.lang.String key_to_use,
                        java.lang.String nameJ,
                        java.lang.String input_decrypt,
                        java.lang.String output_decrypt)
暗号化されたファイルを復号化し平文のファイルを作成します。

パラメータ:
key_to_use - 普通鍵 または マスターキー B のファイル名
J - マスターキー正則行列 J の配列
input_decrypt - 暗号化対象の平文ファイル名
output_decrypt - 暗号化された出力ファイル名

hes_encrypt_String

public java.lang.String hes_encrypt_String(java.lang.String key_to_use,
                                           java.lang.String input_str)
平文を暗号化し暗号文をBase64エンコードして返します。

パラメータ:
key_to_use - 暗号子 A のファイル名
input_str - 暗号化対象の平文

hes_decrypt_String

public java.lang.String hes_decrypt_String(java.lang.String key_to_use,java.lang.String J,
                                           java.lang.String input_str)
Base64エンコードされた暗号文を復号化して返します。

key_to_use - 普通鍵 または マスターキー B のファイル名
J - マスターキー正則行列 J のファイル名
input_str - 暗号化対象の平文ファイル名