神無月

| | コメント(7)

今日は出勤…
動きようがなくなったので早めに切り上げたのだけど、
明日こそはなんとかしないといけない。
なので明日の夜は凹んで帰るであろうことが予想されるため、

10月が終わります。

仕事はぁ、忙しくなってきました。
デジタルに。
愚痴ネタはいくらでもあるけど負の感情が表出するだけなのでやめておこう。
ストレスは相当溜まってるわけですが、
暇よりましなことは確かです。ええ。

本は
+ 高橋麻奈 / やさしいXML
+ 金子勇 / Winnyの技術
+ ドストエフスキー / カラマーゾフの兄弟(下)
+ 梅澤真史 / 自由自在Squeakプログラミング
+ 京極夏彦 / 姑獲鳥の夏(上)
+ 京極夏彦 / 姑獲鳥の夏(下)
+ 結城浩 / 暗号技術入門
+ 高畑京一郎 / タイム・リープ(上)
+ 高畑京一郎 / タイム・リープ(下)
+ 星新一 / ブランコのむこうで

やさしいXML。LLNで手に入れたやつ。
XMLはあまり興味なくてほとんど知らなかったので、
とっかかりとしては最適な本だった。

ny。ダウソ板の初期のスレはリアルタイムで読んでたので、
おさらいみたいな感じ。さらっと読めて良い。
P2Pの応用例としてアイデアの素になるのではないかな。

カラマーゾフ。やと読み終えた。
長かったが、ヒジョーに面白かった。
今まで読んだ小説の中ではトップだな。
実はドストエフスキーは第2部を書くつもりでいたらしい。
第1部が完成してまもなく志半ばで死んじまったんだとさぁ。
はぁ… 心底残念。ここまで続編を読みたい作品はないって。
兄貴は脱走できたのか、イワンはこっちの世界に帰ってこれたのか、
リーザとアレクセイの恋は、コーリャの将来を見てみたい、ああ。

Squeak。
とりあえずSmalltalkを体系的に学習できた。
読んだだけで触ってないけど。
まクラスベース言語として権威的な地位にあるのは頷ける。
ただRubyに負けるのは当然。(シェアの話)
RubyはSmalltalkのいいところだけパクって
C/Unix文化に汚染された人間に馴染むように
絶妙なアレンジを加えてあるので。
つかぶっちゃけSmalltalk読みにくいし。

姑獲鳥の夏。
京極堂シリーズ第1巻。おもしろ!
これはもっと早く手に取っておくべきであった。
以前から気になってはいたのだけど、
あの文庫本のぶ厚さにはちと躊躇したくもなる。
分冊版の存在を知らなったもので。
これから分冊版を徐々に消化していく予定。
内容は、夢久のドグマグと似ているかも。
民俗学と科学の融合具合が。
古風な文体もいい味出してます。

暗号技術入門。
期待通りの良書。
暗号プログラム書きてぇ。
そんなに大変なものじゃないので作ろうと思えば作れるだろうけど、
作っても既にあるし役に立たないという…
でも楽しそうだから時間ができたら…できるのか?

タイムリープ。
意識時間を遷移するという現象。
ある意味ぐるぐるまわる系。
クリスクロスが面白かったので読んでみたがこれもいい。
こういうラノベをもっと読みたい!

ブランコのむこうで。
今度は他人の夢を遷移する物語。ファンタジー。
星新一はSFショートショート集を一冊だけ読んだことがあるのだが、
それも面白かったけどこれはずっと好みだった。
現実(絶対視点)は夢(絶対視点)から見れば夢(相対視点)なのだというのは斬新。
夢と現は対称関係にあるって話。


マンガは
+ DEATH NOTE (8)
+ ARIA (7)
+ よつばと (4)
+ ヒビキのマホウ (1)

デスノ以外は癒し系。
ヒビキのマホウはKeyの麻枝氏が原作書いてます。
けっこう面白かった。
よつばとは素直に笑える。
子供欲しいな。よつばはちょっと手に余るが。


今月は特にどこも行かんかったなぁ。
天気が悪かったり、ひきこもってたかったりで。
まそういう月もあって良いと思う。
ぐうたらしてたわけじゃないし。
来月はどこか行きたいなぁ。

コメント(7)

acht :

相変わらずたくさん本読んでますねぇ。
私は漫画くらいなもんでw

カラマーゾフの兄弟(下)は続編がなかったから
逆によかったのかもしれないよ?と思った。
続編があったはずなのに、ないというのは
読者をむずむずさせていつまでも心に残りそうですからw

wiz@癒系 :

>暗号プログラム書きてぇ。
>そんなに大変なものじゃないので作ろうと思えば作れるだろうけど、
>作っても既にあるし役に立たないという…
RSAは証明読まなきゃ思いつかないので癒し系じゃないけど、
自作の公開鍵暗号化は難しく茄子。

α・β ≡ 1 (mod 256)

の時、0≦x<256を暗号化してCを

C ≡ x・α (mod 256)

と定義すれば、

x ≡ C・β (mod 256)

より復号化可能。

特長は、割り算がいらない(勝手にオーバーフローしてくれる)、
データ量が増えない。

複雑化すればましになるかなと今でも思ってる罠。

鍵の安全性は秘密鍵と同じレベル(=鍵が違う意味が無いレベル)なので
公開鍵暗号化といえなかったりするかもしれない罠。

**を累乗演算子として、

C ≡ x・(α**β) (mod 256)
x ≡ C・(β**β) (mod 256)

とか、αとβを1通りに制限するような工夫をすればあるいわ・・・<アキラメロ

eclipse :

>>acht
>読者をむずむずさせていつまでも心に残りそうですからw
なるほど。それは確かにあるかも。

