・巨大整数が扱える電卓アプリケーションです。
・16進,10進,2進の同時表示が可能です。
・整数演算のみ可能です。
・冪剰余の計算が可能です。
・2進数の直接編集が可能です。
100万桁まで計算できますが、実用速度を考えると10万桁程度です。
こちらからダウンロードして下さい。(v16cal0927.lzh Ver.0.927 8.71M)
適当なフォルダに解凍し,v16cal.exeを起動してください。
EXE単独で動作するので、どこに置いても動きます。
起動後に適当に数値を入力すると上図のように表示されます。
桁が大きくなるとスクロールバーが表示されます。
Windowを横に伸ばすことも可能です。
左上のVertを選ぶと、多くの桁を一度に表示します。(このとき2進は表示されません。)
Font++を選ぶと、表示フォントが大きくなります。
Font--を選ぶと、表示フォントが小さくなります。
2進数表示部分にカーソルを当てると、該当Bitが白黒反転します。
左クリックすると、該当Bitが反転(0⇔1)します。
一般的な16進電卓にある計算がほとんどですが、
特殊な演算ボタンについて説明します。
ボタン 内容 操作例 x^y xのべき乗を計算します。 [5],[x^y],[2][=] 25と表示される。 Sqrt 平方根を計算します。 [10000],[Sqrt] 100と表示される。 Exp 10のべきを掛けます。 [1],[Exp],[5],[=] 100000と表示される。 << 算術左シフト(2のべきを掛けます)。 [2],[<<],[4],[=] 32と表示される。 >> 算術右シフト(2のべきで割ります)。 [128],[>>],[4],[=] 8と表示される。 NOT 否定,Bitを反転します。 [100],[NOT] -101と表示される。 AND 論理積。 [100],[AND],[7],[=] 4と表示される。 OR 論理和。 [100],[OR],[7],[=] 103と表示される。 XOR 排他的論理和。 [100],[XOR],[7],[=] 99と表示される。 nPr 順列を計算します。 [100],[nPr],[2],[=] 9900と表示される。 nCr 組み合わせを計算します。 [100],[nCr],[2],[=] 4950と表示される。 n! 階乗を計算します。 [10],[n!] 3628800と表示される。 GCD 最大公約数を計算します。 [60],[GCD],[24],[=] 12と表示される。 MOD 余り,剰余を計算します。 [100],[MOD],[24],[=] 4と表示される。
Modular Expでは冪剰余を計算します。
Ab mod N
を解く場合、 まず、法 N を入力します。 例として、237 mod 55 を求めます。
[55],[Modulo]と入力すると次のようになります。
次に、[23],[Power],[7],[=]と入力すると12が求まります。
法(Modulo)はメモリに保存されているので、続けて
[12],[Power],[3],[=]と入力すると23が求まります。
小さい桁数であれば[x^y]と[MOD]を使っても計算できますが、
例えば1977年のRSA129問題の解答(1994年)を検証するのに、[x^y]を使う方法では桁が大きくなりすぎます。
次のように、N, M, d が与えられたとして、
N = 114381625757888867669235779976146612010218296721242362562561842935706935245733897830597123563958705058989075147599290026879543541
M = 6091819200019151222051800230914190015140500082114041805040004151212011819
d = 106698614368578024442868771328920154780709906633937862801226224496631063125911774470873340168597462306553968544513277109053606095
S = Md mod N を計算します。
(※)v16calはペースト可能なので、これらの数値をコピー&ペーストして計算を進めます。
[N],[Modulo],[M],[Power],[d],[=]の順に入力すると
となります。これは真の署名コード
S = 16717861150380844246015271389168398245436901032358311217835038446929062655448792237114490509578608655662496577974840004057020373
と正しく一致していることが確認できます。
ペーストは、10進,16進のいずれも可能です。
10進の場合は、数値を直接ペーストできますが、16進の場合は、プレフィックスとして 0x が必要です。
ペースト時、無効文字は除去します。
従って、0x 01 03 08 AA BB FF
を貼りつけると
となります。
このソフトウェアは、株式会社ハンドレットソフト(以下弊社といいます)が提供する「v16cal」(以下本ソフトウェアといいます)です。お客様は以下に定める条件にご同意いただいた場合にのみ、本ソフトウェアを使用できるものとさせていただきますので、ご使用の前に以下の条項を良くお読み下さい。本ソフトウェアを使用された場合は以下の条項にご同意いただいたものといたします。
1.知的所有権の帰属と使用許諾
本ソフトウェアの著作権その他の知的所有権は弊社に帰属いたします。弊社は、お客様に対し、お客様が「本ソフトウェア」を使用することのできる、譲渡不能かつ非独占的使用権を許諾します。2.禁止・制限事項
本ソフトウェアに関し、お客様は以下に定めるいずれの事項も行なうことはできません。3.無保証
・本ソフトウェアを逆コンパイル、逆アセンブル、リバース・エンジニアリングしたり、またはその他の方法により、人間が感得できる形にすること、また他人をしてこのような行為をさせること
・本ソフトウェアの全部または一部を、バックアップ以外の目的のための複製、送信、修正、改変、譲渡、貸与、賃貸、リース、転売、頒布、許諾、その他の処分をすること。
・本ソフトウェアを弊社の文書による許諾なしにネットワークサーバに複写し、伝送することおよび別のコンピュータから使用すること。
・本ソフトウェア上の知的財産権に関する一切の表示を削除または改変すること。
本ソフトウェアは、商品性、特定の目的に対する適合性、権利非侵害、品質その他一切を保証することなく、現状有姿のままお客様に提供されます。
本ソフトウェアおよび本ソフトウェアの生成するファイルを使用することによって生じる一切のリスクはお客様のご負担となります。
本ソフトウェアに何等かの欠陥があることが明らかになった場合には、一切のサービスと補修の費用はすべてお客様のご負担となります。
お客様が本ソフトウェアを入手された後の本ソフトウェアの保存・管理については弊社は一切責任を負いません。
お客様が入手された本ソフトウェアの消失については、その理由にかかわらず弊社は再度供給する一切の責任を負いません。
・FFT演算には京都大学 大浦博士 の汎用FFTパッケージを修正して使っています。