FLAGS

MENU

NOTICE

2008年12月2日火曜日

Flashで暗号化復号化の結果が合わない (mixi05-u459989-200812020500)

ミクシ内で書かれた旧おかあつ日記を紹介します。
Flashで暗号化復号化の結果が合わない
2008年12月02日05:00
ActionScriptで作ったRSA公開鍵暗号ライブラリのテストをしているのだけど、どうも結果が合わない。 モンテカルロテストという形式のテストをやると、1000分の1~1000分の3 ぐらいの割りと大きい確立で結果がおかしくなる。 これはユーザーが千人いれば一日に一回動作がおかしくなるということで非常に大きい確率だ。 これは凄く変だ。 今日一日この問題のことをずっと考えていた。 僕が作ったプログラムのバグかもしれないし、たたき台として拾ってきたプログラムがもともと持っていたバグかもしれない。

ひょっとして、と思って、ウェブブラウザでテストしてみた。 僕が作ったライブラリはActionScriptでもJavaScriptでも動作する。

やってみたら結果は正しかった。

これは、ひょっとするとFlashのバグかもしれない。 それはありそうな感じだ。 しかし、絡み合う要素が多すぎて、どの演算で結果がおかしくなるのか、まったく検討が付かない。 結果がおかしくなる値のパターンを洗い出してデバッグするしかないだろう。


コメント一覧
おかあつ   2008年12月02日 09:53
同じ鍵と同じ平文では再現率100%ということがわかった。
何で結果がこういうことになるのか...
多分32ビット整数の演算のどこかに問題があるんだろうなぁ...


=====================================

JavaScript
t:2be14a5f97a63100309cffa93e202fa2b134b2c65bd1b7fe9736db2f0406c712
e:1d01fdac4e0e4cbc548c86876d9ba3260bd9906edb08bd9bc276f97272b04a54
d:59509101b98840e6f0d0067fcb9a9b6a08182c141b4af3fc9da9bc709ba997c
result:ERROR!

t:6026448539dd1d77f75dd0fc057453c5506335b9f546fb007d3d47d929abd360
e:4215096ae0e2ea2bf3d7b69abebecedb5b11fc2c31525beb7faaee43245eda06
d:6026448539dd1d77f75dd0fc057453c5506335b9f546fb007d3d47d929abd360
result:OK

Java

text :2be14a5f97a63100309cffa93e202fa2b134b2c65bd1b7fe9736db2f0406c712
crypt :52dad3bef41dd6577f672e0f88882dbf842948a8d03db1537fbcc73c26b034de
decrypt:2be14a5f97a63100309cffa93e202fa2b134b2c65bd1b7fe9736db2f0406c712

text :6026448539dd1d77f75dd0fc057453c5506335b9f546fb007d3d47d929abd360
crypt :4215096ae0e2ea2bf3d7b69abebecedb5b11fc2c31525beb7faaee43245eda06
decrypt:6026448539dd1d77f75dd0fc057453c5506335b9f546fb007d3d47d929abd360


 
出展 2008年12月02日05:00 『Flashで暗号化復号化の結果が合わない』

著者オカアツシについて


小学生の頃からプログラミングが趣味。都内でジャズギタリストからプログラマに転身。プログラマをやめて、ラオス国境周辺で語学武者修行。12年に渡る辺境での放浪生活から生還し、都内でジャズギタリストとしてリベンジ中 ─── そういう僕が気付いた『言語と音楽』の不思議な関係についてご紹介します。

特技は、即興演奏・作曲家・エッセイスト・言語研究者・コンピュータープログラマ・話せる言語・ラオ語・タイ語(東北イサーン方言)・中国語・英語/使えるシステム/PostgreSQL 15 / React.js / Node.js 等々




おかあつ日記メニューバーをリセット


©2022 オカアツシ ALL RIGHT RESERVED