- - PR -
二者間の間でパラメータの優先順位を決定するアルゴリズム
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-09-16 11:23
脱線続き? になるかも知れませんが。 des-ede3 ( 3鍵の 3DES ) は、見た目上、鍵長が 168bit ですが、実質は 112bitになると聞いたことがあります。 ※ 同じ理屈から、double DES は存在しない… 何故なら実質鍵長 56bitになり、素の DESと変わらず無意味だから。 meet in the middle attack ( MITM ) とか何とかの方法だとかを使うらしい。 ※ des-ede ( 2鍵の 3DES ) は一寸分かりませんが…、恐らくこれも実質 112bitかと。 なので、rc4 より下になるのではないでしょうか。勿論、暗号方式が違うので、鍵長だけの比較はナンセンスですが、SSLでは鍵長のみで順位を決めていたような記憶があります。 以上、ご参考まで。 [ メッセージ編集済み 編集者: angel 編集日時 2005-09-16 11:37 ] | ||||
|
投稿日時: 2005-09-16 12:48
banbooさんこんにちは。
一番シンプルな方法を考えました。 順位をそれぞれ、ビットに割り当てればいいと思います。 1位:1 2位:2 3位:4 4位:8 5位:2の4乗 ... n位:2の(n-1)乗 というように順位に重み付けしておいて 単純に足し合わせて、数値が少ない順にすればいいと思います。 この例だと、 A a:1 b:2 c:3 B a:2 b:2 c:1 なので、 A a:1 b:2 c:4 B a:2 b:2 c:1 となり、 A+B a:3 b:4 c:5 となるので、 a->b->c という結果になります。 | ||||
|
投稿日時: 2005-09-16 13:38
皆様アドバイスを頂きありがとう御座います.
「平均順位」という概念は,知りませんでした. A a:1 b:2 c:3 B a:2 b:2 c:1 a:1+2 = 3 b:2+2 = 4 c :3+1 = 4 よって,a,b,cの平均順位は,以下となる. a:1 b:1.5 c:1.5 >暗号化方式を決めるということなら、 >利益を最大にするというより、万一の場合の損失を最小にするような >考えのほうがいいような気がします。 アドバイスを頂き,なるほどと思いました. 暗号化方式を決める時の,利益や損失について自分なりに考えてみました. かなり難しい問題ですね. 利益は,暗号化強度を高いものを選択する事によりセキュリティを 高めることでしょうか. 一方,損失は,なんでしょう? 例えば,暗号化によって,接続された場合に相手に漏洩する情報という事でしょうか? | ||||
|
投稿日時: 2005-09-16 13:45
暗号化とは関係ないですが、悪いものをいいと主張するものを信用しない、 悪いものかが分からないので、少数派の意見、他との差異が大きい意見を切り捨てる、 なんてことになってくるのかも。 ※画像処理のメディアンフィルタをちょっと思い出したり。 | ||||
|
投稿日時: 2005-10-10 22:47
こんばんは。
本筋とは違うお話の上、今更ながら、ではありますが…。
この話のネタが見つかりましたので、挙げておきます。 ・暗号化のお話(1)より 2DES および 3DES ・二つの MITM って? ( 人に読ます記事書いてあまつさえ金まで取ろうつーならこの程度は知っとけよな、(゚Д゚)ゴルァより ) それでは、ご参考まで。 [ メッセージ編集済み 編集者: angel 編集日時 2005-10-10 23:30 ] | ||||
|
投稿日時: 2005-10-25 15:25
なか-chan様が考えた,「順位をそれぞれ、ビットに割り当てる」という方法を
是非参考にさせて頂きたいと思っております. この方法で,各パラメータの優先順位を決定すると以下のようになります. まず,以下の様な条件があるとします. ・A,Bの二人がいる. ・パラメータの数は,4個.α,β,γ,σとする. ・パラメータの値は,優先順位を表す.値が低い方が,優先順位が高いことを表す. 例1) A B α 1 8 β 2 4 γ 4 2 σ 8 1 このような条件で,各パラメータの優先順位を比較すると以下のようになります. 例1)B A A+B α 1 8 9 β 2 4 6 γ 4 2 6 σ 8 1 9 よって,A,Bの二者間の優先順位は, α = σ < β = γ という結果になります. ■今回は,A,Bを交互に交換する事により,上記と同様な結果を 導き出すようなアルゴリズムを考えたいと思っています. 具体的には,以下の方法です. Step1:自分の値の中で,一番優先順位が高い値を相手に送信する. Step2:受信した値より,優先順位が高い値がある場合は,その値を相手に送信する. Step3:Step2と同様の処理を行う. ... A B Step1: α=1 ==========⇒ Step2: Bのαの優先順位は,8である. Bのσの優先順位は,1である. αよりもσの方が優先順位が高いので,σを相手に送信. σ=1 ←========== Step3: Bのσの優先順位は,8である. Aのβの優先順位は,2である. σよりもβの方が優先順位が高いので, βを相手に送信 (αは,一度相手送信済みなので, 二番目に優先順位が高いβを 相手に送信する) Step3: β=2 ==========⇒ Step4: γ=2 ←========== γより優先順位が高い 値はないため,ここで 終了. ■アドバイスを頂きたいことは,「アルゴリズムの停止条件をどのように定めるか」 という事です. 例えば,私自身の方法は,以下の通りです. アルゴリズムの停止条件は,値を受信した時に, Aの優先順位+Bの優先順位の合計値を計算する. この合計値が,前のStepよりも,合計値が小さくなっている場合は, 終了とする. ■但し,現在の私の方法では,問題があります. ・処理を終了した後に,合計値がもっと低い値があるかもしれない. ・合計値が一緒だった場合の事が考慮されていない. 例えば,以下では,Step2とStep3の合計値が9で同じである. ■今の方法に対する改良点などありましたら,ご教授下さい. A B Step1: α=1 ==========⇒ Step2: αの優先順位,A+B=9 σ=1 ←========== Step3: σの優先順位,A+B=9 Step3: β=2 ==========⇒ Step4: βの優先順位,A+B=6 前のStep2よりも,合計値が小さくなっているので終了. |