約 737,818 件
https://w.atwiki.jp/darong/pages/38.html
※は魚拓をとる前に削除されてしまった為、2chにコピペしてあったログです。 2011-04-29 BOZZの私信 ※ 2011-04-28 ジュンさんの曲 2011-04-27 ICP許可「宅吧」 2011-04-26 デビュー曲 2011-04-25 計画延期と目標設定 2011-04-24 一スタッフからの出直し 2011-04-23 第一号店決定 2011-04-22 上海うどん戦争間近 2011-04-21 パートナーのおじさん 2011-04-20 视频許可証 2011-04-19 広告の窓口 2011-04-18 巨大ラーメンチェーンへの挑戦 2011-04-17 競争or共存 2011-04-16 暗礁に乗り上げる音 2011-04-15 スポンサー探し 2011-04-14 ダーロンの無茶ブリ? 2011-04-13 キーパーソン探し 2011-04-12 生えるシャンプーとリンス(途中経過) 2011-04-11 読者からの提案 2011-04-10 見積書、まずは断るところから 2011-04-09 企画書自力作成 2011-04-08 ダーロンからの依頼 2011-04-07 企画書ボツ 2011-04-06 BOZZとの出会い 2011-04-05 ダーロンとジュンさんの出会い 2011-04-04 中国圏アイドル 2011-04-03 ジュンの才能=一発逆転の経費 2011-04-02 一発逆転とダーロン 2011-04-01 学芸会?本格デビュー?
https://w.atwiki.jp/hakemon/pages/255.html
ガブずっきゅん/汎用性理論 フカ フカ フカマル厳選中 わたし年がら年中 タマゴを孵すの てもちはウルガモス ろく ろく ろく 6ヵ所V発見したあの日から タマゴを孵して走るのやめました ガブ ガブ ガブずっきゅん ガブ ガブ ガブずっきゅん ガブ ガブ ガブずっきゅん きみにほら ガブずっきゅん
https://w.atwiki.jp/cryptospace/pages/56.html
定理(HMQV)の証明Mが異なるピアが実行するセッションをテストセッションに選択するケース(他者との鍵共有)署名偽造攻撃の不可能性ケース1またはケース2またはケース3が生じる場合 ケース4が生じる場合 鍵反復攻撃の不可能性 Mが同じピアが実行するセッションをテストセッションに選択するケース(自身との鍵共有、反射攻撃)X0 ≠ Y0 のケース X0 = Y0 のケース 定理(HMQV)の証明 HMQVプロトコルに対する、Canetti-Krawczykモデルにおける、任意のPPT攻撃者をMとおく。 Mが異なるピアが実行するセッションをテストセッションに選択するケース(他者との鍵共有) Mが、ある異なるA, Bについて、テストセッションとして(A, B, X0, Y0)を選択し、そのセッションはセッション鍵 K = H(v) (v = π(A, B, X0, Y0) ) を出力したとする。v = π(A, B, X0, Y0) をテスト署名と呼ぶ。 Mはセッションを暴露するとき、セッション鍵だけでなく、そのセッションの署名も受け取ると仮定してよい。 ※ Mにとってより有利な設定だから。 Hはランダムオラクルなので、MがH(v)を識別し得るのは、以下のいずれかのケースのみ: 署名偽造攻撃 ある時点でMはオラクルHに テスト署名π(A, B, X0, Y0) を送る。 鍵反復攻撃 Mは、テストセッションやそのマッチングセッションとは異なるセッションに、テストセッションと同じセッション鍵Kを生成させる。 (その後、そのセッションを暴露する。) 署名偽造攻撃の不可能性 Mを署名偽造攻撃に成功する任意の攻撃者とする。 テストセッション(A, B, X0, Y0)は、その定義より、A内で完了している。 テストセッションは未暴露でなければならないので、Aは(少なくともテストセッション完了までは)コラプトされていない。 よって、Aは実際にメッセージ(B, A, Y0)を受け取っている。(ただし、Bがこのメッセージを作ったとは限らない。) Aが受け取った、テストセッション内のY0の出自は、以下の4通りのいずれか: Y0はB(内のある完了セッション)によっては生成されていない。 Y0はB内のマッチングセッション(B,A,Y0,X0)によって生成された。 Y0はB内の他者A*とのセッション(B,A*,Y0,X*)によって生成された。(A*≠A) Y0はB内のAとの別セッション(B,A,Y0,X*)によって生成された。(X*≠X0) ケース1またはケース2またはケース3が生じる場合 ケース1またはケース2またはケース3が生じる場合、Mを用いて以下のように双対XCR署名の偽造者Fを構成する(Mは各パーティを高々 m 回活性化するとする) 偽造者F X0, Bを入力として、(A, a)を補助入力として、 パーティP1, ... , Pnを用意。 i, j(≠i) ← [1..n], Pj(の公開鍵) = B, t ← [1..m] (※ FはMがA=Pi内のt番目の(B=Pjとの)セッションをテストセッションに選択すると推測) B=Pj以外の秘密鍵と公開鍵を生成。ただし、Piの鍵ペアは (A, a)。 Mを起動: Mの、B以外のパーティに対する要求は、そのパーティの秘密鍵を用いてオネストに対応する。 Mが、パーティBをメッセージ(B, P, X)で活性化したら、 (P,B)を署名オラクルBへ問い合わせ、双対XCR署名の一部Yを得て、Yを答える。 Mが、パーティB内のセッション(B, P, Y, X)に対し、セッション状態開示クエリまたはセッション出力クエリを発したら、 (P,B,Y,X)を署名オラクルBへ問い合わせ、双対XCR署名σを得て、σを答える。 ※ このとき、(P,Y) = (A, Y0)となり、偽造ルールを違反してしまうことが心配。(Experiment ForgeDXCR 参照) ※ ケース1⇒ Y0はBによって生成されないので、Y=Y0はネグリジブルな例外を除いてあり得ない。O.K. ※ ケース2⇒ B内のマッチングセッションは本クエリの対象とならないので、Y=Y0はネグリジブルな例外を除いてあり得ない。O.K. ※ ケース3⇒ Y = Y0とすると、P = A* ≠ A.O.K. ※ ちなみに、ケース4⇒ X* = Xの可能性があり、(P,Y) = (A, Y0)となり得る。N.G. Mが、パーティA内の t 番目のセッションを活性化したら、 そのセッションのピアがBでないならば、アボートする。 else X0を答える。 Mが、テストセッションとして(A,B,X0,Y0)を選択し、テスト署名π0を出力したら、 (Y0,A,B,π0)を出力して、停止。 [偽造者Fの解析] Fの、Mに対する推測『MがA=Pi内のt番目の(B=Pjとの)セッションをテストセッションに選択する』が当たっているとき、Fによるシミュレーションは完ぺき。 推測が当たる確率は 1/(n2 m)。 よって、 Pr[ Fが双対XCR署名の偽造に成功 ] ≧ 1/(n2 m) ・ Pr[ Mがケース1またはケース2またはケース3で署名偽造攻撃に成功 ]. したがって、Mがケース1またはケース2またはケース3で署名偽造攻撃に成功する確率はネグリジブルである。 ケース4が生じる場合 Mによる署名偽造攻撃において、テストセッション内のAが受け取ったY0は、B内のAとの別セッション(B,A,Y0,X*)によって生成された(X*≠X0)とする。Mを用いて、双対XCR署名の偽造者F を構成する(Mは各パーティを高々 m 回活性化するとする)。 セッション(B,A,Y0,X*)への暴露要求にどう対処するかがポイント。 偽造者F X0, Bを入力として、(A, a)を補助入力として、 パーティP1, ... , Pnを用意。 i, j(≠i) ← [1..n], Pj(の公開鍵) = B, t, l(≠t) ← [1..m] ※ FはMがA=Pi内のt番目の(B=Pjとの)セッションをテストセッションに選択し、 ※ Y0は、B内のAとのl番目のセッションで生成すると推測。 B=Pj以外の秘密鍵と公開鍵を生成。ただし、Piの鍵ペアは (A, a)。 Mを起動:以下を除いて、偽造者Fと同じように対応。 Mが、B内のl番目のセッションを活性化したら、 Y0 ← g を返答する。 Mが、B内のl番目のセッション(B, A, Y0, X*)に対し、セッション状態開示クエリまたはセッション出力クエリを発したら、 κ ← {0,1}k を返答する。 ※ 偽造ルールに違反するため、このケースだけは、署名オラクルを使うことができない。 Mが、テストセッションとして(A,B,X0,Y0)を選択し、テスト署名π0を出力したら、 β ← {0,1} β =? 0 (Y0,A,B,π0)を出力して、停止。 β =? 1 κを返答する直前まで、巻き戻す。 v ← {MがオラクルHへ発したクエリー全体}, H(v)を返答する。 Mが、テストセッションとして(A,B,X0,Y0)を選択し、テスト署名π0を出力したら、(Y0,A,B,π0)を出力して停止。 [偽造者F の解析] F の推測i, j, t, lは確率1/(nm)2で当たる。以下、このケースに束縛。 Mがl番目のセッション(B, A, Y0, X*)について、その署名π*をオラクルHへ問い合わせないとき: β=0のシミュレーションが完ぺき。 Mがl番目のセッション(B, A, Y0, X*)について、その署名π*をオラクルHへ問い合わせるとき: β=1のシミュレーションがv=π*となる確率1/Qで完ぺき。(Q = Hへの問い合わせ総数) 以上より、ネグリジブルでない確率でF はMを完全にシミュレートする。 よって、双対XCR署名の安全性より、ケース4の偽造もできない。 鍵反復攻撃の不可能性 Mがテストセッションs=(A, B, X0, Y0)またはそのマッチングセッション(B, A, Y0, X0)とは異なるセッションs =(A , B , X , Y )にテストセッションと同じセッション鍵を出力させるとする。フォーマルには、Mは出力として、セッションs =(A , B , X , Y )を出力するとする。 一般性を失わす、 Mはセッションs に対してセッション出力クエリを発する (※ Mにとって、より有利な設定) π(A, B, X0, Y0) = π(A , B , X , Y ) (※ ランダムオラクルHの衝突困難性) としてよい。 署名偽造攻撃の不可能性の節で構成した、偽造者F,F が鍵反復攻撃の場合にも以下のように働く。 [ケース1または2または3] (X0, B)を入力として、Fを実行する。 Mが(テストセッションの署名の代わりに)セッションIDとしてs を出力したら、 Fの実行中、Mのセッションs に対するセッション出力クエリに対して答えた署名π を取り出し、出力する。 π =πなので、これは双対XCR署名を破っている。 [ケース4] (X0, B)を入力として、Fを実行する。 Mが(テストセッションの署名の代わりに)セッションIDとしてs を出力したら、 s = (B,A,Y0,X*) ならばアボート。(※このセッションに対してだけは、F は署名をちゃんと作っていない) else Fの実行中、Mのセッションs に対するセッション出力クエリに対して答えた署名π を取り出し、出力する。 s = (B,A,Y0,X*)ならば、X≠X*より、ネグリジブルな例外を除いてπ(s ) ≠ π(s)。 よって、アボートの確率はネグリジブルなので、ケース4でも双対XCR署名を破っている。 以上より、Mが鍵反復攻撃に成功する確率もネグリジブルである。 Mが同じピアが実行するセッションをテストセッションに選択するケース(自身との鍵共有、反射攻撃) 攻撃者Mがテストセッションとして同じピアBが実行するセッション(B, B, X0, Y0) を選択したとする。 双対XCR署名への帰着、すなわち偽造者Fの構成は同じ。 ただし、先の定義では、双対XCR署名の安全性はB≠Aの場合のみ意味を持つので、その安全性を同一パーティBによる双対XCR署名DXCR(B,B,X0,Y0)に拡張することが必要。 A(=B)の秘密鍵が使えない点がB≠Aの場合と異なるところ。 しかし、署名対象メッセージは(B,B)と予めわかっている。 以下、DXCR(B,B,X0,Y0)を出力する偽造者Fを用いて、計算DH問題アルゴリズムCが構成できることをみる。 X0 ≠ Y0 のケース アルゴリズムC U=gu, V=gvを入力として、 d0 ← {0,1}l B = V, X0 = U/Bd0, G[X0,B] = d0. (※ x0 = u - bd0 ) (B, X0)を入力として、Fを起動する: FがオラクルGへ問い合わせ(Y,m)を発したら、 G[Y,m]が未定義なら、e ← {0,1}l, G[Y,m]=e G[Y,m]を返答する。 Fが署名オラクルBへ問い合わせ (m,m ) を発したら、 s ← Zq, e ← {0,1}l, Y = gs / Be G[Y,m] = e とする。(ただし、G[Y,m]がすでに定義されていたらアボート。) Yを返答し、FよりXを受け取って、d = G(X,m )についてσ = Xs Bsdを返す。 (※ (Y BG(Y,m))x + db = (Y Be)x+db = (gs)x+db = σ ) Fの出力を(Y0, B, B, σ0)とする。 (※ (Y0, B)は、署名オラクルのシミュレーション時にCによって用いられておらず、かつFによりオラクルGへすでに問い合わされているとしてよい。) B, X0を入力として、Fをもう一度起動する、ただし、 Fが(Y0, B)をオラクルGへ問い合わせるまでは、先のFの実行と同一のランダムテープを用いて全く同様に処理する。 Fが(Y0, B)をはじめてオラクルGへ問い合わせたら、以降、新しいランダムテープに切り替えて、 e ← {0,1}l, G[Y0,B] = e を返答する。 後は新しいランダムテープを用いて先のFの実行と全く同様に処理する。 Fの2回目の出力を(Y0, B, B, σ0 )とする。 e ≠ e ならば、(σ0 / σ 0)1/(e-e ) を返す。ただし、 [アルゴリズムCの解析] Fがネグリジブルでない成功確率をもつならば、2回とも偽造に成功する確率はネグリジブルでない。このとき、 (Y0 Be)(u-bd0)+bd0 = σ0 (Y0 Be )(u-bd0)+bd0 = σ0 これより、 Bu = (σ0 / σ 0)1/(e-e ). X0 = Y0 のケース 上のCによる巻き戻しはうまくいかない。(d0まで変わると困る。) しかし、このケースでは、セッション(B, B, X0, X0)はクリーン。すなわち、攻撃者Mはこのセッションを観察しているだけ。 以下のように、Mを用いてダイレクトに計算DHアルゴリズムを構成できる。 アルゴリズムC U=guを入力として、 g ← テストセッションを推測, b ← Zq, B = gb Mを起動。 Mがセッションgについて第1メッセージを要求したら、 (B, B, U)を返す。 Mがセッションgについて第2メッセージを要求したら、 (B, B, U)を返す。 Mがセッションg=(B,B,U,U)の署名σ=g(u+db)2を出力したら、(d=G(U,B)) σU-2dbg-(db)2 を返す。 ※ σ = gu2 + 2udb + (db)2 = gu2 U2db g(db)2. Q.E.D. 上へ
https://w.atwiki.jp/yocs/
Wikiについて このWikiは、折り紙の創作をしている人、創作を始めた人、そして創作を始めたい人が対象です。 今現在、このWikiの編集者含めて、折り紙を創作するにはどうしたらいいか、という問いに答えを持っている人はいません。 ですが、折り紙の創作している人はいます。 このWikiでは、折り紙の創作者たちが、各自の作品をいかにして創作したか、という事例を中心にまとめています。 ・折り紙による表現方法の幅 ・創作するための目標設定の方法 ・折り紙の技法の使い方や選び方 ・創作する際に、手詰まりになった部分をブレイクスルーした切っ掛け これらを共有することで、このWikiを閲覧している創作者のブレイクスルーを助けることを目的としています。 取り扱う幅としては、すべてのジャンルの折り紙を想定していますが、ユニット作品など創作者が少ないジャンルについては、情報が少ないかもしれません。 はじめに └ 折り紙表現の多様性 └どんな表現があるか。どんな表現が可能か。 目標の立て方 └こだわり等 代表的な創作技法・手順 └蛇腹、角度系など。それぞれの進め方へのガイド。 妥協ラインの決め方 └原が書く。どうしても妥協できない場合は。 ケーススタディ 蛇腹でリアルな昆虫を作る 蛇腹でアニメキャラを作る 22.5度でリアルな動物を作る 技法ごとの細かいブレイクスルー方法 └ 蛇腹で漢字が折れない! └ 外部リンク集 解決したい問題ごとの分類/リンク紹介 創作技法 山折り 谷折り ダイヤ型 ブック型 神谷パターン ボックスプリーツ 15度系 22.5度系 線対称/非対称 複合 ピュアランド インサイドアウト 作品の分類 シンプル コンプレックス ユニット 平面 ピュアランド テッセレーション 折り技法 ウェットフォールディング 専門用語 内部カド 鶴の基本形
https://w.atwiki.jp/arunida1/pages/13.html
アルニーダ(Arunida)は、2007年3月3日にアルニーダ党(Arunida Party)として設立された、闇の非営利団体である。かつては、アルニーダ帝国(Arunidan Empire)も存在していた。 ※この記事では、広義のアルニーダ及び現体制下のアルニーダについて扱う。 概要 結成以来アルニーダ主義を標榜し、世界征服を目指していたが、2010年3月2日のアルニーダ運営委員会において新たな目標設定を試みた結果、目標自体がなくなってしまい、代わりに人のナニ見て我がナニ直せという謎のスローガンが生まれた。 結成以来、実質的なリーダーは創始者であるひび太とRikの二名であり、ほとんどの期間においてそれぞれ総裁と副総裁を務めていた。 かつてはアルニーダ法に基づき厳格に運営されていたが、アルニーダ・カルタの廃止に伴い、現在は緩やかな集合体として存在している。 かつての体制 アルニーダ・カルタ(通称アルタ)に基づいて運営され、総裁が総括・代表し、副総裁がそれを補佐する立場をとっていた。 最高意思決定機関は7名で構成されるアルニーダ運営委員会であり、規則制定権のほか総裁・副総裁不信任決議権など強力な権限を有していた。 また、総裁が任意に設置する執行機関によって財務・広報などの業務が運用されていた。 勢力 アルニーダ党時代には、七里ガ浜高校出身者を中心に、最大で20名強に至ったとされる。しかし、現在は実質的に規則が存在しない緩やかな集合体となっているためアルニーダの構成員と非構成員の区別自体が曖昧である。
https://w.atwiki.jp/cryptospace/pages/23.html
定理(CPAinRO)の証明のアイデア 構成(CPAinRO)の暗号文は、 c = (fi(r), G(r)+m). fiは一方向置換なので、cをもらっても r はわからない。 よって、ランダムオラクルモデルのもと、G(r)は攻撃者にとって(fi(r)と独立な)未知の乱数 s。 よって、cは攻撃者にとって、 c = (fi(r), s+m). これはmを完全に隠す。 定理(CPAinRO)の証明 構成(CPAinRO)に対する任意の効率的な攻撃者をAとする。Aの成功確率を 1/2 + ε とおく。 εがネグリジブルであることを示したい。 Aを用いてトラップドア置換の攻撃者Bを構成する: 攻撃者B y*(=fi(r*))を入力として、インデックスiを補助入力として、 pk=(i,G)を入力としてAを起動する。 AからGオラクルに対する問い合わせrを受け取ったら、 y* = fi(r)ならば、rを出力して終了。 G[r]が未定義ならば、g ← {0,1}l, G[r] = g g = G[r]を返答する。 Aからチャレンジクエリ(m0,m1)を受け取ったら、 s ← {0,1}l, c* = (y*, s) // 本来は、s = G(r*) であるべき。 c*を返答する。 Aが終了したら、終了する。 [攻撃者Bの解析] AskRを 『AがGオラクルにr*をたずねる』というイベントとする: AskRがおきないうちは、BのAに対するシミュレーションは完ぺき。(sがテキトウであることがバレナイ) AskRがおきれば、Bは直ちに成功する。 AskRが最後までおきなかったら、Aの成功確率は高々1/2である。(c*はm0やm1と関係ない!) よって、 1/2+ε(n) = Pr[Aが成功する | AskR] Pr[AskR] + Pr[Aが成功する | ¬AskR] Pr[¬AskR] ≦ Pr[AskR] + 1/2 ≦ Pr[Bが成功する] + 1/2 よって、 ε(n) ≦ Pr[Bが成功する]. ところが、仮定よりfiは一方向置換なので右辺はネグリジブル、よってε(n)もネグリジブルである。 Q.E.D. 上へ
https://w.atwiki.jp/hanzawapokemon/pages/4.html
半沢理論とは 主に倍返しを使って闘う理論である カウンターミラーコートその2つの技を覚えたポケモン通称 バケモンだけを使ってパーティーを組み闘う この理論はポケモンの一種の完成された戦術である バケモンの強弱 役割論理の一軍二軍、汎用理論のつよいハケモンのようにこ の理論にも使えるバケモン使えないバケモンがいる また、エメ乱数必須な非常に入手何度が高いものもいる それらの分類はバケモン一覧のページで行う ープレイング 基本的な立ち回りは各自半沢理論の立ち回りのページを 参考にしてくれ
https://w.atwiki.jp/cryptospace/pages/28.html
定理(CS暗号)の証明のアイデア 攻撃者Aが構成(CS暗号)の公開鍵と暗号文 pk = (g1, g2, h=g1xg2y, c=g1a g2b, d=g1a g2b ), C* = (g1r*, g2r*, hr*m*=(g1r*)x(g2r*)ym*, (cdα*)r*=(g1a+α*a g2b+α*b )r*) を入手したとする。 まず、DDH仮定を用いて、(g1, g2, g1r*, g2r*)を(g1, g2,g3, g4)に置き換えると、 pk = (g1, g2, g1xg2y, g1a g2b, g1a g2b ), C* = (g3, g4, g3xg4ym*, g3a+α*a g4b+α*b ). x,yはランダムなので、(g1xg2y, g3xg4y)をランダムな2要素(γ,δ)に置き換えてよい: pk = (g1, g2, γ, g1a g2b, g1a g2b ), C* = (g3, g4, δm*, g3a+α*a g4b+α*b ) δはm*にしか掛っていないので、m*は完全に隠される。 攻撃者Aが構成(CS暗号)の妥当な暗号文 c = (u,v,w,e) を生成したとすると、 α=H(u,v,w)に対し、e = ua+αa vb+αb を満たさなければならない。 これを成り立たせるには、αはハッシュ値でその値を自由にコントロールすることができないので、Aはu, vを u = g1s, v = g2s という形で生成しなければならず、このとき、Aが復号オラクルから受け取る返答は、 uxvy = (g1x g2y)s = hs となり、x, y に関する新しい情報は全く含まない。よって、m*は隠されたまま。 定理(CS暗号)の証明 構成(CS暗号)に対する任意のCCA攻撃者をAとする。Aを用いて判定DH仮定における識別者Dを構成する: 識別者D par=(q,g1), (g2,g3,g4)を入力として、 pkを入力としてAを起動する。ただし、 x, y, a, b, a , b ← Zq h = g1x g2y, c = g1a g2b, d = g1a g2b pk = (g1,g2,h,c,d,H), sk = (x,y,a,b,a ,b ). Aからチャレンジクエリ(m0,m1)を受け取ったら、 0または1をランダムに選択し、βとする。 C* = (u*=g3, v*=g4, w*=g3xg4ymβ, e*=g3a+α*a g4b+α*b )を応答する。(α* = H(u*, v*, w* )) Aから復号オラクルに対する問い合わせを受け取ったら、skを用いて復号し、結果を応答する。 Aが出力β で終了したら、β =? β の1ビットを出力とする。 識別者Dの解析: 入力(g1, g2, g3, g4)がDH組であるとき あるランダムなrについて、g3 = g1r, g4 = g2r. このとき、 g3xg4ymβ = (g1xg2y)r mβ = hr mβ, g3a+α*a g4b+α*b = (g1ag2b (g1a g2b )α*)r = (cdα*)r. よって、C* = Enc(pk, mβ; r). すなわち、DのAに対するシミュレーションは完ぺき。 以上より、Pr[D = 1 | DH] = Pr[Aが成功]. 入力(g1, g2, g3, g4)はランダムな組であるとする。 Aが復号クエリをまったく用いなかったとすると、Aが受け取る秘密鍵x,yに関する情報は、公開鍵h経由の、 h=g1xg2y と w*=g3xg4ymβのみ。 x,yは独立にそれぞれランダムなので、hとg3xg4yも独立にそれぞれランダム。 よって、このときg3xg4yはmβを完全に隠し、Pr[Aが成功] = 1/2. あとは、Aの復号クエリがx,yについて追加情報を与えないことを示せばよい。 復号クエリ(u,v,w,e)がbadであるとは、『(g1,g2,u,v)がDH組でない』ことと定義する。 (badでない復号クエリをgoodと呼ぶ。) 主張1 goodな復号クエリに対する応答は、Aに秘密鍵x,y,a,b,a ,b に関する追加情報を全く漏らさない。 証明 (u=g1s,v=g2s,w,e)をgoodな復号クエリとする。 このとき、Aが返答として受け取る情報は高々m = w/(uxvy). ここで、uxvy = (g1x g2y)s = hs. これは、秘密鍵x,y,a,b,a ,b に関する追加情報を全く与えない。(x,yを知らなくてもsを知っていたら生成できるから。)Q.E.D. 主張2 Aがbadで(ありながら復号アルゴリズムの検証式をパスする)妥当な復号クエリを発する確率はネグリジブルηである。 証明 Aがbadで妥当な復号クエリC=(u=g1r1,v=g2r2,w,e)を初めて発したとする。 (u,v,w) = (u*,v*,w*)のとき: Cの妥当性より、α=α*となり、C=C*となる。これはゲームのルールとして禁止されている。 (u,v,w)≠(u*,v*,w*) かつ H(u,v,w) = H(u*,v*,w*)のとき: Hの衝突が得られ、Hの衝突困難性に反する。O.K. H(u,v,w)≠H(u*,v*,w*)のとき: α = H(u,v,w), α* = H(u*,v*,w*), γ = logg1(g2)とする。 Aが復号クエリCを発する前に知っていた、秘密鍵a,b,a ,b についての情報は、公開鍵とチャレンジ暗号文を経由して、以下の高々3次元分である logg1(c) = a + bγ, logg1(d) = a + b γ, logg1(e*) = (a+α*a )r1* + (b+α*b )r2*γ ( r1* = logg1(g3), r2* = logg2(g4) ) 一方、復号クエリCの妥当性より、 logg1(e) = (a+αa )r1 + (b+αb )r2γ. 以上4次元分の情報はa,b,a ,b を一意的に決定する(r1*≠r2*,α≠α*,r1≠r2)。 すなわち、Aがbadで妥当な復号クエリを発するとすると、Aは高々3次元分の情報で、秘密鍵a,b,a ,b を一意に数学的に特定することとなる。 よって、Pr[Aがbadで妥当な復号クエリを発する] ≦ 1/q. Q.E.D. 主張1、主張2より、 Pr[D=1 | Random] = 1/2 + η. よって、Dの識別利得は | Pr[Aが成功] - (1/2 + η) | ≧ (Aの識別利得) - η. 判定DDH仮定より、Dの識別利得はネグリジブル。よって、Aの識別利得もネグリジブルである。 Q.E.D. 上へ
https://w.atwiki.jp/cryptospace/pages/54.html
定理(XCR)の証明 XCR署名に対する任意のPPT偽造者をFとする。 Fを用いて計算DH問題を解くPPTアルゴリズムCを構成する。 アルゴリズムC U=gu, V=gvを入力として、 B = V, X0 = U B, X0を入力としてFを起動する: FがオラクルGへ問い合わせ(Y,m)を発したら、 G[Y,m]が未定義なら、e ← {0,1}l, G[Y,m]=e G[Y,m]を返答する。 Fが署名オラクルBへ問い合わせmを発したら、 s ← Zq, e ← {0,1}l, Y = gs / Be G[Y,m] = e とする。(ただし、G[Y,m]がすでに定義されていたらアボート。) Yを返答し、FよりXを受け取って、σ=Xs を返す。 (※ (Y BG(Y,m))x = (Y Be)x = (gs)x = σ ) Fの出力を(Y0, m0, σ0)とする。 (※ (Y0, m0)は、署名オラクルのシミュレーション時にCによって用いられておらず、かつFによりオラクルGへすでに問い合わされているとしてよい。) B, X0を入力として、Fをもう一度起動する、ただし、 Fが(Y0, m0)をオラクルGへ問い合わせるまでは、先のFの実行と同一のランダムテープを用いて全く同様に処理する。 Fが(Y0, m0)をはじめてオラクルGへ問い合わせたら、以降、新しいランダムテープに切り替えて、 e ← {0,1}l, G[Y0,m0] = e を返答する。 後は新しいランダムテープを用いて先のFの実行と全く同様に処理する。 Fの出力を(Y0, m0, σ0 )とする。 e ≠ e ならば、(σ0 / σ0 )1/(e-e ) を出力して停止する。 [アルゴリズムCの解析] Fがネグリジブルでない成功確率をもつならば、2回とも偽造に成功する確率はネグリジブルでない。このとき、 (Y0 Be)u = σ0 (Y0 Be )u = σ0 これより、 Vu = Bu = (σ0 / σ0 )1/(e-e ). Q.E.F. 上へ
https://w.atwiki.jp/cryptospace/pages/24.html
定理(CCAinRO)の証明のアイデア 攻撃者Aが構成(CCAinRO)の暗号文 c* = (fi(r*), G(r*)+m*, H(r*,m*)) を入手しても、 fi が一方向置換なので、r* はわからない。 r*が分からないと、G(r*)はm*と同じサイズの(r*とは独立な)ランダム文字列。 よって、G(r*)+m* は m* を完全に隠す。 攻撃者Aが構成(CCAinRO)の妥当な暗号文 c = (a,w,b) を生成したとすると、 a は a = fi(r) となる r を数学的に決定する。 このrについて、等式 b = H(r, w-G(r)) が成り立っていなければならない。 よって、Aはrを知っているはずである。 よって、Aはcの復号文 m = w - G(r) を知っているはずである。 Aにとって復号オラクルは意味がない。 定理(CCAinRO)の証明 構成(CCAinRO)に対する任意のCCA攻撃者をAとする。Aの成功確率を 1/2 + ε(n) とおく(識別利得はε(n))。 Aを用いてトラップドア置換 fi のインバーターBを構成する: インバーターB a*(=fi(r*))を入力として、インデックスiを補助入力として、 pk=(i,G,H)を入力としてAを起動する。 AからGオラクルに対する問い合わせrを受け取ったら、 a* = f(r)ならば、rを出力して終了。 G[r]が未定義ならば、g ← {0,1}l, G[r] = g g = G[r]を返答する。 AからHオラクルに対する問い合わせ(r,m)を受け取ったら、 a* = f(r)ならば、rを出力して終了。 H[r,m]が未定義ならば、b ← {0,1}n, H[r,m] = b b = H[r,m]を返答する。 Aから復号オラクルに対する問い合わせc=(a,w,b)を受け取ったら、 b=H[r,m] かつ fi(r)=a かつ w=G(r)+m となる r,m をH記憶から検索する。 みつかれば m を、みからなければ⊥を返答する。 Aからチャレンジクエリ(m0,m1)を受け取ったら、 w* ← {0,1}l, b* ← {0,1}n, c* = (a*, w*, b*) /* このとき、G,Hに対し、b* = H(r*, w*+G(r*)) というimplicitな関係を定義していることに注意。*/ c*を返答する。 Aが終了したら、終了する。 [攻撃者Bの解析] AskR: 『AがGオラクルまたはHオラクルにr*をたずねる。』 Fake: 『Aが復号オラクルにc=(a,w,b)を問い合わせ、a = fi(r), b = H(r, w+G(r))が成り立っているのに、 (つまり、問い合わせ c は妥当な暗号文であるのに、) AはHオラクルに(r, w+G(r))を問い合わせていない。』 Fakeが起きない限り、復号オラクルのシミュレーションは正しい。 シミュレートされた復号オラクルの返答は復号アルゴリズムの返答に等しい。 さらに、Fakeが起きない限り、 AskRがおきないうちは、BのAに対するシミュレーションは完全である。(b*がテキトウであることがバレナイ) AskRがおきれば、Bは直ちに成功する。 AskRが最後までおきなかったら、Aの成功確率は高々1/2である。 条件¬FakeのもとでのAの成功確率を 1/2 + ε (n) とする。 条件¬Fakeのもとでの確率をPrNoFake[・]とかくことにすると、 1/2+ε (n) = PrNoFake[Aが成功する | AskR] PrNoFake[AskR] + PrNoFake[Aが成功する | ¬AskR] PrNoFake[¬AskR] ≦ PrNoFake[AskR] + 1/2 = Pr[Bが成功する] + 1/2. よって、仮定よりfiは一方向置換なので、ε (n)はネグリジブルである。 さらに、 1/2 +ε (n) = Pr[Aが成功する | ¬Fake] ≧ Pr[Aが成功する] - Pr[Fake] = 1/2 + ε(n) - Pr[Fake] より ε(n) ≦ ε (n) + Pr[Fake] . よって、後は以下の主張を示せば、定理の証明は完了。 主張 Pr[Fake]はネグリジブルである。 証明 復号クエリc=(a,w,b)に対して、AはHオラクルに(r, w+G(r))を問い合わせていないのに、 a = fi(r), b = H(r, w+G(r)) が成り立っているとする。 r = r* かつ w+G(r) = w*+G(r*)のとき (a,w,b) = (a*,w*,b*)となるので、ゲームのルールより、このケースは起こらない(としてよい)。 r ≠r* または w+G(r) ≠ w*+G(r*)のとき: H(r, w+G(r))は、チャレンジ暗号文c*に含まれるb*=H(r*, w*+G(r*))とは独立な確率変数。 仮定より、H(r,w+G(r))はAにHオラクル経由でも入力されていない。 以上より、AのviewはH(r,w+G(r))と独立。したがって、Aの出力したbもH(r,w+G(r))と独立。 よって、b = H(r, w+G(r)) となる確率はネグリジブルである。 Q.E.D. Q.E.D. 上へ