タグ

ブックマーク / pashango-p.hatenadiary.org (4)

  • RSA暗号で「ふっかつのじゅもん」を作る(2) -RSA暗号鍵の生成 - Pashango’s Blog

    Pythonを使って高速素数判定をしてみる - Pashango’s Blog RSA暗号で「ふっかつのじゅもん」を作る(1) - Pashango’s Blog さて前回からの続きです、RSA暗号で「ふっかつのじゅもん」を作ってみましょう。 RSA暗号では、暗号化するデータのビット数よりも、1ビット多いn(素数p,qの積)が必要です。 (nでmodするため、nより小さな数は復号ができないため) ですので、任意ビットの大きさをもつnを生成する素数p,q(RSA暗号鍵)を生成してくれる関数があると非常に便利ですね。 WebではRSA暗号鍵の生成アルゴリズムの資料が無かったので、自分で考えました。もしかしたら鍵生成が甘いかもしれません、その場合は容赦なくツッコミをください。 素数判定「ミラー・ラビンテスト」 暗号鍵生成関数を作るには、「Pythonで高速素数判定」の回で作成した高速素数判定関数

    RSA暗号で「ふっかつのじゅもん」を作る(2) -RSA暗号鍵の生成 - Pashango’s Blog
  • RSA暗号で「ふっかつのじゅもん」を作る(1) - Pashango’s Blog

    オッス、オラ、トンヌラ! 前回は、高速素数判定を作りましたが、今回はRSA暗号を使って、昔懐かしの「ふっかつのじゅもん」を作ってみましょう。 Pythonを使って高速素数判定をしてみる - Pashango’s Blog あ、「今さらRSAかよ」と思いました? 自分でRSAを実装してみると、色々知らない事が出てきて面白いですよ。 あとRSAは、暗号化以外にも応用が利くんで覚えておいて損はしませんよ。 RSA暗号とはなにか? ゲームプログラマは基的にゲームばっかやってるんで、一般的な情報処理知識に欠けている場合がほとんどです。 まずはRSA暗号の説明から始めましょう。 RSA暗号とは、2つの鍵「公開鍵」と「秘密鍵」を使う暗号方式です。 「公開鍵」は暗号化キーです、みんなに公開してかまいません。 「秘密鍵」は復号化キーです、みんなにバレてはいけません厳重に保管してください、間違ってもネット上

    RSA暗号で「ふっかつのじゅもん」を作る(1) - Pashango’s Blog
  • Pythonを使って高速素数判定をしてみる - Pashango’s Blog

    みなさん、素数を数えてますか? 『素数』は1と自分の数でしか割ることのできない孤独な数字。 暗号化できたり、乱数を作れたり、心を落ち着いたりして、私達に勇気を与えてくれます。 素数といえば「エラトステネスのふるい」ですが、あれは大きい桁の素数を生成しようとすると、とんでもなく時間が掛ります。 今回は、どんな大きな桁の素数でも高速で素数判定するプログラムを作ってみます。 基は「フェルマーの小定理」 素数判定の基は「フェルマーの小定理」です、数式は1行だけのごく簡単なものです。 a^(p-1) mod p の答えが1以外ならpは合成数である ただし、aとpが素の関係(最大公約数が1)であること 2つの数を「べき剰余算」して答えが1以外なら合成数(not 素数)という事です。 aに2を代入してqが素数なら答えが1になる、たったこれだけです簡単でしょ? def is_prime(q): q =

    Pythonを使って高速素数判定をしてみる - Pashango’s Blog
  • pythonグラフライブラリ「matplotlib」覚書 - Pashango’s Blog

    http://matplotlib.sourceforge.net/ よく使う機能のみピックアップ。 グラフ(plot) from pylab import * x = arange(-10, 10, 0.1) y = sin(x) plot(x,y, '--') show() 棒グラフ(bar) from pylab import * datas = {"Tim":7, "Jack":10, "Matthew":4} width = 1 bar(arange(3), datas.values(), width) xticks(0.5+arange(3), datas.keys()) show() 散布図(scatter) from pylab import * N = 20 x = rand(N) y = rand(N) scatter(x, y, marker="+") show()

    pythonグラフライブラリ「matplotlib」覚書 - Pashango’s Blog
  • 1