none
RNGCryptoServiceProviderクラスの乱数生成アルゴリズム RRS feed

  • 質問

  • .net Framework2.0 のSystem.Security.Cryptograprhy名前空間下の RNGCryptoServiceProviderクラスで
    GeyBytesメソッドを用いて乱数を生成した場合、

    メソッド内部で用いられているハッシュアルゴリズムは、どのようなアルゴリズムが採用されているのでしょうか。
    また、アルゴリズムを指定したコーディングの方法はあるのでしょうか。

    以上、質問事項です。よろしくお願いいたします。
    2009年7月23日 2:24

回答

  • RNGCryptoServiceProviderコンストラクタにCspParameters引数があります
    このCspParametersコンストラクタでアルゴリズムプロバイダの指定が可能のようです。
    可能なプロバイダはMSDNライブラリ を参照してください。
    デフォルトだとRSAなのかな。
    • 回答としてマーク sk7474 2009年8月5日 9:44
    2009年7月23日 4:04
  • .Net FrameWorkのソースを追っかけてみたところ、OSがサポートしてればPROV_RSA_AES、してなければPROV_RSA_FULLになる模様
    • 回答としてマーク sk7474 2009年8月5日 9:44
    2009年7月23日 10:04

すべての返信

  • RNGCryptoServiceProviderコンストラクタにCspParameters引数があります
    このCspParametersコンストラクタでアルゴリズムプロバイダの指定が可能のようです。
    可能なプロバイダはMSDNライブラリ を参照してください。
    デフォルトだとRSAなのかな。
    • 回答としてマーク sk7474 2009年8月5日 9:44
    2009年7月23日 4:04
  • getta様

    moon_taです。
    投稿ありがとうございます。

    最初の投稿で説明不足だったのですが、

    開発ツールは、Visual Basic 2005 Professional Editionで、
    インスタンスの定義時にCspParametersパラメータは仕様していません。

    コードで示せば、
    Dim rng as New RNGCryptoserviceProvider()

    です。
    この場合だと、RSAのアルゴリズムになるのでしょうか。
    MSDNで引数無しの記事を読んだのですが、この点が不明でした。

    2009年7月23日 4:49
  • .Net FrameWorkのソースを追っかけてみたところ、OSがサポートしてればPROV_RSA_AES、してなければPROV_RSA_FULLになる模様
    • 回答としてマーク sk7474 2009年8月5日 9:44
    2009年7月23日 10:04
  • こんにちは。中川俊輔です。

    gekkaさん、詳細な回答ありがとうございます。

    moon_taさん、フォーラムのご利用ありがとうございます。
    有用な情報と思われたため、勝手ながらgekkaさんの回答へ回答マークをつけさせていただきました。

    今後ともフォーラムをよろしくお願いします。
    それでは!
    マイクロソフト株式会社 フォーラム オペレータ 中川 俊輔
    2009年8月5日 9:45