2009-04-17

続 .NET Framework のRSA署名用ハッシュアルゴリズム  [by miyachi]

[2011-04-25 追記] .NET FrameworkによるRSA-SHA2署名(完結編)を投稿しました。

2008-05-26に「.NET Framework のRSA署名用ハッシュアルゴリズム」として、WindowsのXP環境で .NET Framework において、RSA署名を使うクラスRSACryptoServiceProviderの検証メソッドVerifyDataがRSA-SHA2の署名に対応していないと書きました。今日別件もあり.NETのXML署名関連を調査していて、確認の為にRSA-SHA2の署名と検証を試したところ問題なく動作していました!以前は例外になった箇所がきちんと動作しています。以下はC#で試したコードです。

 RSACryptoServiceProvider key
    = new RSACryptoServiceProvider(2048);
 Byte[] target = Encoding.UTF8.GetBytes("TEST DATA");
 Byte[] sign = key.SignData(target, "SHA512");
 bool verify = key.VerifyData(target, "SHA512", sign);
 if (verify)
  Console.WriteLine("RSA-SHA2 Verify: OK : valid.");
 else
  Console.WriteLine("RSA-SHA2 Verify: NG : faild !!!!!");

う~む何時OKになったんでしょう?少なくとも昨年11月の時点では例外になる事を確認していたのですが… まあいずれにせよRSA-SHA2対応してくれたのはありがたいですね。もう少し調査をして何か分かればまた書きましょう。ちなみに過去の記事も更新しました。

なおXML署名のクラスであるSignedXmlではまだRSA-SHA2署名には対応していないようです。

[2009-05-03 追記]
XMLコンソーシアムWeek向けに調査をしていて、以前ある方からご指摘頂いた現象を確認。実はSignDataメソッドをPKCS#12形式の証明書+秘密鍵から取得した鍵を使うと例外になると言うものだ。しかも例外は「無効なアルゴリズムが指定されました。」と言うもの。どこかでSHA-2に対応できていないに違いない(^^; 参考までにXP環境で例外になるソースを張っておきます。

 X509Certificate2 cert =
   new X509Certificate2("testcert.p12", pkcs12Pswd);;
 RSACryptoServiceProvider key =
   (RSACryptoServiceProvider)cert.PrivateKey;
 Byte[] target = Encoding.UTF8.GetBytes("TEST DATA");
 // Exception !!
 Byte[] sign = key.SignData(target, "SHA512");
 bool verify = key.VerifyData(target, "SHA512", sign);
 if (verify)
  Console.WriteLine("RSA-SHA2 Verify: OK : valid.");
 else
  Console.WriteLine("RSA-SHA2 Verify: NG : faild !!!!!");

Windowsくらい複雑なシステムになるとアルゴリズムの追加も大変ですね。
2009-04-17 17:23:34 - miyachi - - [PKI/暗号] -

2009-04-15

GoSatWatch  [by miyachi]

宇宙開発マニア向けのiPhone/iPod touchアプリとしては何と言ってもこの「GoSatWatch」だ。価格は1200円するけど安い買物ですよ!右の画面を見て貰えれば一目瞭然だと思いますが、ISS/シャトル/人工衛星なんかの現在位置を確認するアプリです。そう宇宙開発の管制センターでメルカトル図の上にシャトルや衛星なんかの軌道が出ている写真を良く見ると思いますが、それが自分の手の中で実現してしまうので。これは宇宙開発マニアとしては買いでしょう。と言う事で興味のある方だけ [続きを読む] にて。 [続きを読む]
2009-04-15 13:11:55 - miyachi - - [宇宙開発] -

2009-04-14

神輿は、ロックだ。叫ぶのだ。  [by miyachi]

今年は西暦の奇数年なので神田祭は2年に1度の本祭です。と言う事で5月10日(日)には神輿が神田明神に宮入します。本祭が2年に1度なのは江戸時代に豪華になり過ぎた祭をもう1つの大きな祭である山王祭と交互に行うようになったからだとか。

うちの事務所も神田大和町会に入っているのでいつものように1口寄付をしました。「神輿担いでよ。」とも言われるんですがいや身体がついて行けそうもありませんから… 「飲むだけでもいいよ。」と言われると少し惹かれたりして(笑) 公式ガイドブックが貰えるのですがパラパラ捲っているだけでも楽しいですね。

