Microsoft PowerPoint ppt

Similar documents
Microsoft PowerPoint ppt

Microsoft PowerPoint - info09b.ppt

Microsoft PowerPoint ppt

Microsoft PowerPoint - prog03.ppt

ポインタ変数

Microsoft Word - no103.docx

PowerPoint プレゼンテーション

ポインタ変数

Microsoft PowerPoint ppt

ポインタ変数

* ライブラリ関数 islower(),toupper() を使ったプログラム 1 /* 2 Program : trupper.c 3 Student-ID : K 4 Author : TOUME, Kouta 5 Comments : Used Library function i


ポインタ変数

Microsoft PowerPoint - w5.pptx

文字列 2 前回の授業ではコンピュータ内部での文字の取り扱い 文字型の変数 文字型変数への代入方法などを学習した 今回は 前回に引き続き 文字処理を学習する 内容は 標準入出力 ( キーボード ディスプレイ ) での文字処理 文字のファイル処理 文字を取り扱うライブラリ関数である 標準入出力 Lin

基礎プログラミング2015

プログラミング実習I

PowerPoint プレゼンテーション

C プログラミング 1( 再 ) 第 4 回 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 1

PowerPoint プレゼンテーション

Microsoft PowerPoint - prog04.ppt

講習No.9

3. ワークシート 入力データの検証 の完成 ワークシート 入力データの検証 には 入力データの検証表 があります セル範囲は セル A2 からセル G22 までで 2 行目が項目見出しとなっており A 列が入力データ B 列が点検値無し C 列が入力された点検値 D 列が分類コード E 列が製品コ

ポインタ変数

Taro-ファイル処理(公開版).jtd

02: 変数と標準入出力

PowerPoint プレゼンテーション

1. 入力した文字列を得る 1.1. 関数 scanf() を使う まずは関数 scanf() を使ったプログラムを作ってみましょう 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: #include<stdio.h> #define SIZE 128 main(

02: 変数と標準入出力

Microsoft PowerPoint pptx

コマンドラインから受け取った文字列の大文字と小文字を変換するプログラムを作成せよ 入力は 1 バイトの表示文字とし アルファベット文字以外は変換しない 1. #include <stdio.h> 2. #include <ctype.h> /*troupper,islower,isupper,tol

02: 変数と標準入出力

第1回 プログラミング演習3 センサーアプリケーション

JavaプログラミングⅠ

プログラミング基礎

2 ASCII コードと文字型変数 2-1 ASCII コード 文字 コードコードコードコードコードコードコードコード文字文字文字文字文字文字文字 10 進 10 進 10 進 10 進 10 進 10 進 10 進 10 進 0 16 SP P 80 ` 96 p 112

画像ファイルを扱う これまでに学んだ条件分岐, 繰り返し, 配列, ファイル入出力を使って, 画像を扱うプログラムにチャレンジしてみよう

Microsoft PowerPoint - program.ppt [互換モード]

Microsoft PowerPoint - 5Chap15.ppt

C言語講座 ~ファイル入出力編~

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

PowerPoint プレゼンテーション

「不動産リスト」を解く

PowerPoint プレゼンテーション

Prog1_6th

< F2D837C E95CF CF68A4A94C5816A2E6A>

計算機プログラミング

メソッドのまとめ

ファイル入出力

授業のあとで 情報処理工学 : 第 3 回 10 進数を 16 進数に変換する方法と 16 進数を 10 進数に変換する方法は 標準的な方法でも良いですか? 履修申告は済みましたか? 割り算 方法 ) 54 余り 6 16 ) 3 余り 3 ) 0 第 4 回へ 201

Microsoft PowerPoint - 11.pptx

PowerPoint Presentation

program7app.ppt

Java講座

ファイル入出力

Prog1_2nd

情報処理演習 B8クラス

データ構造

Prog1_10th

プログラミング基礎

プログラミング方法論 II 第 14,15 回 ( 担当 : 鈴木伸夫 ) 問題 17. x 座標と y 座標をメンバに持つ構造体 Point を作成せよ 但し座標 は double 型とする typedef struct{ (a) x; (b) y; } Point; 問題 18. 問題 17 の

memo

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

ソフトウェア基礎 Ⅰ Report#2 提出日 : 2009 年 8 月 11 日 所属 : 工学部情報工学科 学籍番号 : K 氏名 : 當銘孔太

初歩のC言語ターミナル_2014_May.pages

2011 年度春学期基礎ゼミナール ( コンピューティングクラス ) A コース 1 / 18 コンピュータリテラシー A コース 第 10 講 [ 全 15 講 ] 2011 年度春学期 基礎ゼミナール ( コンピューティングクラス ) 同志社大学経済学部 DIGITAL TEXT コンピュータリ

講習No.8

kiso2-03.key

C 言語講座 Vol 年 5 月 29 日 CISC

Microsoft Word - no15.docx

1. 関数 scanf() 関数 printf() は変数の値を画面に表示しますが それに対し関数 scanf() はキーボードで入力した値を変数に代入します この関数を活用することで対話式 ( ユーザーの操作に応じて処理を行う ) プログラムを作ることができるようになります 整数の和

第2回講義:まとめ

Microsoft Word - 3new.doc

練習&演習問題

プログラミングA

計算機プログラミング

Report#2.docx

PowerPoint Presentation

スライド 1

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

5-2. 顧客情報をエクスポートする 顧客管理へのアクセス手順 メールディーラーで管理する顧客情報に関する設定を行います 1. 画面右上の 管理設定 をクリックする 2. 管理設定 をクリックする 3. ( タブ ) 顧客管理 をクリックする 2

Microsoft PowerPoint - 説明3_if文switch文(C_guide3)【2015新教材対応確認済み】.pptx

文字コード略歴 よこやままさふみ社内勉強会 2012/05/18 文字コード略歴 Powered by Rabbit 2.0.6

Microsoft Word - Training10_プリプロセッサ.docx

PowerPoint プレゼンテーション

問 2 ( 型変換 ) 次のプログラムを実行しても正しい結果が得られない 何が間違いかを指摘し 正しく修正せよ ただし int サイズが 2 バイト long サイズが 4 バイトの処理系での演算を仮定する #include <stdio.h> int main( void ) { int a =

AQUOS ケータイ ユーザーガイド Chapter6

C 言語第 3 回 2 a と b? 関係演算子 a と b の関係 関係演算子 等しい a==b 等しくない a!=b より大きい a>b 以上 a>=b より小さい a<b 以下 a<=b 状態 真偽 値 条件が満たされた場合 TRUE( 真 ) 1(0 以外 ) 条件が満たされなかった場合 F

講習No.12

解答編 第 9 章文字データの取り扱い 演習問題 9.1 文法事項 1 ) コンピュータにおける 文字データの取り扱いについて説明しなさい コンピュータでは 文字に整数の番号を割り当てて ( コード化して ) 文字コードとして扱います 実際に用いられる文字コードとして ASCII コード EUC コ

付録 CSV エントリフォーマット 2( 記事 6 行 ) 最大入力文字数 1 A 荷受人コート ( お届け先コート ) 1 英数字 15 is-2 で登録されているお届け先コード 2 B 電話番号 1 3 C 住所 1 英数カナ 20 4 D 住所 2 英数カナ 20 5 E 住所 3

Report#2.docx

データ構造

新たな基礎年金制度の構築に向けて

C 言語の式と文 C 言語の文 ( 関数の呼び出し ) printf("hello, n"); 式 a a+4 a++ a = 7 関数名関数の引数セミコロン 3 < a "hello" printf("hello") 関数の引数は () で囲み, 中に式を書く. 文 ( 式文 ) は

Microsoft PowerPoint - 説柔5_間勊+C_guide5ï¼›2015ã•’2015æŒ°æŁŽæš’å¯¾å¿œç¢ºèª“æ¸‹ã†¿ã•‚.pptx

Prog1_6th

本サンプル問題の著作権は日本商工会議所に帰属します また 本サンプル問題の無断転載 無断営利利用を厳禁します 本サンプル問題の内容や解答等に関するお問 い合わせは 受け付けておりませんので ご了承ください 日商プログラミング検定 STANDARD(C 言語 ) サンプル問題 知識科目 第 1 問 (

はじめに 本書では 電子証明書ダウンロードツール ( セキュアタイプ ) の 電子証明書の取得 ボタン ( 電子証明書のダウンロード から 受領書 ( 電子データ ) の送信 ) の操作方法についてご説明します 電子証明書の取得 ボタン以外のオプションボタン ( 電子証明書の表示 電子証明書の取込

ガイダンス

Transcription:

情報セキュリティ第 3 回 大久保誠也 静岡県立大学経営情報学部 はじめに 情報セキュリティの技術 暗号 古典的な暗号 演習 : シーザー暗号 演習の解説 今日の資料は http://flute.u-shizuoka-ken.ac.jp/~s-okubo/ の 授業関係 から取ることができます 2/39 近頃のニュース等 LINE Amazon 楽天 で検索 偽セキュリティソフト で検索 情報セキュリティの技術 3/39 4/39 情報理論と暗号 この授業で出てくる内容 情報理論の応用 情報圧縮 画像や音楽のデジタルデータを圧縮.... が 個,が2 個 誤り訂正 通信路上で誤りが起きたとき 検出 訂正 ---- 通信 間違いを検出 訂正 暗号今回の話 5/39 基礎的な部分 2 進数と計算 ( 他の科目でやっているはず ) 6 進数 一方向関数とハッシュ値 疑似乱数 応用的な部分 暗号技術 認証技術 実際の通信で何が行われているか 6/39

進数とは " ブロック " 個で ( 違う大きさの ) " ブロック " となる 45 の意味することは 4 5 2 進数とは " ブロック "2 個で ( 違う大きさの ) " ブロック " となる 2 の意味することは 2 個のブロックが 個のブロックが集まったもの が4つ 個集まったもの がつ 2 4 個のブロック が 5 つ 5 7/39 2 個のブロックが 2 個集まったブロックが 2 個集まったブロック がつ 2 3 2 個のブロックが 2 個集まったブロック が つ 2 2 個のブロック 個のブロックががつ 2 個集まった 2 ブロック がつ 2 8/39 6 進数とは " ブロック "6 個で ( 違う大きさの ) " ブロック " となる ~9とA~Fまでの6 個の記号で表現する 6 進数 進数 6 進数 進数 6 進数 進数 5 5 A 6 6 B 2 2 7 7 2 C 3 3 8 8 3 D 4 4 9 9 4 E 5 F 9/39 6 進数への変換 6 進数から 進数 : 2 進数から 進数と同様 進数から6 進数 : 2 進数から 進数と同様 6 進数から2 進数 : 右の表のようになる 6 進数 2 進数から6 進数 : D 4 桁毎に区切って E 右の表 F 2 進数 6 進数 2 3 4 5 6 7 8 9 A B C 2 進数 /39 排他的論理和 2つの値のうち 片方のみがのときに 両方がもしくはのときには となる計算 XOR EORともいう x 記号は y x y /39 暗号技術 2/39 2

電子メールは非常に便利 からメールが来た 電子メールは危険な場合も () からメールが来た にメールを 早い 安い 簡単 情報化社会に欠かせないツールに 3/39 盗聴 覗き見してやろう Eve 盗聴 A:> 文章がそのまま流れるので 悪い人に情報が漏れる! 4/39 電子メールは危険な場合も (2) なりすまし の名を語ってメールをだ! Eve A:> からメールが来た 他人を語ってメールを投げられる! 本当に本人から来たのか? 5/39 電子メールの危険な部分 - まとめ 盗聴の危険性 文章内容がそのままネット上を流れる! 間に悪意のある人がいると 情報が覗かれる! なりすましの危険性 他人になりすますことが容易! 本当に その人からメールが来たのか 確認できない! 暗号の技術で すべて解決! 6/39 暗号の目的 平文 ( 送りたい文 ) を暗号化し 暗号文にする この際 鍵を使用する 平文 This is a pen. (6 進数表記 ) 54686973269732627656E2EA 鍵 test 暗号文 ;zb j 暗号化されていると 元の文章がわからない (6 進数表記 ) 883BCA7AA746D3DCADCE425C6AAC 7/39 対策 : 暗号化 あ! 送り間違えた! 極秘 暗号化することで機密性を保てる 暗号化されていて よくわからんなぁ 極秘 暗号化 : 第三者が見てもわからないように変換すること 8/39 3

暗号の歴史 () シーザー暗号文字ずらすことで暗号化 復号 ex 暗号化 :DOG GRJ ( 各文字を 3 文字分後にずらす ) 復号 :GRJ DOG ( 各文字を 3 文字分前にずらす ) 単純換字暗号文字を置き換える表に従って暗号化 復号 ex 表 :a v, b d, c a 暗号化 :abc vda ( テーブルの対応に従って各文字を置き換え ) 復号 :vda abc 暗号の歴史 (2) 多表式換字暗号文字を置き換える表を複数使用する 転置式暗号文字の並ぶ順番を入れ替える ex: 文字目を3 文字目に 2 文字目を 文字目に 3 文字目を4 文字目に 4 文字目を2 文字目に置く 暗号化 :cats asct 復号 :asct cats スーパー暗号これらの方式を組み合わせた物 現代暗号へ ( テーブルの対応に従って各文字を置き換え ) 9/39 2/39 演習 : シーザー暗号 シーザー暗号で行いたいこと シーザー暗号文字ずらすことで暗号化 復号 ex 暗号化 :DOG GRJ ( 各文字を 3 文字分後にずらす ) 復号 :GRJ DOG ( 各文字を 3 文字分前にずらす ) 文字を 3 文字ずらす処理を, MS-Excel で行えれば良い 2/39 22/39 文字と文字コード 各文字は文字コードというコードにより 計算機内部では扱われている さまざまなコードの割り当て方が存在している SHIFT_JIS :94 4c ISO-222-JP(JIS) :47 2d EUC-JP :c7 ad UTF-8 :e7 8c ab 猫 という文字は このように表現 23/39 出てくる Excel の関数 CODE(x) ( 文字列 x の先頭文字の ) 文字コードを返す CHAR(x) コード番号 x に対応した文字を返す MOD(x, y) x を y で除算した余りを返す 24/39 4

演習 : シーザー暗号 () 演習 : シーザー暗号 () 何文字分ずらすか 3 a 3 a 平文 ( 暗号化したい文字 ) =CHAR(B5) 25/39 =CHAR(B5) 26/39 演習 : シーザー暗号 () B3にある文字の文字コードを求める 3 aは97 eは bは98 ac は 99 dは zは22 演習 : シーザー暗号 () B2の文字数ずらした文字を求める B4-97 : B4の文字がaから何文字あとかを計算 B4-97+3: 3 文字ずらす MOD( 3 略, 26): zの次はaにする必要があるので 26のあまりを求める a MOD( 略 )+97: a の文字コード (97) を足す =CHAR(B5) 27/39 =CHAR(B5) 28/39 演習 : シーザー暗号 () 演習 : シーザー暗号 (2) 3 a 文字コードを =CHAR(B5) 文字にする 29/39 セルの内容を右のセルにもコピー 3/39 5

演習 : シーザー暗号 (3) 演習 : シーザー暗号 (4) 文字を 文字ずつ入力してみよう 値を変えてみましょう 3 文字ずれた暗号文が生成されたか確認しよう 3/39 さっきとは異なった暗号文が生成されたか確認しよう 32/39 Visual Studio で ( 前半 ) Visual Studio で ( 後半 ) その/2: #include<stdio.h> 2 2 3 3 int main(){ 4 4 int i,key; 5 5 char plain_text[2],cipher_text[2]; 6 6 7 7 printf(" 文字列してください n"); 8 8 scanf("%s",plain_text); 9 9 printf(" ずらす文字数してください n"); scanf("%d",&key); 33/39 その2/2: for(i=;i<strlen(plain_text);i++){ 2 2 cipher_text[i]='a'+(plain_text[i]-'a'+key)%26; 3 3 printf("%c->%c n",plain_txt[i],cipher_txt[i]); 4 4 } 5 5 cipher_text[i]=' '; 6 6 7 7 printf(" 暗号文は %s %s です n",cipher_text); 8 8 } 34/39 C 言語における文字列 () C 言語では 文字列は配列として扱うことができる 例えば 文字列 "test" が サイズの文字型の配列 stに保存されているなら st[] st[] st[2] st[3] st[4] st[5] st[6] st[7] st[8] st[9] t e s t 文字列の最後には NULL がつきます ( つきます というか つけます ) C 言語における文字列 (2) NULL がないと どうなるのか? st[] st[] st[2] st[3] st[4] st[5] st[6] st[7] st[8] st[9] t e s t g o m i この が違う文字だと st[] st[] st[2] st[3] st[4] st[5] st[6] st[7] st[8] st[9] t e s t - g o m i 計算機 計算機 文字列を扱うときには 文字列の末尾に NULL がついているかどうかが重要になる 文字列は test と 文字列は test-test と 36/39 6

解説 () 解説 (2) Excel のときと同様にして 3 文字ずらす その/2: #include<stdio.h> 2 平文と暗号文を 2 3 int main(){ 保存する配列を準備 3 4 4 int i,key; 5 5 char plain_text[2],cipher_text[2]; 6 6 7 7 printf(" 文字列してください n"); 8 8 scanf("%s",plain_text); 平文を読み込み 9 9 printf(" ずらす文字数してください n"); scanf("%d",&key); 37/39 その2/2: strlen() は 文字列の長さを返す関数 2 2 3 3 4 4 for(i=; i<strlen(plain_text); i++){ cipher_text[i]='a'+(plain_text[i]-'a'+key)%26; printf("%c->%c n",plain_txt[i],cipher_txt[i]); } 5 5 6 6 cipher_text[i]=' '; 暗号文の末尾にNULLを付加 7 7 printf(" 暗号文は %s %s です n",cipher_text); 8 8 } 38/39 課題の提出 今日の MS-Excel のファイルを経情グループウェアから提出する ファイル名は学籍番号 c.xls とすること ( 学籍番号は自分の学籍番号すること ) グループ名は H28_ 情報セキュリティ です ユーザー ID とパスワードは ユニバーサルパスポート等と同じです 39/39 7