RSA-576

解くほうじゃなくて検算するだけなのであんまり面白くないけど、http://internet.watch.impress.co.jp/cda/news/2004/04/28/2970.htmlのようなものを見かけたので、Techoで書くとどうなるか試す。

以下をそれぞれ評価してみた結果を=>の右に書いておく。

  • DigitalSignatureAlgorithm basicNew isProbablyPrime: 398075086424064937397125500550386491199064362342526708406385189575946388957261768583317 => true
  • DigitalSignatureAlgorithm basicNew isProbablyPrime: 472772146107435302536223071973048224632914695302097116459852171130520711256363590397527 => true
  • 398075086424064937397125500550386491199064362342526708406385189575946388957261768583317 * 472772146107435302536223071973048224632914695302097116459852171130520711256363590397527 => 188198812920607963838697239461650439807163563379417382700763356422988859715234665485319060606504743045317388011303396716199692321205734031879550656996221305168759307650257059

となってそのページに書かれている値と一致する。ついでに、

  • (398075086424064937397125500550386491199064362342526708406385189575946388957261768583317 * 472772146107435302536223071973048224632914695302097116459852171130520711256363590397527) highBit => 576
  • (398075086424064937397125500550386491199064362342526708406385189575946388957261768583317 * 472772146107435302536223071973048224632914695302097116459852171130520711256363590397527) printStringBase: 2 => '2r110000101100101110110010010011111101101111111001001000111011011000010010011010001110001111110001000110100011100010010110110111100100010101110100101100111011101001011000011100110000110010111101011001010010100100111000100001100100111000100010001000111110111011101011011100000100101000010111110011111101000010001101000101101011010001101000100100011010011000010100011101000111010110011001001110011100011011100100100110101010111111100111111100100101100101010101010010001100011101001100000111010111111110111000110100100100110011010001010111001011001000111011010011001101000010100011'

とかね。

ちなみに上のようなbasicNew:の使い方はあまりよろしくないという説もあるが、インスタンス側に定義されていて関数的に動作するメソッドをテストしたいときには便利である。