神田一帯はこれから祭が終わるまでだんだんと祭ムード一色になって行きます。既にあちこちにポスターが貼られています。その一枚が楽しかったので写真に撮ってみました。ロックも祭もソウルフルって事でしょうか。暇があったら見物くらい来たいもんです。
2009-04-14 12:35:17 - miyachi - - [一般] -

2009-04-09

徒然と  [by miyachi]

その1:続宇宙開発マニアの視点

某国ロケット&ミサイル話の続き。打ち上げ時の映像なんて公開されないだろうと思っていたらあっさりと映像を公開した。見た感想は予想していたよりも大きいこと。エンジンは4つをクラスタ化しているようだ。以前のテポドン1の映像では尾部に小さな安定翼があったが今回は無い。と言うことはエンジンをジンバル機構によって振ることで制御しているのか?だとすると技術的にはやはりかなり向上しているように思える。他に噴射煙が黒っぽい。打ち上げ後の噴煙が少ないことからも液体燃料を使っているのは間違いない。液体燃料では灯油に似たケロシン+液体酸素の組み合わせが良く使われる。しかしこの煙の色はもう1つの種類であるヒドラジン系のようにも思える。ヒドラジンは毒性が強いのが問題と指摘されているようだが、宇宙開発では各国利用しているポピュラーな燃料だ。特長は常温で保管が出来るのと混ぜるだけで着火する手軽さとなる。中国の長征ロケットでも使われている。

今回の打ち上げがミサイルなのかロケットなのかはいまだにマスコミで議論されているが搭載物を確認しないと結論なんか出るわけが無い。つまり判断は不可能に近いだろう。ただヒドラジン系燃料をミサイルに使うメリットはある。ミサイルとロケットは構造は基本的に同じだがミサイルだと即応性が必要になる。燃料を入れてすぐに打てないと兵器としての価値が下がるからだ。その点でヒドラジン系だと常温で保管も出来るので有利だと言える。つまり本当にロケットだったとしてもミサイル転用が楽か前提とした設計になっているように思える。その意味ではICBM開発としての意味も十二分にありそうではある。まあかの国の方針を考えると当たり前の結論か…

その2:夜の突然の電話

