ロック番号、コンピュータのログインパスワード...。預金残高・メール・社内データなど、誰もが自分しかアクセスできない情報を持っています。これらの暗証やパスワードといった認証とは別に、情報自体を守るための技術として暗号化があります。旧日本軍の真珠湾攻撃における「ニイタカヤマノボレ一二〇八」や「トラ・トラ・トラ」は有名ですが、ローマ時代のシーザー暗号に始まり、第二次世界大戦でのドイツ軍のエニグマなど、暗号技術は共通鍵方式を軸に進化を続けてきました(示した暗号は全て解読されてしまいましたが)。「ニイタカヤマノボレ一二〇八」の意味は12月8日午前零時、戦闘を開始せよ。「トラ・トラ・トラ」は我奇襲に成功せりです。※新高山は台湾の玉山(3952m)で当時の日本領で最高峰の山。日本もアメリカの重要暗号を解読しています。開戦当初は暗号書と乱数表(暗号を解くキー)を使う日本軍の暗号は破られていませんでしたが、戦闘でそれらが回収され、解読され始めました。それ以降、日本の暗号は筒抜け状態でした。日本陸軍の暗号は強力で統制もあり、最後まで解読できなかったという話もあります。共通鍵方式は暗号を解くキーを秘密裏に相手に渡さなければならないという欠点を持っていましたが、現在の暗号は公開鍵と秘密鍵のペアを持つ公開鍵方式が主流です。この方式の中核を担っているのが、なんとあの素数だというのですから驚きです。number)とは2以上の整数で、1と自分自身以外では割り切れない数字のことです。素数が無限にあることは紀元前300年にユークリッドが証明済み。2つの大きな素数を掛け合わせた数から元の2つの素数を見つけることは、最新のコンピュータをもってしても時間が掛かるという性質を使って、暗号理論が構築されています。機密データ、プライバシーなど、全ての社会基盤が素数の性質に掛かっているわけです。素数は判定も発見も困難そんな素数の世界をちょっとだけ垣間見てみましょう。古来より、人類はある数字が素数かどうかを簡単に判別する方法を捜し求めてきましたが、未だに分かっていません。エラトステネスのふるいという有名なアルゴリズムがありますが、数字が大きくなると処理時間が急速に増えてしまいます。改良版もたくさん発表されていますが、現在でもコンピュータパワーに任せた力ずくの探索であることに違いはありません。加えて興味深いことに、2以上の整数は全て素数の掛け算で表すことができます。そのように掛け合わせて作られた数字を合成数といいます(合成数が素因数と同じときが素数)。※{}は0回以上の繰り返しこれ自体、凄いことのように思えますが、肝心の素数(素因数)を求めるにはどうすればいいのでしょうか。あのやっかいな素因数分解が必要になります。5)素因数分解された数字を掛け合わせると元の数字になります。2、3、5、7が素数、4、6、8、9、10が合成数です(素因数分解した数字が1つしかないときが素数)。小さな数字を素因数分解するなら簡単ですが、大きい数字となると人間には難しいものがあります。2011は素数かと問われて即答できる人はまずいません。そこで、rpnプログラムを用意します。プログラム名はprimesです。ちなみに2011は素数です(2000年から2030年の間では2003、2011、2017、2027、2029が該当)。任意の数が素数である確率は1/ln(n)です。素因数分解プログラムのダウンロード素因数分解プログラムのZIPファイルをダウンロードしてください。ダウンロードしたZIPファイルをダブルクリックするとprimes.objが表示されます。primes.objを格納したいフォルダにドラッグすると以下のダイアログが出てきます。パスワードを入力してください。一致していれば、primes.objが解凍されます。パスワードを入力してください。|+-------------------------------------------------+※パスワードは講座サポートのpasteプログラムのダウンロードと同じです。素因数分解プログラムの使い方ここでは、c:\rpnディレクトリにobjファイルが保存してあるものとして説明します。DOSプロンプトを起動して、c:\rpnまで移動してください。以下のrpn式を入力すると素因数分解してくれます。41123は素因数が3と41の合成数であることが分かりますね。(1000までの素数)結局、素因数分解ができるなら素数の判定ができていることになります。ところで一体、素数はどれくらいあるのでしょうか。素因数分解プログラムのprimesを使って、2から1000までの間の素数を探してみましょう。5一気に999個の数字(2~1000)までの素因数分解が終わりました。このうち、素因数が1つしかないものが素数です。素数を表示するには元の数字をファイルの"num.txt"に格納して、素因数分解した数字をファイルの"tmp"に格納します。その後、ファイルを横結合して、素因数の数が1つのものだけピックアップすればOKです。997行数カウントを取ると素数の数が分かります。その数は168個です。count168168個÷999個で0.168168の出現率になります(何故か小数点以下は見つけた素数の数である168の繰り返し)。2割弱が素数で8割強が合成数です(パレートの80対20ルールのようですね)。2から10000までの場合はどうなるでしょう。大数学者のガウスは「nが十分に大きいとき、nを超えない素数の数はn÷ln(n)にほぼ等しい」ことを15歳のときに発見しています(素数定理)。素数に規則性はあるのか?それでは、168個の素数を横15個で整列表示してみましょう。素数の数字に何かの規則性を感じることができるでしょうか。997ちなみに168個の素数を幹葉表示してみると次のようになります。01123445677899やはり、ランダムな感じがしますね。次に素数を1、合成数を0として横70個に整列表示してみましょう(npdを使って空白を詰めています)。素数の出現間隔に何か規則性を見出せるでしょうか。npd110101000101000101000100000101000001000101000100000100000101000001000101000001000100000100000001000101000101000100000000000001000100000101000000000101000001000001000100000100000101000000000101000101000000000001000000000001000101000100000101000000000100000100000100000101000001000101000000000100000000000001000101000100000000000001000001000000000101000100000100000001000001000001000100000100000001000100000001000000000101000000000101000001000100000100000001000101000100000000000100000001000100000001000100000100000000000101000000000000000001000001000000000100000100000101000001000000000100000100000101000001000001000101000000000001000000000101000100000100000101000000000001000100000100000001000000000100000001000000000100000001000001000001000100000001000001000100000001000100000000000001000000000100000000000101000000000101000101000000000100000000000001000101000100000000000001000101000100000000000000000001000100000001000000000100000001000100000100000100000000000001000100000100000100000001000001000*これら素数となる数字に規則性はありませんし、素数が発生する間隔にも規則性はありません。数学者も規則性を見つけていないし、証明もできていないので、少なくとも今日現在ではそう信じられています。不思議なことに、1(素数)と0(素数でない)の列を中心から外側に向かって渦巻状に並べていくとパターンらしきものが浮かび上がってきます。実践コーナーの数学アラカルトの黄金比率とフィボナッチ数列に渦巻きの話があります。数列と渦巻きの関係に興味のある人は閲覧ください。素数の出現規則や完全な生成方法が解明されれば、パスワードも暗号文も全て破られます。あなたのプライバシーの鍵は素数が握っていると言っても過言ではないのです。アメリカも国家安全保障の観点から、世界中の優秀な数学者を集めて、日々研究していることは確かなようです。アメリカはリーマン予想をはじめ、既に素数の謎を解いているという噂があります(あくまで噂)。いずれにしても、仮に効率的な素因数分解のアルゴリズムが見つかってしまえば、公開鍵方式の暗号技術は崩壊します。歴史上、素数の不思議さは多くの天才数学者を魅了しました。フェルマーは素数と平方数との関係を、オイラーは素数とπとの間に関連を見出しました。なかには没頭しすぎて統合失調症にまでなった人(ナッシュ均衡のジョン・ナッシュ)もいます。素数を4で割って余りが1ならば、素数は二つの平方数の和になる(素数全体の半数が該当)。素数とは神が授けた暗号なのでしょうか。これらに関連性はあるのでしょうか、それともないのでしょうか。2の素数乗-1(メルセンヌ素数)は素数である確率が高く、かつ素数判定が簡単です。2の31乗-1=2147483647は素数。この方法を使って2013年1月15日に最大素数の記録が更新されました(48番目のメルセンヌ素数)。その値は素数乗が57885161、素数は17425170桁に及ぶ長大なもの。1000万桁以上の素数発見には賞金が掛けられているそうです。あなたも挑戦してみては。2015年9月に49番目のメルセンヌ素数が発見され、最大素数の記録が更新されました。その桁数は2,233万8,618。48番目よりも500万桁大きいことになります。応用コーナーに戻る素数を使った暗号の話が、実践コーナーの数学アラカルトのRSA公開鍵暗号を紙上体験に詳しくあります。普通の文章が暗号化される過程を見てみたい人は閲覧ください。rpnプログラムを実行するには、rpn試用版かrpn標準版が必要です(バージョンの違いはこちら)。pasteは講座サポートで公開されています。colcountはカンタン分析パッケージに同梱されています。fold'はユーティリティーパッケージに同梱されています。stemleafはrpnマイスターパッケージに同梱されています。xypとnpdはrpnの姉妹ソフトウェアです。詳しくはプロダクトを参照ください。(毎月初更新)人気記事(過去1ヶ月閲覧数)日本女性のバストサイズ日本女性のバストサイズの現実。男性が好むのは大きい胸?小さい胸?ロト6で億万長者にロト6には選ぶべき数字が...。当選金額の期待値が高い番号、教えます。自分って太りすぎなのでは?身長から分かる貴方の適正体重は何キロ。怖いインフルエンザもウィルスが生存できない湿度にすれば大丈夫。アプリケーションを公開中!タブ「i~v..」をご覧ください。自分って太りすぎなのでは?身長から分かる貴方の適正体重は何キロ。自分が生まれた日は知っていても、曜日までは知らない人が多いらしい。暑くも寒くもないのに何か過ごしづらい。それは不快指数の高さが原因。月齢とルナティック新月と満月の時には何かが起こる?月の満ち欠けには不思議がいっぱい。ウサギとフィボナッチ自然に潜むフィボナッチ数列の神秘。ウサギが増える数までそっくり。ロト6で億万長者になるロト6には選ぶべき数字が...。当選金額の期待値が高い番号、教えます。怖いインフルエンザもウィルスが生存できない湿度にすれば大丈夫。アプリケーションを公開中!タブ「i~v..」をご覧ください。室内でも熱中症の危険!?温度と湿度の組み合わせでしっかり体調管理。占いは最強の意思決定あなたの悩みに一筋の光を...。選択に迷った時、書物占いが導きます。基礎代謝とダイエットまた失敗!ダイエットしてもなかなか痩せないのは基礎代謝が低いから。周期は生まれ付き!バイオリズムで体調管理できる。ライフゲームのルール生態系ゲームの原点。複雑なパターンが見せる仮想生物の不思議な世界。オセロでパーフェクト!電卓なのにオセロができる!?ウソかホントか白黒つけて、狙うは完全試合。撃沈...新型魚雷で狙え!魚雷で戦艦を撃沈...。ゲームの王道、シューティング系をプレイ。アプリケーションを公開中!タブ「i~v..」をご覧ください。進め♪伝説のスネーク!餌を食べると体が伸びていく!アクションゲームの傑作をrpnで再現。食事のベクレル管理で被曝を最少に。ブログの読者数ランキングブログの閲覧者は一見客or常連客?読者数ランキングが示す忠誠心。分数は小数よりも歴史が古い...。一味違う分数の計算に再チャレンジ。逆三角関数で高さと底辺から成す角が分かる。日本女性のバストサイズ日本女性のバストサイズの現実。男性が好むのは大きい胸?小さい胸?アプリケーションを公開中!タブ「i~v..」をご覧ください。所得配分は永遠の課題。不平等を数値化するジニ係数が格差を暴く。高校2年の12月に初めてのキス?都道府県別女性のファーストキス年齢。理想の人と出会うには古典的な浜辺の美女問題(秘書問題)。理想の異性をゲットできる方法。プライバシーは素数が守る素因数分解で社会基盤が崩壊!国家機密もスパイの暗号も素数がすべて。滅多に起きないことを集めるとリスクと対数の意外な傾向が見えてくる。数列は必ず数式で表現できる?数列の数を当てる頭の体操してみません?アプリケーションを公開中!タブ「i~v..」をご覧ください。...アプリケーションで楽しもうアプリケーションを公開中!タブ「i~v..」をご覧ください。本ウェブサイトで扱った話題に関連した書物で、スタッフが実際に読了したものを紹介。計算機、rpnやdosなどジャンルを超えてバックスラッシュはエンマークに読み替えて下さい(IEのみ)。文字で作られた図表や式が崩れることがあります。ブラウザによっては固定幅フォントをMSゴシックにするときれいに表示されます。それでも崩れる場合は図表や式をメモ帳にコピー後、閲覧下さい。rpn試用版と標準版(2kリビジョン)はダブルクォートで囲ってください。"foo"ダブルクォートは省略できることが多いのですが、慣れない間は囲んだほうが無難です。本ウェブサイトの記事ではrpn標準版(98リビジョン)を使用しているため囲っていません。TIPS」を参照ください。rpnの障害情報はこちら。rpn試用版の場合、複雑なプログラムや処理時間のかかるプログラムの一部には動作しないものがあるかもしれません。無料提供であることを勘案・了承ください。rpn標準版は、すべてのプログラムが動作します。※ウェブサイトの内容を無断で複製、変更することは法律で禁じられています。