zillionプロジェクト開発ブログ 忍者ブログ

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

App-008.png



[kyasbal]





やはり、以前と同じくアプリケーションの設計不足と言ったところか、いろんな構造上の欠陥が・・・
仕様書なんて2,3枚しかなかったのは論外だと、設計を学んで思いました。
もう一度仕様を書き直し、使えるコードを使いまわす、そんな感じでやっていこうかと思っている中、やっぱり.Netを使用すべきだという意見が多数。

僕自身、.Netの知識は、少なく、だったらマネージコードにすれば・・・とか簡単にできるものと考えていました。
しかし、全然違う!

やはり、設計は大事!とはいえ、抽象すぎて、仕様書に具体化できないんです。


そんなわけで、基底部分の設計は、そういうのが得意そうな人に任せたわけで、C#において電子署名クラスを作成しました。

ところで、電子署名って何か知っていますか?

AIRをいじったことのある人やPDFのちょっと奥深い機能を使えば、電子署名ってのがあると思います。
さて、電子署名というのは、その人が本当に作られたものか、その人からクライアントにそのファイルが渡る前に第三者によって改変されていないかをチェックするものです。

もちろん、改変されていれば、ウイルスなどという可能性もあるので、これはチェックすべきです。

では、どうやってチェックしているのでしょう?

RSA暗号化というものを利用します。

まず、ファイル自身からハッシュ値を計算します。

ハッシュ値とは、短い文字列で、ファイルの中身が1文字でも違えば、別の値になるという特徴があります。

