どうやらおかしくなかったらしい。
private key で暗号化した場合のパディングが、以下のようになるらしい。
01 FF{8} FF* 00 bytes(INPUT)
public key で暗号化した場合、普通にPKCS1 のパディングが使われていました。
ただ、頭の0x00が抜けていましたけれど。
これって飛ばしておいて良いのかな・・・。
ちなみに、Privateのときに使われていたのは、EMSA-PKCS1-v1_5-ENCODEっぽい?
こちらも頭の0x00が抜けていましたけれど。
巨大数値化した時点で、頭の0x00は無くなることから、これはこれで良さそうだ。
だとすると、注意しないといけないのは、復号プログラムを書くときに、先頭の0x00が無くても慌てないことなのか。
Java SunJCEのRSA暗号時のパディングがおかしい?
投稿者
ぼり
ラベル:
私的なことでも記録しよう
/
Comments: (0)
SunJCEのRSA暗号時のパディングがおかしい感じがする。
以下、Sun Java JDK 1.6.0_06での場合。
Cipher を "RSA/ECB/PKCS1Padding" で初期化。
暗号化するのは、"This is a pen.": as hex "54 68 69 73 20 69 73 20 61 20 70 65 6e 2e"。
cipher.doFinal(PLAIN_TEXT.getBytes())で暗号化して、
それを復号(BigIntegerで計算)した結果が以下の通り。
01 FF FF FF ・・・・・FF FF 00 54 68 69 73 20 69 73 20 61 20 70 65 6e 2e
う~ん、おかしい。前半部分はPKCS1 の paddingのはずなのですが、どうにもおかしい。
PKCS1 の padding であれば、以下のフォーマットのはず。
00 02 [^(00)]{8} [^(00)]* 00 54 68 69 73 20 69 73 20 61 20 70 65 6e 2e
SunJCEのパディングは・・・何だこれ? なんて言うパディングなんだろう・・・
って、その前にPKCS1Paddingを指定しているのに違うやり方してる時点でダメなんだけど。
以下、Sun Java JDK 1.6.0_06での場合。
Cipher を "RSA/ECB/PKCS1Padding" で初期化。
暗号化するのは、"This is a pen.": as hex "54 68 69 73 20 69 73 20 61 20 70 65 6e 2e"。
cipher.doFinal(PLAIN_TEXT.getBytes())で暗号化して、
それを復号(BigIntegerで計算)した結果が以下の通り。
01 FF FF FF ・・・・・FF FF 00 54 68 69 73 20 69 73 20 61 20 70 65 6e 2e
う~ん、おかしい。前半部分はPKCS1 の paddingのはずなのですが、どうにもおかしい。
PKCS1 の padding であれば、以下のフォーマットのはず。
00 02 [^(00)]{8} [^(00)]* 00 54 68 69 73 20 69 73 20 61 20 70 65 6e 2e
SunJCEのパディングは・・・何だこれ? なんて言うパディングなんだろう・・・
って、その前にPKCS1Paddingを指定しているのに違うやり方してる時点でダメなんだけど。
OpenSSL と RSA鍵 と Java、ついでに OpenSSHの鍵
投稿者
ぼり
on 2008年6月10日火曜日
ラベル:
私的なことでも記録しよう
/
Comments: (0)
OpenSSLでRSAの鍵ペアを生成して、Javaのアプリケーションで利用する場合のメモ。
OpenSSLでの鍵生成
出来たsample.keyには、private.key もpublic.key も一緒に入っている。
- - - - - -
public.key の抜き出し
- - - - - -
sample.key は the traditional SSLeay compatible format なので、Java の ライブラリが扱えるPKCS#8 foramt へ変換する。
- - - - - -
Javaのアプリケーションなどで自作したRSA鍵をOpenSSL で扱う場合は、"-----BEGIN PRIVATE KEY-----" 等がちゃんと合っているか注意。異なっていると読んでくれません。
- - - - - -
OpenSSH のid_rsa.pub は Java から読めないみたいだけれど、id_rsa は上記のsample.key と同じ形式なので、同様の手法で private.key, public.key を生成できる。
OpenSSLでの鍵生成
- openssl genrsa 1024 > sample.key (1024bitの場合)
出来たsample.keyには、private.key もpublic.key も一緒に入っている。
- - - - - -
public.key の抜き出し
- openssl rsa -in sample.key -pubout > public.key
- - - - - -
sample.key は the traditional SSLeay compatible format なので、Java の ライブラリが扱えるPKCS#8 foramt へ変換する。
- openssl pkcs8 -topk8 -in sample.key -out private.key [-nocrypte|(パスフレーズに空にする)]
- - - - - -
Javaのアプリケーションなどで自作したRSA鍵をOpenSSL で扱う場合は、"-----BEGIN PRIVATE KEY-----" 等がちゃんと合っているか注意。異なっていると読んでくれません。
- - - - - -
OpenSSH のid_rsa.pub は Java から読めないみたいだけれど、id_rsa は上記のsample.key と同じ形式なので、同様の手法で private.key, public.key を生成できる。
twitter始めてみました
投稿者
ぼり
on 2008年5月24日土曜日
ラベル:
私的なことでも記録しよう
/
Comments: (0)
地デジの生い立ちこれ一本
投稿者
ぼり
on 2008年4月29日火曜日
ラベル:
私的なことでも記録しよう
/
Comments: (0)
池田先生のところで示されていた地デジFAQがすごくわかりやすかったので、メモ&リンクしておきます。
なぜ地デジ政策が始まったのか、なぜ2011年に今の地上波を止めることになったのか、それはどういう経緯で策定された政策なのか、などなど、非常にわかりやすく書かれています。
これ一つで地デジの生い立ちや問題点について、かなりの範囲で理解できると思います。
地上デジタル放送FAQ
わかりやすいものを作っていただいたことに、感謝感謝です。
なぜ地デジ政策が始まったのか、なぜ2011年に今の地上波を止めることになったのか、それはどういう経緯で策定された政策なのか、などなど、非常にわかりやすく書かれています。
これ一つで地デジの生い立ちや問題点について、かなりの範囲で理解できると思います。
地上デジタル放送FAQ
わかりやすいものを作っていただいたことに、感謝感謝です。
[用語] クラウドソース : 今一番勝ち組のシステム構築方法 @ 08年4月
投稿者
ぼり
on 2008年4月18日金曜日
ラベル:
私的なことでも記録しよう
/
Comments: (0)
この言葉が最近目につくので、なんだろうと思って検索してみたら「群衆に会うアウトソーシングするからクラウドソース」だそうです。
例えば、Google Mapで行われている「APIを公開して、第三者が大量にソフトウェアを作る」等がクラウドソースと言えるのでしょう。もともと、このやり方が今一番重要なことだとはわかっていたのですが、こんなに良い言葉がついているとは思っていませんでした。
良いですね、クラウドソース。どんどん使っていこうと思います。
研究成果も公開物もクラウドソース対応にするべきでしょう。
例えば、Google Mapで行われている「APIを公開して、第三者が大量にソフトウェアを作る」等がクラウドソースと言えるのでしょう。もともと、このやり方が今一番重要なことだとはわかっていたのですが、こんなに良い言葉がついているとは思っていませんでした。
良いですね、クラウドソース。どんどん使っていこうと思います。
研究成果も公開物もクラウドソース対応にするべきでしょう。
勝ちに飢えている方へ:ランチェスター戦略はいかがでしょうか?
投稿者
ぼり
on 2008年4月10日木曜日
ラベル:
私的なことでも記録しよう,
読んだ本をまとめておこう
/
Comments: (0)
弱者・・・組織に対する個人、目の上にたんこぶがいる人、強力なライバルがいる人、が勝つためにはこの戦略しかない!!、といわれるランチェスター戦略を勉強中です。
ランチェスター戦略は元々戦争のための理論で、第2次世界大戦の折などに米国側が使ったものです。単純明快であるにもかかわらず、応用性が高く様々なことに使えます。
上記の内、「弱者逆転」が2005年、「一点突破」が2007年の本です。ですが・・・「弱者逆転」だけ読めば十分でしょう。「一点突破」は弱者逆転を元に、中小企業向けの具体的戦略や例を入れたもので、他のことに応用しづらい無いようになっています。
ランチェスター戦略は簡単に言えば「どんな方法を使ってでも数の有利を作り出せ」となります。例えば、弱者(N)が強者(M)に挑む場合、強者を細かくNよりも小さくなるまで分けてしまいます。そうすれば勝てる、というわけです。戦争で言えば、部隊を少数に分断する。経営で言えば、分野や地域で分割していく、研究であれば分野や使い方を分けていくと言うことになります。
上記からわかる用に、ランチェスター戦略的に言うと、「今は勝っていない」と思うのであれば、戦線の縮小を行うことになります。そしてそこに全力を投入することです(詳しくは本を読んでください)。
自分の研究に当てはめると、納得できるところがあります。私のやり方は、あれもやりたい、これもやりたい、こういったシステム全体を一通り作りたい、とやっていましたが、弱者(個人)である私がそれを行ってはいけないと言うことです。そういったことは、企業の研究所など戦力が多いところが行うべきことだったのでしょう。ということで、戦線の縮小を行うつもりです。
ランチェスター戦略はあくまで戦略論なので、様々なことに応用が利きます。もしも、自分が一番の強者ではなく=弱者であり、うまいこと勝てていないというのであれば、ぜひ一読されることをおすすめします。
読書時間: 「弱者逆転」:45分, 「一点突破」:35分
執筆時間: 30分
# 補足
戦略とは、全体を俯瞰した方針のようなものです。戦略の元、個別の戦闘が行われ、そこで使われるのは戦術です。かなり大雑把ですが、例えば、戦争でどの拠点をどの順番で潰すと効果的か、というのは戦略です。では潰すのに爆撃するか砲撃するかなどは戦術となります。
ランチェスター戦略は元々戦争のための理論で、第2次世界大戦の折などに米国側が使ったものです。単純明快であるにもかかわらず、応用性が高く様々なことに使えます。
目次
- プロローグ 勝ちに飢えているあなたに
- 第1章 今、甦る常勝の「ランチェスター法則」
- 第2章 ビジネス下克上時代の勢力図「占拠率のサイエンス」
- 第3章 戦略の奥義「ランチェスター3つのグランドルール」
- 第4章 弱者逆転の極意「弱者の戦略vs強者の戦略」
- 第5章 勝利のロードマップ「ランチェスター戦略の実戦体系」
- 第6章 ランチェスターで斬る!「弱者逆転企業の実例」
- エピローグ "本物"の勝利を得るために
目次
- プロローグ 一点突破せよ!!
- 第1章 志の旗を掲げよ!「弱者の基本戦略」
- 第2章 戦場を定めよ!「弱者の商品戦略・地域戦略」
- 第3章 狙い撃て!「弱者の顧客戦略・流通戦略」
- 第4章 空中戦を支配せよ!「弱者の集客戦略」
- 第5章 一対一の接近戦で負けるな!「弱者の営業戦略」
- 第6章 そして、全面展開せよ!!「強者の基本戦略」
- エピローグ 一点突破のための“7大要因”
- 特別付録 ランチェスター式事業戦略ワークシート
上記の内、「弱者逆転」が2005年、「一点突破」が2007年の本です。ですが・・・「弱者逆転」だけ読めば十分でしょう。「一点突破」は弱者逆転を元に、中小企業向けの具体的戦略や例を入れたもので、他のことに応用しづらい無いようになっています。
ランチェスター戦略は簡単に言えば「どんな方法を使ってでも数の有利を作り出せ」となります。例えば、弱者(N)が強者(M)に挑む場合、強者を細かくNよりも小さくなるまで分けてしまいます。そうすれば勝てる、というわけです。戦争で言えば、部隊を少数に分断する。経営で言えば、分野や地域で分割していく、研究であれば分野や使い方を分けていくと言うことになります。
上記からわかる用に、ランチェスター戦略的に言うと、「今は勝っていない」と思うのであれば、戦線の縮小を行うことになります。そしてそこに全力を投入することです(詳しくは本を読んでください)。
自分の研究に当てはめると、納得できるところがあります。私のやり方は、あれもやりたい、これもやりたい、こういったシステム全体を一通り作りたい、とやっていましたが、弱者(個人)である私がそれを行ってはいけないと言うことです。そういったことは、企業の研究所など戦力が多いところが行うべきことだったのでしょう。ということで、戦線の縮小を行うつもりです。
ランチェスター戦略はあくまで戦略論なので、様々なことに応用が利きます。もしも、自分が一番の強者ではなく=弱者であり、うまいこと勝てていないというのであれば、ぜひ一読されることをおすすめします。
読書時間: 「弱者逆転」:45分, 「一点突破」:35分
執筆時間: 30分
# 補足
戦略とは、全体を俯瞰した方針のようなものです。戦略の元、個別の戦闘が行われ、そこで使われるのは戦術です。かなり大雑把ですが、例えば、戦争でどの拠点をどの順番で潰すと効果的か、というのは戦略です。では潰すのに爆撃するか砲撃するかなどは戦術となります。