1 00:00:00,000 --> 00:00:10,101 >> [音楽再生] 2 00:00:10,101 --> 00:00:12,700 >> ZAMYLA CHAN:レッツを実装 ヴィジュネル、もう少し 3 00:00:12,700 --> 00:00:14,710 シーザーも暗号を確保。 4 00:00:14,710 --> 00:00:19,670 プレーンテキストを使用して暗号化されている 代わりに整数の文字列。 5 00:00:19,670 --> 00:00:22,970 各アルファベットの文字で プレーンテキストがシフトされる 6 00:00:22,970 --> 00:00:24,450 キーワードで手紙。 7 00:00:24,450 --> 00:00:30,860 >> この例では、キーワードOHAI、O 14のシフトに対応し、Hをする 8 00:00:30,860 --> 00:00:36,910 7のシフト、の、シフト 0;とI 8のシフト。 9 00:00:36,910 --> 00:00:40,710 あなたが正常に実装している場合はあなたの シーザー暗号は、それはいいだろう 10 00:00:40,710 --> 00:00:43,510 あなたからのフレームワーク ヴィジュネルを実装することができます。 11 00:00:43,510 --> 00:00:47,140 あなたが見ることができるように、ヴィジュネルを実行している などの単一の文字で暗号 12 00:00:47,140 --> 00:00:51,830 キーワードは同じものです シーザー暗号として。 13 00:00:51,830 --> 00:00:55,170 >> 同じ手順はヴィジュネルに適用 彼らはシーザーで行ったように。 14 00:00:55,170 --> 00:01:01,240 キーワードは、2番目のコマンドラインです 引数ので、argv1でアクセス。 15 00:01:01,240 --> 00:01:05,400 その後、そのキーを確認する必要があります 言葉は確かにすべてのアルファベット順です。 16 00:01:05,400 --> 00:01:09,040 アルファがあるのはここです 便利になることができます。 17 00:01:09,040 --> 00:01:13,550 有効なキーワードがある場合は、取得 次いで、ユーザからの強度及び 18 00:01:13,550 --> 00:01:15,820 あなたは、暗号化する準備が整いました。 19 00:01:15,820 --> 00:01:20,840 >> ヴィジュネル暗号式が類似しています 今K除くシーザー式へ 20 00:01:20,840 --> 00:01:27,650 kを示す添字jは、となる キーワードのj番目の文字。 21 00:01:27,650 --> 00:01:29,640 このプロセスを通じてステップましょう。 22 00:01:29,640 --> 00:01:34,060 あなたがあなたにメッセージを送りたいと思ったと言う クラッシュ、私はあなたが好きですが、あなたはしないでください 23 00:01:34,060 --> 00:01:35,190 誰もが知りたい。 24 00:01:35,190 --> 00:01:39,800 だからとヴィジュネル暗号を使用 キーワードパンダ、なぜなら、よく、あなたも 25 00:01:39,800 --> 00:01:41,160 パンダが好きです。 26 00:01:41,160 --> 00:01:47,140 >> 最初の文字は、私は、シフトされ 私の後に、15文字のXを与えるP、によって、 27 00:01:47,140 --> 00:01:52,850 15 pは16日であるため、 アルファベットの文字。 28 00:01:52,850 --> 00:01:56,750 プレーンテキスト内の次の文字です スペース、シフトされないように。 29 00:01:56,750 --> 00:02:00,420 とキーワードのインデックス 変更されません。 30 00:02:00,420 --> 00:02:05,440 >> その後、プレーンテキスト内の次の文字です ずれないだけシフトリットル、 31 00:02:05,440 --> 00:02:10,930 プレーンテキスト全然手紙、なぜなら アルファベットの0番目の文字です。 32 00:02:10,930 --> 00:02:14,980 プロセスが進んで、続けて キーワード文字あり、毎回 33 00:02:14,980 --> 00:02:16,840 プレーンテキストの文字。 34 00:02:16,840 --> 00:02:21,850 キーワードの最後の文字がなったら 達し、キーワードはラップアラウンドと 35 00:02:21,850 --> 00:02:25,890 隣の平野に移行 Pでテキスト文字。 36 00:02:25,890 --> 00:02:27,170 X lvne能楽。 37 00:02:27,170 --> 00:02:29,180 どのロマンチック。 38 00:02:29,180 --> 00:02:33,120 >> だからキャラクターを与え、どのように変換するには その対応に 39 00:02:33,120 --> 00:02:34,590 シフト。暗号? 40 00:02:34,590 --> 00:02:37,870 ASCIIを比較してみてください シフト値。 41 00:02:37,870 --> 00:02:41,530 たぶん、あなたは関係を見つけることができます 文字とそれらの間に 42 00:02:41,530 --> 00:02:44,550 ASCII数学を使ってアルファベットのインデックス。 43 00:02:44,550 --> 00:02:48,850 1つの文字を追加または減算することができます 別のから取得する 44 00:02:48,850 --> 00:02:51,630 あなたの希望する結果? 45 00:02:51,630 --> 00:02:55,480 >> 覚えている大文字のためのシフト と小文字は同じです。 46 00:02:55,480 --> 00:02:59,510 だから、おそらくあなたは、2つを識別する必要があります 同様の式が表現する 47 00:02:59,510 --> 00:03:03,570 大文字のシフト、1 キーワード文字、および1 48 00:03:03,570 --> 00:03:06,510 小文字のいずれかの。 49 00:03:06,510 --> 00:03:10,630 >> 次に、そのキーワードの進歩を覚えている 文字だけであれば 50 00:03:10,630 --> 00:03:13,520 プレーンテキストは、文字であることを 平野の場合 51 00:03:13,520 --> 00:03:16,020 テキストは保存されなければならない。 52 00:03:16,020 --> 00:03:20,280 だから我々の式を見れば ヴィジュネルシフトは、2つのインデックスがあります 53 00:03:20,280 --> 00:03:22,880 変数iとj。 54 00:03:22,880 --> 00:03:26,795 一つは平野に位置を追跡 テキスト、および他の位置 55 00:03:26,795 --> 00:03:27,910 キーワードである。 56 00:03:27,910 --> 00:03:32,960 しかし、あなたのプレーンテキストははるかに長くなることがあります 場合のあなたのあなたのキーワードを、より 57 00:03:32,960 --> 00:03:38,290 キーワードインデックスでは、バックの周りにラップする必要がある キーワードの先頭に。 58 00:03:38,290 --> 00:03:39,870 >> どのようにこれを行うのですか? 59 00:03:39,870 --> 00:03:43,740 振り返ってみましょう モジュロ演算子。 60 00:03:43,740 --> 00:03:47,280 モジュロは残りはされ定義されています 2つの数値を分割する。 61 00:03:47,280 --> 00:03:50,680 しかし、実際の実用は何ですか モジュロを使うのか? 62 00:03:50,680 --> 00:03:54,340 >> さて、あなたはの大規模なグループを持っていると言う 人、あなたはに分割する必要があります 63 00:03:54,340 --> 00:03:55,100 三つのグループ。 64 00:03:55,100 --> 00:03:59,500 グループに人を分割する一つの方法 彼らはオフ数えることです。 65 00:03:59,500 --> 00:04:03,520 あなたの番号グループグループ 番号1,2、および3。 66 00:04:03,520 --> 00:04:08,510 最初の人は、1と言うだろう 次の2、次の3。 67 00:04:08,510 --> 00:04:12,860 1を言うだろう後人、 4基、そこではないので 68 00:04:12,860 --> 00:04:15,880 カウントはそこから上を開始します。 69 00:04:15,880 --> 00:04:18,209 >> 次のようなモジュロを使用することができます 同じことを行う。 70 00:04:18,209 --> 00:04:22,680 今回は、グループが意志 グループ0,1、および2である。 71 00:04:22,680 --> 00:04:26,960 最初の人、数 1モジュロ3は、1です。 72 00:04:26,960 --> 00:04:29,830 人2モジュロ3は2である。 73 00:04:29,830 --> 00:04:32,460 人3モジュロ3は0です。 74 00:04:32,460 --> 00:04:38,470 人4モジュロ3ので1を与え、 グループは、周りにラップすることができます。 75 00:04:38,470 --> 00:04:44,700 >> ですから、インデックスとモジュロを取る場合 最大サイズによって、そのインデックス、 76 00:04:44,700 --> 00:04:49,820 結果は以上になることはありません サイズと等しい、あなたという意味 77 00:04:49,820 --> 00:04:52,330 としてインデックスを増やすことができます あなたが好きなだけ。 78 00:04:52,330 --> 00:04:57,400 そして限り、あなたは、インデックスをモジュロとして いくつかの数は、番号を取得することはありません 79 00:04:57,400 --> 00:04:58,510 それよりも大きい。 80 00:04:58,510 --> 00:05:04,500 だから我々は10人の代わりに5があり、 それらはすべてのグループに割り当てられたになるだろう 81 00:05:04,500 --> 00:05:07,480 番号0、1、または2。 82 00:05:07,480 --> 00:05:11,680 >> 上のラッピングにこれを適用しよう キーワードを除き、代わりにソート 83 00:05:11,680 --> 00:05:16,050 したいグループ番号に人 キーワードのインデックスをあなたができるように 84 00:05:16,050 --> 00:05:19,080 のための右の文字を取得する 超えることなくシフト 85 00:05:19,080 --> 00:05:21,836 文字列の長さ。 86 00:05:21,836 --> 00:05:24,790 そのことを、あなたは持っている ヴィジュネル暗号。 87 00:05:24,790 --> 00:05:27,790 私の名前はZamylaであり、これはCS50です。 88 00:05:27,790 --> 00:05:32,566