[http://itpro.nikkeibp.co.jp/article/COLUMN/20060628/241960/]
MD5やSHA-1,SHA-512などいろいろなアルゴリズムによって、ファイルからハッシュ値を取得します。
つまり、このハッシュ値をあらかじめ記憶しておいて、起動時にファイルのハッシュ値を再度計算、このファイルと異なる場合、途中の経路で改変が行われたことがわかります。




しかし、もともとのハッシュ値をそのまま保存していたら、そのハッシュ値をファイルの改変後のものにすり替えられたら元も子もありません。




そこで、RSA暗号化をはじめとする、公開鍵方式の暗号化を使用します。
公開鍵方式の暗号化は、秘密鍵、公開鍵の2によって成り立ちます。

いきなりですが、1553179961を素因数分解してください。
.........
.....
...
..
無理ですね。
ちなみに17807*87223に分解できます。
じゃあ、85を素因数分解してください。
......
....
...
17*5に分解できます。
じゃあ、なんでそうだと言い切れますか?どうして17*5だと分かったのでしょう?
このように、勘で素因数分解しているだけであって、大きな数の素因数分解をさせるアルゴリズムは存在しないのです。
これを利用して、秘密鍵(素数)から、公開鍵(素数*素数の数)を生成します。
こうすると、不思議なことに、秘密鍵で暗号化したファイルは公開鍵で複合できますが、同じように公開鍵では暗号化できないのです。

あえて、公開鍵を公開します。
作者は、ハッシュ値を秘密鍵を使用して暗号化し、同梱します。公開鍵を使用して、複合化を試みます。
公開鍵は対応した秘密鍵で暗号化したものでしか複合化できないので、つまり、正常に複合化できれば作者しか知らない秘密鍵で作成された暗号だということが保障されます。

ハッシュ値を改竄するには、この秘密鍵がなければ無理です。
では、このRSA暗号化ですが、どれほどの強度があるのでしょう?

映画「サマーウォーズ」の主人公、健二が解いた暗号化は、劇中でShorの因数分解アルゴリズムの本を読んでいたことから、因数分解に関係した暗号化、つまりRSAであったと予想されます。
solve me!というタイトルで送られてきたメールは2056桁の公開鍵だと思われます。
つまり、これは2056桁の秘密鍵*秘密鍵で作成されたものであり、素因数分解をすることで、これを解くことができます。
これを、2.2Ghzのノイマン型コンピューターに解かすと、1000,000,000,000,000,000,000,000,000,000,000,000,000年(1の後に0が39個)がかかることになります。
手計算で1夜で解いてしまうなんてなんて頭がいいんでしょうか。(笑)
ペンタゴンは、侘助を引き抜いたが、多分健二のほうを引き抜くべきだったのではないだろうか。

最も、量子コンピューターが完成したら、こんなもの、数時間で解いてしまうと言われていますが・・・
RSAは世界中の暗号化でかなりよく利用されています。
そんなことになったら・・・世界中大混乱でしょうね。




拍手[0回]

PR


App-008.png 



リーダー:kyasbal




僕だけが書くと製作部位に偏りがあるので、共同作業日誌化されます。
さて、メンバーもできる限り登場させていきたいと思います。
なお、活動ログは編集が滞っていること、GoogleCodeの方を見ればわかることなので削除させていただきました。

以前よりも増して活発化し、頑張っていきたいと思います。

なお、YUさんは、勉強中ですが、毎回僕が教えたことをまとめて書いてもらいます。

僕も見ますが、誤解している場所は指摘を、そして応援をお願いします。
今から言語を学ぶという人は個人のまとめが不定期に連続したもので見にくいかと思われますが、是非参考にどうぞ。

拍手[0回]

はじめまして!!YUと申します。担当は翻訳で、ライムさんに、プログラミングを教えてもらっている駆け出しプログラマーといっていいのかわからないYUです。ついでに、じぶんでも何をいっているのかわからなくなってきたとおもいまじめていたら、まもやわからなくなってきたところのYUです。(意味不明。無視あるのみ!)
海外にいるので、なかなか日本とのコミュニケーションがとりにくいのですが、朝早くに、ライムさんが、起きてくれてなんとかメモ取りながら習ってます
ありがとうございますライムさん!ってかライムさんって呼ぶべきなのかなオイ
まぁそこは置いといて、趣味は空手、FPS、英語、トイレにいって用をたすことです。(最後のは無視)
空手は月心会という流派にはいっていて、毎年、夏に日本で大会に出場してんですが、残念ながら1回戦負け続きのYUです。でもね、ことしの大会は北海道なんですって!
なぜに?なぜに北海道?意味がわからない!!!!関東で、いいじゃねぇかぁあああ!!!にゃろぉおお
遠いよ!にゃろー的な感じ的な?
まぁいいやそこは置いとけ@@@

いま、このグループは人数激減と聞きました。この投稿や、クラゲルさんの投稿を見た人は、どしどし参加してください!(こんなこと新人が行っていいのかすらわからにYUです)
はい
うん
こんだけ。
最後に
こんな変人チックな投稿しかできないYUですが、これからよろしくお願いします

拍手[0回]

プログラムをせっかく何時間かけて教えても、いきなりSkypeに来なくなったりする始末。
こんなんじゃ教えたって意味がない。
やるって言った仕事をすぐ放棄する。これも問題。

最も学生がサークル感覚で作ってく感じを意識していたんだ。チーム内のコミュニケーションもだんだんと乏しくなっているのが否めない。

次回PVの時人をもっと募集する必要があるなと思った。
リーダーとしてモチベーションを上げていかなきゃならないな。

なお、英⇔日翻訳できる方,動画編集できる方,お手伝いさん,プログラマー希望者さん
是非募集中ですので、メールください。(zeoniccharkyasbal@yahoo.co.jp
なお、参加希望は、タイトルで振り分けているのでタイトルを「hodophylaxプロジェクト参加希望」にしてください。それ以外は迷惑メールになったりして、捨てられてしまうかもしれないので・・・(※上記リンクを使うと自動的にタイトルが設定されます。)

拍手[1回]

熱は下がったのですが、あと2日間は出席停止ですね。

アプリケーションの仕様などを決めて行きたいのに、そういうの僕苦手なんで、うまく伝えられなかったりするんですよ。

特に、ちょっとしたところとかいちいち説明したりするよりもう自分でやったほうが早いみたいなことになったりして、結局チームの意味がなくなってしまう。

書類などにして渡さないと、残らないし作業を何していいのか周りに伝わっていない。
それはわかっているんですが、まだまだ、僕の頭の中にあるのは漠然とした雲のようなものであって、それを考えるってのは難しいんですね。

最近、管理のほうに協力してくれるというかアドバイスをしてくれる人が来ました。
まず、アプリケーションがどんな機能を持つのか書くのだと。

大まかに言えば、それはオンラインゲームを作るただそれだけなんですが、要するにそれはファイルを作れて、読み込めてって当たり前のことから、スクリプトを途中でブレークポイントとか作って止められる機能があればいいななんていう細かい機能まで考えるのは意外に大変なんです。

これは決して仕様書だけではなく、チーム内で曖昧というのはよくある話なんですね。
この機能は当たり前だから実装しよう。でも人によって当たり前の基準が違うし、そんな勝手に実装されては困ってしまう。

僕自身、仕様書書くよりプログラムをゴニョゴニョいじってた方が好きなんで、勝手に拡張したり人の作ったプログラムをいじってみたりするわけですが、それはプロジェクトにとって決していいことではなく、勝手にいじられたりすると当然作った本人は構造が変わっていてよくわからなくなったりしますし、当然編集した僕のほうも、ちょっとしたこといじってるだけだったりするので直接的な構造を知らないこともよくあるんです。特に3D描画関連なんてそうなります。

以前、構造体を返す関数があったので、ポインタに変更したほうが当然メモリの節約になると思い変更したことがありました。しかし、本人にとってはそれは実験的にやっているだけであってメモリの確保、解放のタイミングがわかりづらい場所だったわけです。

元々フリー関数なんて言うのはあんまり使うべきではないと思うんですが、クラス化まだしていなかったそれをちょっとした善意の変更をしてやったことによって、メモリリークだらけになったりさせちゃったものでした。

仕様書書くってのがリーダーの仕事なんですからやらなきゃ仕方ない。そんなわけで、書いてるんですが、機能仕様と漠然と言われても難しいんですよねぇ・・・

とりあえず、たたき台を用意するってことが目標なので、頑張ってみようかと思います。

なお、英⇔日翻訳できる方,動画編集できる方,お手伝いさん,プログラマー希望者さん
是非募集中ですので、メールください。(zeoniccharkyasbal@yahoo.co.jp
なお、参加希望は、タイトルで振り分けているのでタイトルを「hodophylaxプロジェクト参加希望」にしてください。それ以外は迷惑メールになったりして、捨てられてしまうかもしれないので・・・(※上記リンクを使うと自動的にタイトルが設定されます。)



拍手[1回]

◎ カウンター
◎ カレンダー
03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
◎ 最新CM
[10/24 名無しの権兵衛]
[08/30 名無しの権兵衛]
[08/14 no name no future]
[08/05 ゲームサークルEaSt]
[07/28 リオウ]
◎ プロフィール
HN:
solilpquy
年齢:
30
性別:
男性
誕生日:
1994/09/22
職業:
人間
趣味:
趣味ねぇ~~う~ん・・・
◎ ブログ内検索
◎ バーコード
◎ アクセス解析
◎ フリーエリア
◎ フリーエリア
Script: Ninja Blog 
Design by: タイムカプセル
忍者ブログ 
[PR]