20億のデバイスでDH鍵交換の初期化ベクトルを生成できます。
以下のような具合のJavaコードをCreateDiffieHellmanIv.javaとして保存しましょう。
import java.security.AlgorithmParameterGenerator; import javax.crypto.spec.DHParameterSpec; public class CreateDiffieHellmanIv { public static void main (String[] args) throws Exception { int bitlen = 1024; if (args.length == 1) { bitlen = Integer.valueOf(args[0]).intValue(); } System.out.println("Generating DiffieHellman initialization vector... " + "bitlen:" + String.valueOf(bitlen)); AlgorithmParameterGenerator gen = AlgorithmParameterGenerator.getInstance("DH"); gen.init(bitlen); DHParameterSpec spec = (DHParameterSpec)gen.generateParameters().getParameterSpec(DHParameterSpec.class); System.out.println("P: " + String.valueOf(spec.getP())); System.out.println("G: " + String.valueOf(spec.getG())); } }
コンパイルします。
javac CreateDiffieHellmanIv.java
実行します。
java CreateDiffieHellmanIv
生成されます。
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 Generating DiffieHellman initialization vector... bitlen:1024 P: 145092357773036288785759831358363532457242150558361433565637207115514679411584100914869369530346476337051157705709858973344162440367967367833131503361926409583294585834757269998763188665426891871955393171079827134223234474237577100562967866893704671731464827466258191400928247383857555225260521584462646243757 G: 12076877650358872723433720596980214708516091408794486767543845481119286250958515342123571307476546309975921911735092979287081062213826767342459759424622360942234980320288127473825416480708591619721965721848952913500501787074997260325092958513471288533670082527450298168344704575797601113639175082590501897125
べんり。