偽札??

euroを空港で日本円に換金していると 一枚だけ機械が何度やっても拒否するらしく、おねぇさんに このお札は換金できないといわれました。

もしかして偽札!?とか思ったりした。

けど、 まさかなぁ。。 (おそらくイタリア。

ニコ生アラートやコメントビューアがブラウザで使えたらいいな

今あるアラートはどれもローカルにインストールor解凍しないと使えないし、

違うPCで見たりすると、ツールが入ってない!ってなる。

それに、ビュワーに関しては、インデックスしてあるIDのリストも違うPCと手動同期しないといけない。

ブラウザで実装してあれば、そもそもインストールする手間も掛からないので、沢山の人が使ってくれると思う。

ちょっと使いたいな~という時に、すぐ使えるので、継続的に使ってくれる人も多そう。

サーバサイドでニコニコと通信すると負荷が大きいので javascriptやAjaxで通信を実装したほうが良いと思った。

Aizu Online Judge を少しやってみる

ホンの すこしだけTopCoderをやったことがあるので比較すると、

TopCoder

  • Class名や引数、戻り値が決まっている
  • 英語オンリーなので、英語がある程度 読めないと問題が理解できない。
  • 全体的に問題が難しいような気がする
  • 問題が簡単、中ぐらい、無難しい。で一セット
  • 必ず制限時間がある(時間が経つに連れてポイントがダウン)
  • ツールが揃っている
  • 公式サイトが分かりにくい

Aizu Online Judge

  • Classを作るのでなくて、普通にint main()で始まり return 0; で終わるプログラムを作る
  • 英語と日本語の両方の問題文がある。見たところ、日本語の問題の方が多いように感じる
  • 問題が比較的解きやすい気がする
  • 問題が難易度ごとに分けられている
  • 制限時間が基本的に無い
  • ツールの数は少ない
  • 公式サイトが分かりやすい

パット思いつくだけで、こんだけあります。

ガッツリやるならTopCoder、
のんびりやるならAizu Online Judgeがいいと思う。
僕にはAizu Online Judgeが合っていそうです。のんびり がいいので@@

RSA 公開鍵と秘密鍵の仕組み

RSA暗号化についてメモ

日本語より式の方がわかりやすいと思うので式で
x , y                           ( xとyは任意の素数)
n * ( x – 1 ) * ( y – 1 ) + 1 = p*q  ( nは任意の自然数)
x * y
(p , x * y) と (q, x* y) のセットが鍵
どちらが秘密鍵でも公開鍵でもおkです。

えらく複雑なことしてるのかと思いきや、
数字を(p * q)乗して、mod (x * y)すると元の数字に戻るという、数字の不思議を利用した暗号化でした。

試しにx = 3, y = 11 とすると、p * q = 21となり p = 3, q = 7となります。
適当に 5 を 21 乗して、mod (x * y)すると (476837158203125 mod 33) = 5 となり復号できます。不思議だ!

一気に21乗すると、いきなり元の値に戻っていまうので、21を3と7に分割します。
つまり、今回の5を暗号化した結果は、 5^3 mod (x * y) = 26となります。
復号するには、26 ^ 7 mode (x * y) = 5となり復号できました。

この性質を利用して、
鍵Aで暗号化したけど鍵Aでは復号できない、鍵Bでは複合できる
鍵Bで暗号化したけど鍵Bでは復号できない、鍵Aでは複合できる

っていう奇妙な仕組みが実現してるみたい。(公開鍵、秘密鍵)

今回、素数 3 と 11 を使って切りの良い、鍵 3 と 7 が出来たけど、
素数が 5 と 11とかだと、 p * q = 41 となり二つに分割できません。。 41が素数なので無理です。(整数じゃないのもおkなのかな?
さらに、p * q = 29962177 だと p と q が想像できない! ( x = 8287 y = 3617
これは上手いこと考えないとプログラムに出来ない!実際どうやって作ってるんだろう。

画像の中に隠しZipファイルを作成

なんとWindowsの標準コマンドだけで、jpgやpngの中にzipファイルを埋めこむことができます。

コマンドは、

copy /b aaa.jpg + bbb.zip ccc.jpg

これだけです。

試しに作った画像がこれです↓

conceals_zip
conceals_zip

このファイルの拡張子を.zipに変えて開くと…  通常のZipファイルとして開かれます。

jpgファイルはファイルの先頭から読み込み、(最近のアーカイバでは)Zipファイルはファイルの後尾から読み込むため こういった裏技ができるようです。

残念ながら、Windows標準のアーカイバではZipファイルを先頭から読み込む らしいのでエラーがでてしまいます。

アーカイバは、winrarで開けることは確認してます。

jpgの他、 png bmp gif そして、、、pdf..で開けることも確認しています。

悪用厳禁。