>>wiz
>鍵の安全性は秘密鍵と同じレベル(=鍵が違う意味が無いレベル)なので
できればこの辺の補足が欲しいな。

wiz@眠 :

んーと、
α・β ≡ 1 (mod 256)
において、一方の鍵、例えばα、を固定する(=Aとおく)と、
A・β ≡ 1 (mod 256)
となる。左辺においてβが256だけ増えたらどうなるだろうか。
A・(β + 256) = A・β + 256・A = A・β
おお、なんと、βは256増えるごとにAに対する鍵となり得るではないか。

つーことで、これを逆手に取れば、任意の鍵Aに対する鍵βは、
適当に選んだ数nから、n+256の間に1つだけ存在する。

つまりは、βの候補は、1~257の中に必ず存在してしまう。

つーとんでもない欠点を持っているのさ。なので、

A・β ≡ 1 (mod 256)

において、Aが公開鍵、βが秘密鍵とすると、秘密鍵を見つけるには、
βを1~257までの間で変化させ、合計256回ループしてみれば
必ず見つかってしまう。(256回の掛け算なんて一瞬だよね)

一方、RSAの鍵ペアは、離散対数問題(掛け算は簡単だが、素因数分解
は超難しい、つー問題)で、秘密鍵か公開鍵のどっちかが
分かっても、もう一方がわからないという特徴がある。

んで、自作の側でもそれを真似して、
α' = α**β (mod 256)
β' = β**β (mod 256)
という計算をして、αとβをそのまま鍵にせず、α'とβ'を鍵として使えば、
最初に書いたような、256回掛け算を試せば、一方の鍵から
もう一方の鍵が分かっちゃうのを防げるかなと。

ちなみに、自作の方の暗号化と復号化の原理は、
α・β ≡ 1 (mod 256)
の両辺に、0≦x<256な数xをかけると、
x・α・β ≡ x (mod 256)
と、1行で証明終わっちゃう話ね。(x・α=Cだぞ)

んで、鍵をそのまま素直にα'とβ'に置き換えると、左辺は
α'・β' = α**β・β**β = (α・β)**β ≡ 1 (mod 256)
となる。最後の≡が言える理由は省略です。ま、考えれば分かるかと。

なので、両辺からxかけて、元に戻ることが分かると。

んで、α'とβ'において、α'が公開鍵として公開された状態で、
β'を知る方法が見つかったらやっぱりこの方法もダメだけど、
もしも簡単にβ'が求まらなければ、結構良いんでないノ?と。

ま、どうせβ'も簡単に求まっちゃうんじゃなかろうかと。素人理論だし~

Σ(´Д`) OTZ ダメジャン・・・

結局α'に対するβ'は1~257までの間に存在するジャマイカ。もうね・・・
β'はmod256されてるから、0~255の範囲になり、0はありえないから
1~255、255通りになって、1通り分少なくなってるし。もうね。

諦めろってことですかね。ヤレヤレ

C ≡ (x ^ β)・α (mod 256)
x ^ β ≡ C・β (mod 256)

とかxorを混ぜてみたりして。これもイマイチだなぁ

眠い・・・ (つД`)

eclipse :

丁寧な説明ありがとう。
よくわかりました。
mod 256 に決め打ちしてる時点でダメなんじゃない?
RSAの場合、mod N の N はでっかい数ですよね。

wiz@高速系 :

(mod 256)だと割り算が必要ないのが魅力。あと、データ量が増えない。

一般的に、(mod N)において、暗号化対象が0≦x<Mの時、
「M<<N」なのが普通なので、データ量が一気に増える。
例えば、楕円曲線暗号なんかの場合は、暗号化の際に
乱数を加えて暗号化しても、その影響を(復号化の際に)取り除く
ことが出来たりするようになる。

例えば、「N = 2・M」ならば、1つの元データXに対して、
暗号化先のデータはC1,C2の2つを用意できるので、
上手く組んでやれば、データXを暗号化して、C1とC2を
ランダムに暗号化データとして使える。そうすると
何が良いかというと、暗号化済みのデータの出現頻度から
平文を妄想する攻撃とかに耐えられるようになったりする訳だ。

つまり、eの出現回数が多い英文を、1対1の対応の暗号方式で
暗号化すると、一番多く出てくるデータがeだと中りをつけられると。
「N = 100・M」なら、eに対して100個の暗号化済みデータが
対応するので安全性が高まると。百文字の平文なら、暗号化済み
のデータに、同じデータは出現し得ないからな。

んで、話を戻すと、(mod 256)なのは、高速性と実装の簡易さ
という点が重視な感じなので。
まぁかぎの安全性は無理そうなら秘密鍵暗号の方向で何とかならんか
考えてみようかと。

MPI(Multi Percision Integer: 多倍長整数)とか使うタイプだと
どう最適化しても重いのに変わりは無いしな。
とはいえ、秘密鍵暗号ならパテントフリーなAESだの何だのがあるし
公開鍵暗号だって楕円曲線とかあるから
  (´Д`)マァそれを勉強した方が早くネ?
って感じで。ま、世の中難しい訳ですよ。

P.S.
「N=256・M」なランダム性を持つ暗号化の例としては、
8ビットの元データを4ビットずつに分解して、
ランダムに生成した2ペアの4ビットとそれぞれ組み合わせて
それで16bitの暗号化済みデータにするとかな。
単純だが、一対多な暗号化の例だ。

(´Д`)マァ、暗号化の話はこの辺で。

eclipse :

乙。
ま真面目に解読されたくないんだったら、俺暗号はダメ、ゼッタイ。
てのは結城さんの本に散々出てきたな。

このブログ記事について

このページは、yuchが2005年10月30日 22:47に書いたブログ記事です。

ひとつ前のブログ記事は「趣味プロとか」です。

次のブログ記事は「1 + 1」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.01