• 検索結果がありません。

暗号の数理レポート #3

N/A
N/A
Protected

Academic year: 2021

シェア "暗号の数理レポート #3"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)

暗号の数理レポート

#3

2010–2–1 河野

課題 Miller-Rabin 法 により,10進数で50桁のランダ ムな素数を,確率 1 1

108 で生成する Javaプログラムを作成せよ.

ランダムな素数とは,そのプログラムを実行するたびに,10進数で50桁,すなわち1049 10501の範囲にある素数がランダムに出力される,ということ。

プログラムはワークステーション室の環境で動くことを確認すること。

Java programにはBigIntegerクラスを使うのが簡単である。

http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/math/BigInteger.html参照。

BigInteger(int numBits, Random rnd)のより0 2numBitsの範囲の整数がランダムに生 成される。例えば

/////////////////////////////////////////////////////////

import java.math.BigInteger;

import java.util.Random;

import java.io. \uff0a ; public class BigPrime {

public static void main (String args[ ]){

BigInteger p = new BigInteger ( 200, new Random( ) );

...

} }

/////////////////////////////////////////////////////////

などとすると02200の範囲の整数pがランダムに生成される。

BigIntegerクラスにはBigInteger(int bitLength, int certainty, Random rnd) という con- structorもあり,これは,指定された bitLengthを持つ素数を確率 certaintyで生成する。

当然,これを使ってはいけない。また,同様の働きをする probablePrime(int bitLength, Random rnd)

nextProbablePrime()

というmethodもあるが,当然,これも使ってはいけない.

さらにisProbablePrime(int certainty)という,与えられた整数が素数であるかど うかを判 定するためのmethodがあるが,当然,これを本質的に使ってはいけない。素数の判定は,

Miller-Rabin 法によって行わなければならないので,例えば ,ランダ ムに数を取ってこの

methodで判定する,という方法はダ メである。ただし,自分が作ったプログラムがどの程

度の性能を持っているのか,をチェックするのに使うのは構わない.

これら以外の constructor, methodについては,どれを使っても良い.特に,

gcd(BigInteger val)

(2)

modPow(BigInteger exponent, BigInteger m)

というmethodは役に立つ.

プ ログラムを作成した人は(1) 簡単なアルゴ リズムの説明,(2)ワークステーション室で 使用する人のためのマニュアル(何をするプ ログラムか,ど の様に実行するか,を含む)(3)特記事項(後の項を参考)があればそれを mailの本文にそれぞれ独立した項目として 書き,プログラムを独立したファイル(そのままで実行可能な状態のファイル)として添付し て [email protected]まで送ること。勿論名前,学生番号も忘れずに。

user interfaceはどのようなものでもかまわないが,自分で使用する場合使い易いようなもの

にすることを考慮すること。

前項のことの他何か自分のプログラムの「売り」があれば特記事項として記載すること。水 準に達しているレポートには40点が与えられる。これに加え「売り」の内容に応じて5×n (nは自然数)点が加点される。

ただしプログラム・説明文を含めて自分で書いたと思われないレポート(ネットからのcopy&paste を含む)ないし他のレポートと同一と判断されるレポートは採点の対象にはならない。

締切は331() 17:00とする。

参照

関連したドキュメント

部を観察したところ,3.5〜13.4% に咽頭癌を指摘 し得たという報告もある 5‒7)

存在が軽視されてきたことについては、さまざまな理由が考えられる。何よりも『君主論』に彼の名は全く登場しない。もう一つ

前章 / 節からの流れで、計算可能な関数のもつ性質を抽象的に捉えることから始めよう。話を 単純にするために、以下では次のような型のプログラム を考える。 は部分関数 (

これはつまり十進法ではなく、一進法を用いて自然数を表記するということである。とは いえ数が大きくなると見にくくなるので、.. 0, 1,

このような情念の側面を取り扱わないことには それなりの理由がある。しかし、リードもまた

ここで, C ijkl は弾性定数テンソルと呼ばれるものであり,以下の対称性を持つ.... (20)

、肩 かた 深 ふかさ を掛け合わせて、ある定数で 割り、積石数を算出する近似計算法が 使われるようになりました。この定数は船

いてもらう権利﹂に関するものである︒また︑多数意見は本件の争点を歪曲した︒というのは︑第一に︑多数意見は