演算法設計│通訊竊聽與加密

課程設計者:詹國輝 huihui.jan@gmail.com

教學對象 : 高中11、12年級學生

本專題引導學生思考如何保護傳輸中的資料不被竊聽,透過對學生自主發想之各種加密方式的分析,歸納出幾種加密手法類型。讓學生兩人一組,設計出自己的加密演算法,分別寫出加密及解密函數。並以 Arduino 序列通訊實測這組函數。讓學生體驗分解問題、樣式辨識等運算思維歷程。

演算法設計-通訊竊聽與加密

主要問題 (Essential questions)

  •  學生能將資訊轉換成中介符號,並予以還原
  •  學生能將原來明文傳輸的資訊,以加解密函數包裝

總體學習目標

  •  學生能經由觀察分析同儕的加密方法,找出其手法樣式,歸納分類
  •  學生能透過程序性規畫與程式編寫整合運算思維與資訊科技解決問題的能力。

運算思維

  •  問題拆解(Decomposition):解析一個安全通訊的過程
  •  尋找規則(Pattern Recognition):從各組分享的加密方式中尋找規則
  •  演算法設計(Algorithm Design):運用模組化程式設計完成一對加解密函數

學習表現

  •  資t-V-2能使用程式設計實現運算思維的解題方法。
  •  資t-V-3能應用運算思維評估解題方法的優劣。
  •  資r-V-3能利用程式語言表達運算。
  •  資r-V-4能發展演算法以解決運算問題。

學習內容(高中)

  • 資P-V-1陣列資料結構的程式設計實作
  • 資I-V-1程式設計專題實作

教學設計

首先以實際掛線竊聽 Arduino 序列通訊,展示通訊安全的脆弱性,引發學習動機。再引導學生思考,如何在通訊中保護資訊,並發想加密資料的方法。接著,透過分析同學們提出的加密方法,將其歸納為幾種類型。最後以2人為一組,設計自己的加密方法,並進行程式實作,撰寫自己的加解密函數。

教學設計 教學活動 活動內容
展示與操作 引發學生動機 以測試夾掛線,展示竊聽2組 Arduino 間的序列通訊
提問與討論 思考與討論如何保護通訊內容

請學生發想各種加密方式

樣式識別 加密手法歸納分類 透過對大家自主發想之各種加密方式的分析,歸納出幾種加密手法類型。
演算法發展 設計加密演算法 讓學生兩人一組,設計出自己的加密演算法,分別寫出加密及解密函數。
程式實作 程式撰寫 撰寫程式與測試、除錯
觀摩與討論 展示學生作品 觀摩各組加密通訊展示(發送、接收、竊聽端)

討論各組加密方式之優缺點

學習工具 | 參考資源

  • 個人電腦、程式語言工具、學習單、簡報、範例程式、Arduino UNO V3、單心線與測試夾
  • 維基百科-凱撒密碼
  • 賴溪松、韓亮、張真誠(1998)。近代密碼學及其應用。松崗電腦圖書資料股分有限公司。

 

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *