スレ立てるまでもない質問はここで 109匹目
■ このスレッドは過去ログ倉庫に格納されています
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
Javascript は Web 制作板、CGI は Web プログラミング板へ。
業界談義、愚痴はプログラマ板へどうぞ。
ゲーム関係の話題はゲーム製作板へどうぞ。
ネタ、板とは関係の無い話題はご遠慮ください。
前スレ
スレ立てるまでもない質問はここで 108匹目
http://hibari.2ch.net/test/read.cgi/tech/1287477677/
0446デフォルトの名無しさん
2011/01/08(土) 09:05:430447デフォルトの名無しさん
2011/01/08(土) 11:44:20もしも簡単に解析できるのであれば通信を暗号化する意味がないような気がします。
ここでいう簡単に解析とは、C言語を理解できるぐらいの理解力がある人が
書籍などで勉強して一週間程度で解析できることとします。
0448デフォルトの名無しさん
2011/01/08(土) 11:59:57現在使われてる暗号っていうのはな
仮に実行プログラムのソースが手に入ってそれを理解できたとしても
そのソフト同士の通信を傍受しても解読できないの
そういう暗号があるの
0449440
2011/01/08(土) 12:02:03ありがとう。
Windows なので WaitForMultipleObjects を利用しようと思う。
これならスレッドのハンドルだけで判定できるんだな。
完全に忘れてたよ。。。
0450デフォルトの名無しさん
2011/01/08(土) 12:08:32ていうか普通に暗号について勉強しろと
0451デフォルトの名無しさん
2011/01/08(土) 12:10:20困難であるだけで、不可能ではない。
不可能ではないが、お前の秘密を暴くためにスーパーコンピュータを貸しきりなんてする価値ないから事実上不可能。
実際、その暗号化のタネはそれ系企業のトップシークレット。
でもまえに NHK の番組で、素因数分解を容易にやれるようになるかも知れない。
その場合にはいまの通信の秘密性を維持できなくなってタイヘン、的なことを言ってたね。
0452デフォルトの名無しさん
2011/01/08(土) 12:21:34今暗号については勉強中で、先ほどウィキペディアでwinnyについて調べていたら
下のように書かれていました。
ウィキペディアの情報が正しいならプログラムによっては通信の暗号化は意味が無いような気がしたので
質問しました
だが、公開鍵暗号を使わないでいると、第三者のなりすまし攻撃を受ける可能性がある。そのため Winny では公開鍵暗号が使われており、同時に固定鍵がWinny内部に内蔵されている。
しかしデバッガを使えばその固定鍵を取り出すことができる
0453デフォルトの名無しさん
2011/01/08(土) 12:29:49それは winny の実装の問題。鍵をプログラムに埋め込まず、実行時に鍵を都度乱数で生成するなどの方法がとれるのでは?
0454デフォルトの名無しさん
2011/01/08(土) 12:38:17>>実行時に鍵を都度乱数で生成するなどの方法がとれるのでは?
これだと遅いらしいです。どれくらい遅いのかは分かりませんが
公開鍵暗号は遅いらしいので、一般的には早い共通鍵暗号でデータを暗号化し
その共通鍵暗号の鍵を公開鍵暗号で暗号化するらしいのですが
共通鍵暗号の鍵の保管方法について疑問を感じてます。
winnyの保管方法だと暗号化自体意味がなくなってしまうと思います。
0455デフォルトの名無しさん
2011/01/08(土) 12:57:54ちゃんと勉強してから質問してくれ
0456デフォルトの名無しさん
2011/01/08(土) 13:08:39本来秘密鍵は秘匿すべきもので、鍵を交換するときは鍵を交換するための
特別なプロトコルを使わなければいけないのにそれをやっていなかった。
つまり、正しい暗号の使い方をしていなかった。
Winnyがどうこう言い出すならまず「Winnyの技術」と「Winnyはなぜ破られたのか」ぐらい
読んでくれ。疑問を感じる前にまず基本を勉強しろ。
0457デフォルトの名無しさん
2011/01/08(土) 14:24:05質問しなおせ
0458デフォルトの名無しさん
2011/01/08(土) 14:43:52結局私が知りたいのは、「実行プログラムだけで通信を傍受することができるのか」です。
例えば実行プログラムのバイナリにデバック機能を付けるツールがあれば、通信の暗号化は無意味になるような気がします。
0459デフォルトの名無しさん
2011/01/08(土) 14:45:290460デフォルトの名無しさん
2011/01/08(土) 14:46:23>デバック
きっと君はそのままずっと理解できないと思う
0461デフォルトの名無しさん
2011/01/08(土) 14:47:220462デフォルトの名無しさん
2011/01/08(土) 14:51:03最終的にはリバースエンジニアリングされます
0463デフォルトの名無しさん
2011/01/08(土) 14:53:250464デフォルトの名無しさん
2011/01/08(土) 15:00:350465デフォルトの名無しさん
2011/01/08(土) 15:07:06しかし、勉強不足で根拠も薄くしかも聞く耳持たずの質問者は、ただの愚か者。
0466デフォルトの名無しさん
2011/01/08(土) 15:08:20今日から鍵つかわずに生活しろ
0467デフォルトの名無しさん
2011/01/08(土) 15:40:320468デフォルトの名無しさん
2011/01/08(土) 15:42:050469デフォルトの名無しさん
2011/01/08(土) 16:39:210470デフォルトの名無しさん
2011/01/08(土) 16:44:090471デフォルトの名無しさん
2011/01/08(土) 16:45:110472デフォルトの名無しさん
2011/01/08(土) 16:53:55論点を整理しましょう。
「公開鍵暗号は共通鍵暗号よりも処理が遅い」
これはそのとおりです。
「公開鍵暗号の鍵を生成する」
巨大桁の素数を乱数をもとに二つ発見することであり、
これも負荷の高い作業ではあります。
「共通鍵暗号でデータを暗号化しその共通鍵暗号の鍵を公開鍵暗号で暗号化する」
これもそのとおりです。
そして共通鍵暗号の鍵は乱数を使って生成すればいいでしょう。乱数の生成自体は遅くはありません。
winny の実装は確かに問題がありました。
>>>実行時に鍵を都度乱数で生成するなどの方法がとれるのでは?
>これだと遅いらしいです。どれくらい遅いのかは分かりませんが
共通鍵暗号の鍵の生成の場合は、都度生成しても遅い(負荷の多い)というわけではありません。
0473デフォルトの名無しさん
2011/01/08(土) 16:59:26暗号化、というのはたとえばA と B が暗号通信しているときに、第三者が通信中のログを除いて解読することを防ぐことですよね。
プログラムに鍵がうめこんであり、そのプログラムが広く入手可能である場合には、バイナリハックして鍵をとりだすことで、
暗号化は無意味になりますね。
でも、 AとBが、通信の都度に鍵を変えて通信すれば、(第三者がいくらプログラムを解析しても)鍵は通信の都度つくられて AB 以外の第三者には
わかりようがないですから、暗号通信は意味があることですよね。
0474デフォルトの名無しさん
2011/01/08(土) 17:51:32通信プログラムで、通信のプロトコルだけ暗号化しようと考えています。暗号化はある程度勉強していてopensslで実装しています
簡単に説明すると
サーバ側
�A「Hello」を受信すると、そのクライアントにクライアントから受け取った公開鍵で暗号化したプロトコルを送信
クライアント側
�@サーバーに通信開始の文字列を暗号化をしないで送る「Hello」など
同時に公開鍵も送る
�A公開鍵暗号方式の秘密鍵で暗号化したプロトコルを復号化する
通常はデータを共通鍵暗号方式で暗号化し、共通鍵暗号方式の鍵を公開鍵暗号方式で、暗号化するらしいのですが、今回はプロトコルのサイズが小さいので
公開鍵暗号方式だけで暗号化しようと考えています
今回質問した経緯は、上記の勉強している過程で、通信の暗号化は場合によっては無意味になると思ったので、質問しました
※例えばリバースエンジニアリングやP2Pのプログラムなど(P2Pはサーバがない為、確実に安全な通信は不可能ではないかと思ってます)
> 暗号化、というのはたとえばA と B が暗号通信しているときに、第三者が通信中のログを除いて解読することを防ぐことですよね。
> プログラムに鍵がうめこんであり、そのプログラムが広く入手可能である場合には、バイナリハックして鍵をとりだすことで、
> 暗号化は無意味になりますね。
そうですよね。
ただ全く暗号化していないよりは安全性はあると思います
(一般の素人にはバイナリハックはできないので)
>
> でも、 AとBが、通信の都度に鍵を変えて通信すれば、(第三者がいくらプログラムを解析しても)鍵は通信の都度つくられて AB 以外の第三者には
> わかりようがないですから、暗号通信は意味があることですよね。
この方法だと、バイナリハックしても暗号通信は意味があると思います。
だた、気になる点があってVCなどでデバッグしているときにメモリの内容を見ることができますが
実行プログラムに、VCのデバッグ機能のようなものを実行プログラムに埋め込むツールがあれば
暗号化したプロトコルも復号化することができるのではと思い質問しました
0475デフォルトの名無しさん
2011/01/08(土) 17:53:120476デフォルトの名無しさん
2011/01/08(土) 18:05:09デバッグ機能を使おうが使わなかろうが、メモリの内容を見ようが見まいが、
正しい鍵があれば復号できるし、正しい鍵がなければ復号できない
それ以外になにがあるっていうんだ
0477デフォルトの名無しさん
2011/01/08(土) 18:10:05>だた、気になる点があってVCなどでデバッグしているときにメモリの内容を見ることができますが
>実行プログラムに、VCのデバッグ機能のようなものを実行プログラムに埋め込むツールがあれば
>暗号化したプロトコルも復号化することができるのではと思い質問しました
通信当事者であるA, B で実行しているプログラムに仕掛けをつければ、通信中に使用している鍵を拾い出すことは原理的には不可能ではないと思います。
しかし暗号化は当事者A, B 以外の第三者Cが通信を覗き見することを防止することで、C が A, B のプログラムに仕掛けをつけることはできません。
C に対しては暗号化は意味があります。
プログラム使用者 A, B に対してプロトコルの解析を防止するためには、暗号化は効力を持ちません。
0478デフォルトの名無しさん
2011/01/08(土) 18:17:510479デフォルトの名無しさん
2011/01/08(土) 18:31:18独自方式なら好きなように勝手にどうぞ
質問することなんかないだろ
0480デフォルトの名無しさん
2011/01/08(土) 18:53:46そんなもんがあったらとっくに使われてるわ。あいつらの必死っぷりったらないからな。
確か何年か前にコンテストとかもやってた記憶がある。
0481デフォルトの名無しさん
2011/01/08(土) 18:56:490482デフォルトの名無しさん
2011/01/08(土) 18:58:120483デフォルトの名無しさん
2011/01/08(土) 19:00:580484デフォルトの名無しさん
2011/01/08(土) 19:14:08復号でシンでもしらんが
はい次どうぞ
0485デフォルトの名無しさん
2011/01/08(土) 20:22:37私は今でgoto文を仕事でも趣味でも使ったことがありません。
そのソースではエラー処理で使われていて、これはいいなぁと思ったのですが
会社でC言語などでgoto文を使うとやっぱり何か言われるのでしょうか?
0486デフォルトの名無しさん
2011/01/08(土) 20:29:43gotoをリターンやブレイクに返還しろ。
0487デフォルトの名無しさん
2011/01/08(土) 20:31:030488デフォルトの名無しさん
2011/01/08(土) 20:31:14あなたが説明説得できるレベルであれば使えばいいと思うよ
0489デフォルトの名無しさん
2011/01/08(土) 20:39:020490デフォルトの名無しさん
2011/01/08(土) 20:40:140491デフォルトの名無しさん
2011/01/08(土) 20:40:34gotoを含む場所、gotoのある場所をひとつの関数としたら
returnとgotoは同じ意味。
0492デフォルトの名無しさん
2011/01/08(土) 20:49:41/:::::::::::::::::::::::::""'''-ミ 彡
//, -‐―、:::::::::::::::::::::三 ギ そ 三
___ 巛/ \::::::::::::::::三. ャ れ 三
_-=三三三ミミ、.//! l、:::::::::::::三 グ は 三
==三= ̄ 《|ll|ニヽ l∠三,,`\\::三 で 三
/ |||"''》 ''"└┴‐` `ヽ三 言 ひ 三
! | / 三 っ ょ 三
|‐-、:::、∠三"` | ヽ= U 三. て っ 三
|"''》 ''"└┴` | ゝ―- 三 る と 三
| / ヽ "" ,. 三 の し 三
| ヽ= 、 U lヽ、___,,,...-‐''" 三 か て 三
. | ゝ―-'′ | |::::::::::::_,,,...-‐'"三 !? 三
ヽ "" ,. | | ̄ ̄ ̄ 彡 ミ
ヽ、___,,,...-‐''" ,,..-'''~ 彡川川川ミ
厂| 厂‐'''~ 〇
| ̄\| /
0493デフォルトの名無しさん
2011/01/08(土) 20:52:50個人的には、現在書いてるコードのラインより上に飛ぶgotoは禁止してる。
ほんとにスパゲッティになるからね。
0494デフォルトの名無しさん
2011/01/08(土) 20:57:040495デフォルトの名無しさん
2011/01/08(土) 20:59:230496デフォルトの名無しさん
2011/01/08(土) 21:00:150497デフォルトの名無しさん
2011/01/08(土) 21:02:01>>485
絶対にgotoを使わないと書けないという処理というのは極めて少ないのと、
Cにあまり習熟していない人が使うと悲惨なことになるかもしれない……というのは周知の通り。
趣味ならともかく、会社だと自分が書いたソースを別の人が保守することもあるわけで、
会社やプロジェクトの方針でgotoを禁止するというのも、あながち間違った判断ではないと思う。
>>490
発祥は2chでもないし、生まれも最近じゃない。
正しい読み方なのか間違った読み方なのかはともかく、かなり昔から使われてる言い方だよ。
0498デフォルトの名無しさん
2011/01/08(土) 21:05:410499デフォルトの名無しさん
2011/01/08(土) 21:07:320500デフォルトの名無しさん
2011/01/08(土) 21:09:07これ禁止する人は大体聞きかじりでgoto絶対ダメと妄信してる人だけ
0501デフォルトの名無しさん
2011/01/08(土) 21:12:01お前は癌になって素人に手術してもらえばいい
0502デフォルトの名無しさん
2011/01/08(土) 21:12:330503デフォルトの名無しさん
2011/01/08(土) 21:12:55> Cならエラー処理にgotoは常道
> これ禁止する人は大体聞きかじりでgoto絶対ダメと妄信してる人だけ
私もそう思いますが、会社で禁止しているケースもあるのでは
0504デフォルトの名無しさん
2011/01/08(土) 21:13:420505デフォルトの名無しさん
2011/01/08(土) 21:14:27Real Programmers Don't Use PASCAL に "Real Programmers aren't afraid to use GOTOs." ってあるけど。
0506デフォルトの名無しさん
2011/01/08(土) 21:14:460507デフォルトの名無しさん
2011/01/08(土) 21:16:160508デフォルトの名無しさん
2011/01/08(土) 21:17:560509デフォルトの名無しさん
2011/01/08(土) 21:18:310510デフォルトの名無しさん
2011/01/08(土) 21:19:28もうしわけないが、for が多重に入れ子になった中から一挙にすべての for をぬけるには、goto が一番簡便。
http://hibari.2ch.net/test/read.cgi/tech/1291471791/676
http://codepad.org/RMU1H5jZ
0512デフォルトの名無しさん
2011/01/08(土) 21:19:530513デフォルトの名無しさん
2011/01/08(土) 21:20:090514デフォルトの名無しさん
2011/01/08(土) 21:21:28お前の会社名を挙げろよカス
0515デフォルトの名無しさん
2011/01/08(土) 21:21:43終了フラグ作れ
0516デフォルトの名無しさん
2011/01/08(土) 21:21:51○正:goto を禁止すると、以上のような無意味な議論を繰り返すアホが出没して迷惑。
0517デフォルトの名無しさん
2011/01/08(土) 21:22:140518デフォルトの名無しさん
2011/01/08(土) 21:22:390519デフォルトの名無しさん
2011/01/08(土) 21:28:45int match(char *exp, char *dic) {
for () {
for () if () {
flag = 0;
goto jump;
}
}
jump:
return flag;
}
これですむぞ。
int match(char *exp, char *dic) {
for () {
for () if () {
return 0;
}
}
return flag;
}
0520デフォルトの名無しさん
2011/01/08(土) 21:33:51int match(char *exp, char *dic) {
for () {
for () if () {
return 0;
}
}
return 1;
}
0521デフォルトの名無しさん
2011/01/08(土) 21:37:09goto無しでは書けないプログラムは存在しない
0522デフォルトの名無しさん
2011/01/08(土) 21:37:14インライン展開してくれるかどうかなんて知らないし
0523デフォルトの名無しさん
2011/01/08(土) 21:37:46なるほど、他の goto も書き換え可能かもしれませんね。
というか、>>511 で使っている goto のほとんどが、「探索等を打ち切って次にすすむ」という効率化のためであり、別に goto がなくてもいいものですしね。
0525デフォルトの名無しさん
2011/01/08(土) 21:41:330526デフォルトの名無しさん
2011/01/08(土) 21:59:58全面的にこんにゃくゼリーを禁止すべきです
0527デフォルトの名無しさん
2011/01/08(土) 22:04:08もち:77例
ご飯(おにぎり含む):61例
パン:47例
あめ:22例
すし(食品成分表で分類できないのでその他扱い):22例
おかゆ:11例
だんご:8例
流動食(食品成分表で分類できないのでその他扱い):8例
カップ入りゼリー:8例
ゼリー:4例
しらたき:4例
と言うことで、NO1のもち禁止に。次にご飯禁止
0528後藤
2011/01/08(土) 22:07:480529デフォルトの名無しさん
2011/01/08(土) 22:07:51即刻禁止すべきです
0530デフォルトの名無しさん
2011/01/08(土) 22:08:110531デフォルトの名無しさん
2011/01/08(土) 22:09:45即刻禁止すべきです
0532デフォルトの名無しさん
2011/01/08(土) 22:15:280533デフォルトの名無しさん
2011/01/08(土) 22:20:130534デフォルトの名無しさん
2011/01/08(土) 22:22:090535デフォルトの名無しさん
2011/01/08(土) 22:26:380536デフォルトの名無しさん
2011/01/08(土) 23:36:440537デフォルトの名無しさん
2011/01/09(日) 00:12:210538デフォルトの名無しさん
2011/01/09(日) 11:34:280539デフォルトの名無しさん
2011/01/09(日) 11:43:13まったくの他人事なんでどうでもいいwwwwwwwwwwwwww
0540デフォルトの名無しさん
2011/01/09(日) 11:51:03きもちわるっ!
0541デフォルトの名無しさん
2011/01/09(日) 11:56:570542デフォルトの名無しさん
2011/01/09(日) 13:42:290543デフォルトの名無しさん
2011/01/09(日) 16:17:450544デフォルトの名無しさん
2011/01/09(日) 16:21:570545デフォルトの名無しさん
2011/01/09(日) 16:30:59■ このスレッドは過去ログ倉庫に格納されています