3.1K Views
September 30, 24
スライド概要
2024年9月28日の「ゆるいハッキング大会 第111回」で発表したスライドです。
古典暗号の解説になります。
『シーザー暗号の解読法』や『暗号技術のすべて』で触れていない内容も多数あります。
30分で 古典暗号を 8割理解する 2024年9月28日 第111回 ゆるいハッキング大会 in TOKYO 発表者 IPUSIRON
自己紹介 【出身】 福島県相馬市 【経歴】 理学部数学科(代数学) ネトゲ廃人 情報学修士(暗号) 某ソフトウェア開発会社就職 訓練校 専業技術書作家+ミジンコ活動中 【執筆】 20年超、IT技術書の執筆を継続 『ハッキング・ラボのつくりかた 完全版』(2024年2月発売)、他30冊超あり 【趣味】 本を読むことと書くこと、ポイ活、優待生活&懸賞生活 【特技】 半額惣菜を見つけること IPUSIRON (イプシロン) @ipusiron 【出没地】ゆるハック、技術書典、X 【一言】 11月の技術書典17にオフライン参加します。 気軽にサークル「ミライ・ハッキング・ラボ」ブースへお立ち寄りください。 12月頃にITエンジニア本大賞の募集が始まるので、投票をよろしくお願いします。 2
IT技術書を執筆して、FIRE生活を実現するまで。 30冊以上の本を書いて見えてきた「自分らしい生き方」 https:// ndy-code.io/engineer-lab/ipusiron Security Akademeia https://akademeia.info/ fi 3
本発表で扱う4テーマ ①いま古典暗号を学ぶ意義 ②仕組みの本質「置換と転置」 ③暗号化の性質「正当性と秘匿性」 ④「最強の暗号」と「そこそこ安全な暗号」の つくりかた 4
30分で8割理解する • 興味がなくても、今から30分間だけ時間をください。 • 古典暗号の主要テーマをざっくり理解できる。 • ざっくりレベルでも、一生忘れないのでコスパはよいはず。 • まったく興味がなくても、現代暗号の理解につながる。 • すでに知識がある人は、違った観点で理解を整理できる。 5
目次 • なぜいまさら古典暗号なのか • 「置換と転置」で古典暗号を整理する • 「正当性と秘匿性」を直感的に理解する • 「最強の暗号」と「そこそこ安全な暗号」のつくりかた • 参考になる(かもしれない)古典暗号本の紹介 6
なぜいまさら古典暗号なのか 7
古典暗号に対するイメージ • いまさら感がすごい。 • 脆弱な暗号を学んで意味があるのか? 本発表で • 仕組みが複雑すぎる。 大部分が • 古典暗号の種類が多すぎて、わけわからん。 • やっても仕事にならない。食べていけない。 • そもそもどこで研究できる? 日本に研究者いる? • 漫画や小説に登場しても「ふーん」となるだけ。 解決する (はず) 8
今から古典暗号をやることのモチベーション • 技術的な発展の望みは薄いが、未解決暗号文はまだまだある。 • もし有名な未解決暗号文を解読したら、多大な名声が得られる。 • IT業界や暗号界隈を越えて。 • 雑学として知っておいて損はない。 • 人生で3回ぐらい役に立つ(かも)。 • 日本では不人気 or 年配が多い。 • 逆にいえば、ライバルが少ない。 • 海外の未解決暗号文の解読は、言語的なハードルにより不利。 • 逆に、日本のに未解決暗号文なら日本人が有利。 9
本発表で省略すること • 暗号解読の詳細 • 各種古典暗号の仕組み • 歴史的な興味深い暗号話 • 未解決暗号文の具体例 10
「置換と転置」で古典暗号を整理する 11
古典暗号 vs. 現代暗号 • 古典暗号 • 暗号化、ステガノグラフィー、コード • 利用場面:軍事・外交目的、小説、暗号ミステリー、簡易的なやり取り、庶民・囚人間でのやり取り • 鍵とともに、暗号化の種類も秘密。 • 場合によっては、平文の言語、本当に暗号文かどうかさえ不明。 • 現代暗号 • 暗号化+それ以外の暗号技術(署名、ハッシュ関数、認証、MAC、暗号プロトコルなど) • 利用場面:インターネット(一般には見えていないだけで暗号だらけ) • アルゴリズムは公開(ケルクホフスの6原則の2番目)。安全性は鍵のみに依存。 • 古典暗号と現代暗号の共通点=転置と置換 12
置換と転置 • 置換【ちかん】 • =文字を別の文字に置き換え • =換字 • =マッピング • 転置【てんち】 • =入れ替え • =シャッフル 13
古典暗号は置換式と転置式に大別される • 置換式(換字式) • 鍵は置換表(あるいはそれに相当するもの) • 転置式 • 鍵は入れ替え手順 • 置換と転置の組み合わせ • その他…コード、ステガノグラフィーなど 14
コード • コード=Code • よく使うワードやフレーズをコード語(変換後の文字列)に置き換える手法。 • コード語の例…5桁の数字列 • コードブック • 変換前と後の対応が載ったリスト集 • コードグループのリスト • 目的 コード語 attack…123 コードナンバー battle…hoge コードワード … ship …777 コードグループ • ①暗号化 • ②通信文の短縮化 15
ステガノグラフィー • あるデータに秘密のデータを埋め込む手法。隠しメッセージ。 • 例:普通の文(あるいは絵)に秘密のメッセージが含まれる。 • 視界に入っても読み取れないタイプ • 不可視インク、あぶり出しインク • マイクロドット • そもそもメッセージの存在を気づかせないタイプ • スキュタレー暗号を帯に巻く • 頭に通信文を入れ墨して、髪が生えてから、通信相手に赴く • 絵画にメッセージを隠す • 現代暗号にもステガノグラフィーは生き残っている。 16
雑多な古典暗号を整理する 換字式暗号 ➤ シフト暗号 たんいつ か え じ ➤ 単一換字式暗号 ➤ フリーメイソンの暗号 ➤ ダイグラフ置換暗号 転置式暗号 ➤ 逆順 ➤ スキュタレー暗号 ➤ 縦列転置暗号 ➤ 回転グリル暗号 ➤ プレイフェア暗号 ➤ 多換字式暗号、多表式暗号 ➤ ヴィジュネル暗号 ➤ ワンタイムパッド 17
転置とは 18
転置はシャッフル てんち • 転置(transposition) • =シャッフル=入れ替え • 暗号文は平文をシャッフル • 平文全体をランダムにシャッフルできるが現実的ではない。 • 便利な転置の規則を定義する。 • 通常は平文をブロックに分けてその中でシャッフルすることが多い。 • 鍵=転置のルール=シャッフルの仕方 • 位置を数字で表せば、「1番目と3番目の入れ替え」を(1,3)のように表現できる。 19
転置表の構成 ルールの表現1 ルールの表現2 移動先が わかれば十分。 転置の一例 転置表 20
現代暗号における転置 • ビットベースの現代暗号は相性がよい。 • ブロック暗号、ストリーム暗号、(暗号学的に安全な)ハッシュ関数 • 例:DESのサブ鍵生成アルゴリズム内の縮小転置の1つ • 出力のビット列は「入力よりサイズ減」かつ「転置(シャッフル)」 DESの縮小転置PC1(『暗号技術のすべて』P.140) 21
暗号文全体を見ると文字そのものは変化していない • 集合 • 「何が含まれているか」のみを考慮。 • 「いくつ含まれているか」や「どのような順序で含まれているか」は無視。 • 例:{a, b, b}={a, b} 平文 • 多重集合 • 要素がそれぞれ何個含まれるかの情報を含めて考える集合。順序は無視。 暗号文 • 記法はさまざま。 • 例:多重集合を明記した上で{a, b, b}、二重波括弧{{a, b, b}}、角括弧[a, b, b] • 「平文文字の多重集合」と「暗号文文字の多重集合」は同一 • 平文の多重集合…{{'h', 'e', 'l', 'l', 'o'}}={{'e', 'h', 'l', 'l', 'o'}} • 暗号文の多重集合…{{'l', 'e', 'o', 'l', 'h'}}={{'e', 'h', 'l', 'l', 'o'}} 22
文字頻度が変化しない 平文 暗号文 • 転置=文字の位置が変わるだけ 平文 暗号文 • 文字そのものは変化していない h 1 1 • 「暗号文文字の多重集合」と e 1 1 l 2 2 o 1 1 その他 0 0 「平文文字の多重集合」は同一 • 文字頻度に変化なし。 平文と暗号文の文字頻度 23
転置しても、分布が完全一致 • 頻度分布=文字頻度の分布 • 「暗号文の頻度分布」と 「平文の頻度分布」が同一 • (頻度による)ソート不要。 • 転置式暗号の識別にも使える。 "hello"の頻度分布(ChatGPT作成) 24
置換とは 25
置換とは文字の置き換え ちかん • 置換(substitution) • =文字(あるいは文字列)の置き換え 平文 かえじ • =換字 暗号文 • 「かんじ」だと「漢字」と同じ読みで紛らわしいので、 なら 暗号界隈では「かえじ」と読む慣わしがあるらしい。 • (通常は)重複しないように変換。そうしないと一意に復号できない。 • 換字式暗号 • 1文字(あるいは2連字)を別の文字・シンボルに置き換える。 置換表 • 置き換えルールは、さまざまな表現がある。 • 置換表が基本。 26
文字は変わるが頻度だけは変化しない • 置換=別の文字への置き換え • 暗号文において、各文字の頻度は変わる。 • 平文の'e'の頻度は1 • 暗号文の'e'の頻度は0 • 暗号文に珍しい文字'z'が出現。 • しかし、頻度そのものは変わらない。 • 平文では、頻度2が1つ、頻度1が3つ 平文 暗号文 b 0 2 e h i l o p z 1 1 0 2 1 0 0 0 0 0 1 0 0 1 1 0 その他 平文と暗号文の文字頻度 • 平文では、頻度2が1つ、頻度1が3つ 27
ソート後の分布が変わらない • 頻度の多重集合は一致。 • 平文の頻度の多重集合={{1, 1, 2, 1}}={{1, 1, 1, 2}} • 暗号文の頻度の多重集合={{2, 1, 1, 1}}={{1, 1, 1, 2}} • 多重集合は順序を無視するから。 • アルファベット順のグラフにおける、分布は変化する。 • 頻度順でソートすると、平文と暗号文で分布が同一。 • 例外あり…多表式(後述) • 暗号文文字の頻度から、置換表を推測できる。 • 平文が英文なら、英文の特徴が現れる。 • 暗号文での頻出文字は、英文の頻出文字と一致するはず。 28
平文"hello"の頻度分布【再掲】 暗号文"izbbp"の頻度分布 頻度(縦軸) でソート 頻度でソートした頻度分布 頻度でソートした頻度分布 29
「正当性と秘匿性」 を直感的に 理解する 30
暗号化=正当性+秘匿性 • まずは「暗号化=正当性+秘匿性」を覚える。 • 次に「正当性」と「秘匿性」を直感的に理解する。 • 正当性…暗号文を復号すると、元に戻ること • 秘匿性…暗号文から平文の情報が漏れないこと • ここではこの直感的な定義でよい。 • あとでもう少し詳しく説明する。 • 実のところ、秘匿性の理解は難しい。 31
議論しやすくするためにモデル化する その1 • アルゴリズムを登場させる。 • 「アルゴリズム=プログラムの関数」とイメージしてよい。 • 図示できるし、数式でも表現できる。 32
議論しやすくするためにモデル化する その2 • アルゴリズムにおいて注目する点 • ①入出力…ここを完全に把握すること。 • 出力は入力と内部状態から計算される。 • 確率的に動作できるアルゴリズムであれば、内部でサイコロを振れる能力あり。乱数が使える。 • ②内部処理…最初は無視してOK。 • ここは専門家が頭を悩ませて考えたところなので、難しいのは当たり前。 • ③各アルゴリズムの関係性 • お互い独立しない。 • アルゴリズムで注目すべき点は2つでOK 33
暗号化は3つのアルゴリズムの組み合わせ n m key c key KeyGen Enc Dec key c m' KeyGen:鍵生成アルゴリズム n:鍵の幅 m:平文(plain text) Enc:暗号化アルゴリズム key:鍵 c:暗号文(cipher text) Dec:復号アルゴリズム m':復号結果 34
送信者が受信者に暗号文を送るということ 平文 伝えたいメッセージ m key 鍵は何らかの方法で 事前に共有する S key R S:送信者(Sender) R:受信者(Receiver) c 暗号文 メッセージを隠す m' 復号結果 m'はmと一致して欲しい 35
送受信者が3アルゴリズムをどう使っているか n m key m S key key KeyGen key S:送信者(Sender) R R:受信者(Receiver) Enc c c key c Dec m' m' 36
敵が登場するシナリオを考える m key key S R S:送信者(Sender) R:受信者(Receiver) c A A:敵(Adversary) m' mやkeyを特定したい m? or key? mの一部分でもいいから知りたい 37
敵は鍵が特定できれば理想 • (c, m)から必ずしも c c A > A key 解読成功 m keyを計算できるとは限らない。 • keyとcがあれば、 完全なmに復号できる。 • 今後も同一の鍵が使われていれば、 以降の暗号文も復号できる。 38
正当性は暗号文から元の平文に戻ること m key • 同一の鍵を使えば、復号結果は元の平文と一致するというこ と。 • 正当性は次が成り立つこと • ① m'←Dec(c, key) Enc c key • ② m'=m • 以上を1つの数式にまとめると、 Dec • Dec(Enc(m, key), key)=m c m' 39
秘匿性は平文の情報が漏れないこと • 式で表現するのはちょっと難しい。 c • 例:シンプルにmを1ビットとする。 • c=0 or 1 A • Aはkeyを知らない。 • 適当にmを推測しても、1/2の確率で当たる。 • 敵は推測ゲームを何度もして、 • 1/2より優位な確率で当てられた 敵は解読に成功 m??? mの情報を得られなければ、 秘匿(安全)といえる • そうならない 敵は暗号解読に失敗 暗号は安全 40
平文全体の情報が特定されているのか、 それとも部分情報のみが特定されるのか • 部分情報の例 • 特定の文字、偶数・奇数(末尾の0・1)、… • 平文全体が漏れるのはやばい →部分情報を特定するほうが簡単。 →その簡単なことを実現されないということは、より安全。 • 「部分情報が特定されないという安全性」は 「平文全体が特定されないという安全性」より、強い安全性。 41
情報が漏れないだけで本当に十分か? →(現代暗号では)足りない。 • 識別可能性(distinguishability) • 異なる平文があり、それぞれを暗号化する。 • 2つの暗号文が与えられたときに、どちらの平文かを識別できれば、何らかの攻撃が成功し ている。 • その攻撃に対して安全=識別不可能 • 変造可能性(malleability) • 暗号文から、システムに有効な別の暗号を変造できたら、何らかの攻撃に成功している。 • その攻撃に対して安全=変造不可能(Non-Malleability)=頑強
暗号化の難しさは 正当性と秘匿性の両立が困難さ • 暗号化の難しさ=正当性と秘匿性の両立が困難 • 両立させるところが暗号設計者の腕の見せ所 • さらに、安全と効率の天秤も難しい 43
暗号化 vs. ドアロック その1 平文を送ると、正当性を満たすが、秘匿性は満たさない • mのまま送れば、常に正当性が成り立つ。 m A 誰でも通れる mがばれるので m 秘匿性がない 44
暗号化 vs. ドアロック その2 乱数を送ると、正当性を満たさないが、秘匿性は満たす • 乱数を送ると、常に秘匿性が成り立つ。 r rにmの情報はまったく含まれない。 壁 A 誰も通れない。 m??? mをヤマカンで当てるしかない。 45
暗号化 vs. ドアロック その3 鍵の有無で正当性と秘匿性を同時に満たす • 正しい鍵があれば復号できるが、なければ復号できない。 c ドア A 合鍵なしなら、通れない。 合鍵ありなら、通れる。 keyなしなら、mを特定できない。 m??? keyありなら、mに復号できる 46
古典暗号の敵=盗聴のみ 現代暗号の敵=いろいろな能力あり • 敵の強さ=やれること=能力の違い • 受動的攻撃 • 盗聴のみ • 能動的攻撃 • 平文に対応する暗号文を教えてもらえる(何度でも)=選択平文攻撃 • (解読ターゲットの暗号文以外の)暗号文の復号結果を教えてもらえ る(何度でも)=選択暗号文攻撃 47
攻撃モデル×解読モデルの組み合わせ分だけ、 安全性がある 48
「最強の暗号」と 「そこそこ安全な暗号」 のつくりかた 49
もっともシンプルな換字式暗号 シーザー暗号 • シフト暗号=n文字ずらし • 代表例 • シーザー暗号(ROT3)=3文字シフト シーザー暗号 『暗号技術のすべて』P.34より • ROT13=13文字シフト。2回暗号化すると元に戻る。 • 鍵=置換表そのもの • シフト暗号の鍵=シフトする数 • シフトという特性上、数をアルファベット1文字に置き換えられる • 「シフト暗号の鍵=1文字」 3文字ずらし hello KHOOR 50
シーザー暗号に対する総当たり攻撃 • 鍵=シフト数 • 理論的には0〜25 • 採用されるシフト数は1〜25 • 実質25パターンの鍵しかない • 総当たり攻撃に脆弱 51
シーザー暗号に対する頻度分析 • 単一換字式暗号=平文1文字が暗号文1文字に対応する • 置換では、文字が変わっても頻度が変わらない【前述】 • 「暗号文を頻度分析して得られた結果」と「英文の分布」を照らし合わ せる。 • 頻出文字(英文なら「ETAOIN」)やまれな文字に注目することで、 対応を特定できる可能性大。 • 得られる暗号文が長ければ長いほど、解読の可能性が高まる。 52
ヴィジュネル暗号 • 多換字式暗号の鍵=複数の置換表 • ヴィジュネル暗号…多換字式暗号の代表例 • 複数のシフト暗号の組み合わせ • 複数の置換表 • ヴィジュネル暗号の鍵 • =キーワード • =数文字から成る単語 ヴィジュネル表 53
単一換字式暗号 vs. 多換字式暗号 • シーザー暗号 • 鍵=シフト数3=鍵文字'D' • ヴィジュネル暗号 • 鍵=鍵キーワード"DOG"の場合 • 3つの置換表 • ヴィジュネル暗号はより安全 全文字に'D'の置換表 hello KHOOR 1文字目、4文字目は'D'の置換表 2文字目、5文字目は'O'の置換表 3文字目は'G'の置換表 hello KSROC • 単一換字式暗号…同じ平文文字は同じ暗号文文字になる。 • 多換字式暗号…そうとは限らない。 • 「キーワード長の特定 頻度分析」というのが解読の定石 54
ワンタイムパッド暗号 • ヴィジュネル暗号において「鍵キーワードの長さ>平文の長さ」 • 全文字が異なる鍵で暗号化される。 • 言い換えると、「平文が1文字、鍵が1文字」のシーザー暗号をn回(平文の文字数) 実行したことに相当する。 • ワンタイムパッド暗号=(ランダムな)鍵を使い捨てにする=毎回ランダムな鍵 • 上記の特殊なシーザー暗号もワンタイムパッド暗号に含まれる。 • バーナム暗号もワンタイムパッド暗号の一種。 • ビット列の暗号において、平文がn桁、鍵がランダムかつn桁以上とする暗号化方式。 55
ワンタイムパッド暗号は完全秘匿 • 完全秘匿 • 暗号文から平文の情報がまったく漏れていないこと。 • 実は「完全秘匿」と「(完全な)識別不可能」は等価。 • 完全秘匿なら、神様でも解読不能。 • 神の定義にもよるが… 56
古典暗号の解読シナリオ 理論と現実 • 暗号文c …mから作られる。 • 【理論シナリオ】 • mは平文空間Mから一様に選ばれる。 • 【現実シナリオ】 • mは平文空間Mから選ばれるが、言語的特徴を反映している。 • 英語なら、ETAOINがよく使われる。1文字単語なら、’a’ or ‘I’の2択。 • keyの運用ミスがありえる。 57
平文が1文字のシーザー暗号は完全秘匿 • 理論的なシナリオで考える。 • 任意のm, cに対して、Enc(m, key)=cを満たすkeyはただ1つ。 • 鍵候補は26文字(A-Z) • 敵が正しい平文をヤマカンで的中させる確率=1/26 • mがどんな文字(’A’や’C’)でも、敵の解読確率=1/26 • 任意のmに対して確率が一致する。 • →識別不可能生を満たす • →完全秘匿になる 58
平文が2文字、鍵が1文字のシーザー暗号は 完全秘匿でない c • 具体的に、m0=“aa”、m1=“ab”という2つの 平文を考える。 c=“YZ” (262パターン) A • 右イラスト参照 • 完全秘匿なら 1 • mを特定する確率= 2 26 1 • 【今回のケース】mを特定できる確率= 2 26 − 26 • Aが探索する範囲が狭くなっている。 m? m=“aa”, “bb”, …, “zz” (26パターン) はありえない。 59
平文が2文字、鍵が1文字のシーザー暗号は 完全秘匿でない <詳しい説明> c • 具体的に、m0=“aa”、m1=“ab”という2つの平文を考える。 c=“YZ” • key, cが決めたとき、 • Enc(m0, key)=cとなる確率は? A • Enc(“aa”, key)=cとなる確率=1/26 • 一方、Enc(m1, key)=cとなる確率は? • Enc(“ab”, key)=cとなる確率=0 • ところで、「任意のmに対して確率が一致するときに限って、識別不可 m? m=“aa”, “bb”, …, “zz” はありえない。 能」という定理がある。 • しかし、上記の2つの平文だけを考えても、確率が一致していない。 • よって、識別不可能ではない。 • →完全秘匿でない。 60
シーザー暗号、ヴィジュネル暗号、ワンタム パッド暗号 • 安全性 • シーザー暗号<<<ヴィジュネル暗号<<<ワンタムパッド暗号 • 効率性 • シーザー暗号>ヴィジュネル暗号>>>ワンタムパッド暗号 • 実用性 • ヴィジュネル暗号が優勢 61
参考になる (かもしれない) 古典暗号本の紹介 62
参考図書の探し方 • 古い暗号本 • 新しめの暗号本の序盤 • 小説、漫画、一般向けの読み物 • 古典暗号についての洋書 • 暗号解読に関する翻訳記事 • 論文 • 映画、ゲーム • 古典暗号愛好家が集まるポータルサイトやブログ 63
万人向けの暗号入門書 • 『暗号解読』(新潮社刊) • 世界的ベストセラー。 • サイモン・シンの本に ハズレなし。 64
日本の暗号本 • 日本独自の暗号に触れている。 • 新しい本は少ない。 • 「書く人がいない」or「売れない」から? • 『暗号の秘密』(星雲社刊) • 『暗号の数理 <改訂新版> 作り方と解読の 原理』(講談社刊) • ブルーバックスの1冊。 • 定番。 65
古い洋書 or その翻訳本 • 『暗号の天才』(新潮社刊)著 • フリードマンの話 66
定番小説 • 『ダ・ヴィンチ・コード』 ダン・ブラウン著(KADOKAWA刊) • 『クリプトノミコン』(早川書房刊) こがねむし • 『黄金虫』エドガー・アラン・ポー著 • 青空文庫にもある。 67
絶版になっているけど比較的入手しやすい本1 • 『暗号事典』(研究社刊) • 全704ページ • 辞書 68
絶版になっているけど比較的入手しやすい本2 • 『暗号解読事典』(創元社刊) • 全615ページ • 読み物 69
数学ばりばりの専門書 • 『基礎暗号学』(サイエンス社刊) • 全2巻 • 日本語の暗号解読本の貴重な1冊。 • 日本語(ローマ字)の平文の特 徴に触れている。 • 1989年の本 『基礎暗号学』 70
『基礎暗号学Ⅱ』P.376 71
新刊紹介『暗号解読 実践ガイド』 • マイナビ出版。10月末発売予定。500ページ弱。 • 原題『Codebreaking: A Practical Guide』 • Elonka Dunin、Klaus Schmeh著 • 原著はRobinson出版(英国の出版社)。No Starch Press版もある。 • 『銃・病原菌・鉄』で有名なジャレド・ダイアモンドの推薦あり。 • 古典暗号の解読の歴史。 • 戦争の暗号戦ではなく、主に未解決暗号文の解読の話。 72
ミジンコが関わった暗号本 『暗号技術のすべて』と『Pythonでいかにして暗号を破るか』の対応 73
【再掲】本発表で扱った4テーマ ①いま古典暗号を学ぶ意義 ②仕組みの本質「置換と転置」 ③暗号化の性質「正当性と秘匿性」 ④「最強の暗号」と「そこそこ安全な暗号」の つくりかた 74
まとめ • 古典暗号は面白い! • たまに役立つ! • 新刊を買ってください!【ダイレクト・マーケティング】 • いいね、Xフォロー、レビュー、拡散をお願いします! 75
ご清聴 ありがとうございました