昨夜8時頃に事務所に電話が。名前も名のらず「いきなりPDFを使っていて印刷不可の設定にしたいんだけどどうすれば良い?」との問合せ。う~ん「いきなりPDF」だけにいきなり質問ですか?(^^;; しかしなぜ弊社に問合せを? うちではもちろん「いきなりPDF」は扱ってません。一般論として教えられなくもありませんし弊社別件のお客様かもしれないしお名前を聞いてみた。すると「名前を言わなきゃ駄目なんですか?なら他の会社に電話して聞いてみます。」で「ガチャン!」… え~と取り付く島も無い… なんだったんだろう(^o^;;;

まあせっかくだから一般論を書いておきますか。PDFで印刷不可にするには普通はセキュリティ設定で暗号化する時に個別に権限設定として機能の利用不可を指定が可能です。弊社でも扱っているアンテナハウスPDF電子署名モジュールでもセキュリティ設定で指定が可能です。「いきなりPDF」で出来るかどうかは分かりませんがセキュリティ設定関連を調べると出来るかもしれませんね。>昨夜電話の匿名さんへ

とまあPDF電子署名モジュールではこのように電子署名だけでは無くPDFのセキュリティ関連の操作も可能です。セキュリティもパスワードによる暗号化が一般的ですが、PKI的に面白いのは公開鍵で暗号化をする公開鍵セキュリティ設定でしょうか。これはあまり一般的では無いのですがAcrobatでも出来ますしPDF電子署名モジュールを使えば一括して沢山のPDFを暗号化できたりもします。うまく使うと面白い事が出来そうな気もするのですがどうでしょう。以上少し宣伝でした。

その3:花粉花粉ぎゃふん

先週末より暖かくなって穏やかで満開の桜も長持ちしそうだとか。でも一旦落ち着きそうだったスギ花粉の勢力も盛り返しているそうです。う~ん困りました。昨日は最初少な目に薬を飲んでいましたが全然効かずにかなり苦しみました。そうなると後から薬を飲んでもあまり効かないのはそういうもんなのでしょうか… なので今日は朝からしっかり薬を飲んできました。おかげで今日は昨日より楽でした。あともう少しの辛抱かな。

その4:大量の宇宙開(ry

事務所の他の2人も気が付いているかもしれませんが先日某古書店の整理に協力する意味もあって事務所の隅に英文雑誌の山が… ネタとしては面白いので後日もう少し整理してブログに書きます(^^;
2009-04-09 19:33:35 - miyachi - - [プログラマの生活] -

.NET Framework の DataGridView  [by miyachi]

現在開発中のプロジェクトはMacOS-Xで動作しているあるアプリをWindowsに移植するというもの。Windows版もC++とMFCなら経験もあるので簡単ですが、せっかくなのでC#と.NET FrameworkだけでGUIも作ってしまおうと初めて本格的にC#だけでアプリを開発しています。これがなかなか一筋縄では行きません(笑) まあでも経験値はアップしていると思うので頑張りどころです。

閑話休題。さて今週取り組んでいたのは以下のようなスマート検索のダイアログです。問題になるのはメインの検索条件を入力する部分です。プルダウンありテキスト入力ありボタンありと言う事で DataGridView クラスを使うことにしました。



これが思った以上に簡単には使えない!何の罰ゲームですか?と言う感じでした。まあ情報はあるんですが私には判りにくかったです。なのでここで簡単にポイントだけ押さえておこうと思います。以後興味がある方は [続きを読む] にて。 [続きを読む]
2009-04-09 13:00:53 - miyachi - - [プログラミング] -

2009-04-08

久しぶりに今日の秋葉原  [by miyachi]

って正確には昨日の秋葉原です。昨日は天気も良くポカポカしていたし花粉も酷くなかった(今日は酷い…)のでお昼休みに足を延ばしてヨドバシへ。目的はiPod touch用のミニマイクだったんですがヨドバシにもソフマップにも秋葉館にもありませんでした。欲しかったのは先日も書いたThumbTacksのようにイヤホンジャックに挿す小さなマイクです。店頭には大きくて値段も高いタイプかヘッドホンコード型のタイプしかありませんでした。残念!


後でネットで調べてみると日本でも幾つか同じようなサイズのマイクが4月上旬から中旬にかけて発売開始されるようです。これとかこれとかこれとか。どれも1500円から2000円くらいのようです。Skypeが出たからiPod touchでは需要が出そうですね。ちなみにこれらのマイクを付けると本体内蔵スピーカーはオフになってしまうのですが、Skypeだとスピーカーをオンにする機能があるようなので、これらのマイクでSkypeは出来るようです。値段も安いし4月中旬過ぎに再出撃します。

ついでと言う事で久しぶりに秋葉原を散歩。JR駅から離れると昔ながらのジャンク屋が古い飲食店なんかと並んでいて楽しいです。ジャンク屋の品揃えはiPodやメモリに液晶ディスプレイやノートパソコン中心になっていて微妙に時代の流れを感じます。

メイン通りの方に戻ると最近は写真のようにメイドさん達が呼び込みをやってます。昔だと怪しげなお店の呼び込みをオジサン達がしていたものですが時代は移りましたねぇ… 萌え系のお店やアニメオタク向けのお店にすっかり入れ替わりつつあるようです。


そんな中かつてのLAOXザコン館の裏口前もご覧のようなありさまで萌え&アダルト系の立て看板が置かれていました。他にも石丸電気だったビルも閉じていたりして大規模店舗型の電気店の勢いは全くありません。

道を歩いていると観光客らしい人も増えてきたように思います。あと例の事件以来お巡りさんも増えたままです。ザコン館跡の写真を撮っていたら横にいたいかにもオタクっぽい感じの人がいきなりお巡りさんに職質受けてカバンを開けさせられていました。私は荷物を持ってなかったからか無視されましたが。

と言う事でぐるっと一周してプリンタ用紙や自宅用のDVD-Rを購入して事務所に戻りました。ジャンク屋もあんまり食指が動くものが今日はありませんでした。自分の趣味が変わったのか秋葉原が変わったのか判りませんが、昔よりは面白く無くなったなあ(^^;
2009-04-08 13:09:10 - miyachi - - [秋葉原] -

2009-04-07

宇宙開発マニアの視点  [by miyachi]

日本中が某国の「ミサイル」発射で議論や解説がこれでもかと言うくらいに行われている。またマスコミの過剰報道のような気もするが一人の宇宙開発マニアの視点で今回の問題を分析してみる。

まず「ミサイル」なのか「衛星打ち上げ」なのかと言う議論があるが無意味であろう。どっちも基本的に同じ物だ。目的が異なるだけ。基本的と書いたのは「誘導装置」の有無で多少は違いがあると言えるかもしれないと言う程度。ミサイルは目的とする場所に打ち込め無いと意味が半減する(ただし後述するが今回は意味がある)ので、誘導装置は必須となる。過去にISASが打上げた日本最初の人工衛星「おおすみ」は政治的配慮から精密な誘導装置は使わず「重力ターン」方式で軌道に乗せた。精密な誘導装置が無いからISASのロケットは「ミサイル」では無いと言う為の措置だが、実際にはロケットでも「誘導装置」があった方が良いのは自明であろう。実際M-VやH-IIAはもちろん誘導装置を搭載している。その意味で機能面から見て「ミサイル」と「衛星打ち上げ」に違いは無い。

次に「何故日本に向けて発射するのか?」と言う疑問も出ているようだが、非力なロケットで衛星を打上げようとすれば東に向けて打ち、地球の自転速度も利用する方が楽だと言う回答になる。極軌道と言う南極と北極を通る軌道の場合は南北のどちらかに打上げる事になるが、南だと韓国さらに沖縄近辺を通過する事になるし、北だとロシアや中国の上空を通る事になる。東西南北を他の国に囲まれた某国の場合はいずれにせよどこかの国の領土上空を通過して、1段目と2段目を落下させる必要がある。その場合に最も効率が良い真東に打てば、

 1)通過するのはどうせ国交関係が悪化している日本だし。
 2)1段目も2段目も海に落とせるし。
 3)最もアピールしたい米国へのプレッシャーにもなるし。

と言う事で某国としては真東はメリットだらけなのである。ちなみに真上にロケットを打上げても軌道速度(横方向の速度)が出せないので落ちてくるだけ。なのでロケット打上げでも真上を目指す事はありません。最初は真上を向いていますが速度を出すのに邪魔な空気が無くなった高空で横方向に向きを変えて軌道速度を稼ぎます。

ちなみに真東から4度角度を変えると津軽海峡上空を通過するそうで、実際にテポドン1号の時はこの津軽海峡通過ルートを通ったと松浦さんの記事にあります。今回真東なのはなめられている(または日本に対する効果を考えている)のか、たった4度でも効率の良さが必要だったのかのどちらかであろう。

さて他国の上空を通過する事はロケットだとしても問題は無いのか?と言えばやはり事故の可能性が否定できず損害を受ける可能性があるのでかなり問題と言える。通常のロケット打ち上げなら2国間で損害賠償や軌道をそれた場合の爆破対処方法等を打ち合わせる事になる。それでも問題になる。実際に某国隣の韓国もロケット打ち上げ場を韓国南部に羅老宇宙センターとして建設している。ここからロケット打ち上げを考えた場合にやはり東または南方向とすると、日本の関西から九州沖縄までの上空を通過する事になる。この為にやはり日本と韓国の間で色々と問題となっている。つまり今回の某国によるミサイル発射も韓国のロケット打ち上げも同じ問題を抱えていると言える。

日本の場合には幸い東と南側に隣接する国が無い。太平洋があるだけなのでロケット打ち上げから見ると高緯度と言う他は非常に恵まれた環境にあると言える。米国がやはり東と南側が海になっているフロリダからロケットを打上げるのも同じ理由となる。

以上が主に技術面から見た解説となる。では今回の打ち上げは成功か?に関しては [続きを読む] にて。 [続きを読む]
2009-04-07 09:49:31 - miyachi - - [宇宙開発] -