1 / 31

密碼加密器 - SecretQR

密碼加密器 - SecretQR. 指導教授:林啟芳 專題生: 971430 詹益晨 973326 朱書賢. 研究動機. 由於 QR Code 的應用日漸普及,所以我們希望利用其便利性製作出一套應用程式。 本計畫主要是 利用 QR Code 的 方便性搭配特殊加密方法,協助一般人克服平常須記憶冗長密碼的困難 。. 系統架構. 系統架構. QR Code 編碼、解碼. QR Code 簡介. 簡易 比普通條碼能儲存更多資料 不受方向限制. QR Code 簡介. 可儲存資料類型分為數字、字母、二進位數等 共 40 種規格,數值越大所能容納的資料越長.

kurt
Download Presentation

密碼加密器 - SecretQR

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 密碼加密器- SecretQR 指導教授:林啟芳 專題生:971430 詹益晨 973326 朱書賢

  2. 研究動機 • 由於QRCode的應用日漸普及,所以我們希望利用其便利性製作出一套應用程式。 • 本計畫主要是利用QRCode的方便性搭配特殊加密方法,協助一般人克服平常須記憶冗長密碼的困難。

  3. 系統架構

  4. 系統架構 • QR Code 編碼、解碼

  5. QR Code 簡介 • 簡易 • 比普通條碼能儲存更多資料 • 不受方向限制

  6. QR Code 簡介 • 可儲存資料類型分為數字、字母、二進位數等 • 共40種規格,數值越大所能容納的資料越長

  7. QR Code 簡介 • 具容錯能力,分L、M、O、H四種

  8. QR Encode • AndroidQREncode(sourceString, qrCodeVersion); // 將QR Code level及需要編碼的資料當作參數 • com.swetake.util.Qrcode // 建構QR Code編碼物件 • setQrcodeErrorCorrect(‘M’); // 設定容錯率 • setQrcodeEncodeMode(‘B’); // 設定資料類型 • setQrcodeVersion(4); // 設定版本 (可容納資料大小) • bytesEncoding = strEncoding.getBytes("utf-8"); // 將欲編碼字串轉成Byte後,再拿去製作矩陣

  9. QR Encode • calQrcode(bytesEncoding) // 以此函式產生與QR Code相對應的boolean二維陣列 • for (inti=0;i<bRect.length;i++){ for (int j=0;j<bRect.length;j++){ if (bRect[j][i]){ // 依據陣列值,繪出條碼方塊,每個圖為165*165 mCanvas01.drawRect(new Rect (intPadding_x+j*5, intPadding_y+i*5, intPadding_x+j*5+5, intPadding_y+i*5+5), mPaint01); } } }

  10. QR Decode • decode(byte[] data, int width, int height) // 解碼QR Code • rawResult = multiFormatReader.decodeWithState(bitmap); // 取得QR Code圖片,然後轉為rawResult物件 • Message.obtain(activity.getHandler(), R.id.decode_succeeded, rawResult); // 將產生之rawResult轉成Message物件,並記錄成功或失敗解碼 • handleMessage(Message message) // 若接收到成功訊息,則接著進行解析解碼完的資訊 // 反之,則重新截取圖片

  11. QR Decode • handle(Result rawResult) // 處理解碼後的資料,如:解密亂數部分、顯示資料 • ResultHandlerresultHandler = ResultHandlerFactory.makeResultHandler(this, rawResult); • CharSequencedisplayContents = resultHandler.getDisplayContents(); // 將rawResult轉為ResultHandler物件 // 並透過getDisplayContests取得解碼後的字串

  12. 系統架構 • QR Code 編碼、解碼 • Source Code(原始資料) • Fetch Code (提取碼) • IMEICode (手機序號) • 亂數器 – Mersenne Twister 增加安全性

  13. Mersenne Twister • 虛擬亂數產生器演算法,簡稱MT。 • 分為兩種,MT 19937(32-bits)和MT 19937-64。 • 若一個字組長度為k-bits,此亂數產生器會產生一組亂數且均勻分布於[0, 2k-1]。

  14. MT 優點 • 其設定之週期很長且為最合適的值,週期為219937-1。因為若週期過長,將不能保證亂數產生器的品質,若週期過短,可能會產生出額外的問題。 • 使用k-distribution的方式去作測試,發現在1≦k≦623的範圍中其亂數能均勻分布。 • 與其他的虛擬亂數產生演算法比較,其擁有許多特長,週期長、有效使用記憶體、良好的分布、高效能、速度快。

  15. MT 主要功能 • 分別為sgenrand(seed)和genrand()。 • sgenrand(seed) • 用來設定初始值給624 words的工作區域, seed的範圍介於[1 ~ 232-1]。 • genrand() • 用來產生一個32 bits的亂數, 並且均勻分布在0 ~ 232-1的範圍中。 將來會和數據資料作Exclusive OR 並且依照我們所規定之格式去組成亂數字串

  16. QR Encoder 架構 原始資料 提取碼 手機序號 Encryption 亂數器 亂數器 亂數器 Random Number 組合亂數字串 Random String QR Code 編碼 QR Code 輸出圖檔

  17. Encryption Fetch IEMI Source ⊕ genrand X Y Z + Y + 101 + X 2 3 1 X’ Y ‘ Z’ 亂數字串: X’ + Y’ * Z’ % (Source length + 101)

  18. QR Decoder 架構 Take a picture 輸入提取碼 QR Code 解碼 不符合 比對QR Code格式 符合 Random String 拆開亂數字串

  19. QR Decoder 架構 Random Number 亂數器 亂數器 亂數器 Decryption 原始資料 提取碼 手機序號 不符合 比對IMEI 符合 不符合 比對提取碼 不符合 符合 顯示原始資料 不顯示原始資料

  20. Decryption X’ Y’ Z’ - Y 2 1 - 101 3 - X X Y Z ⊕ genrand IEMI Source Fetch 亂數字串: X’ + Y’ * Z’ % (Source length + 101)

  21. 操作流程

  22. QR Encoder 流程 輸入資料 輸入提取碼 輸入 提取確認碼 取得IMEI (手機序號) 亂數器加密 QRCode 編碼 輸出 QRCode

  23. QR Decoder 流程 拍照取得 QR Code 輸入提取碼 QRCode 解碼 判斷編碼格式 亂數器解密 檢查IMEI 是否相符 檢查提取碼是否相符 顯示原始資料

  24. 成果總結 功能性 • 與市面上的眾多QR Code軟體截然不同 • 主要用於減輕平常需記憶冗長密碼的煩惱 易用性 • 操作介面簡單易懂,且附有說明頁面 • 加密後的密碼儲存方便且解碼容易 流暢性 • 採用MT演算法,快速產生均勻亂數 • 解碼方面只需對準圖片掃描即可快速解碼 資料安全 • 主要有三段防護,分別為使用者自訂之 • 提取碼、編碼手機序號、亂數產生器

  25. SecretQR實作

  26. SecretQR實作 首頁 說明頁面

  27. SecretQR實作 編碼 – 輸入資料 編碼 – 產生QR Code

  28. SecretQR實作 解碼 – 掃描QR Code 解碼 – 解碼成功畫面

  29. Reference • QR Code – Wikipedia, from http://zh.wikipedia.org/zh-tw/QRCode • 林宗澤、何元敬,「QR Code 數位影片導覽Navigation System using QR Code」,民國99年12月18日 • Zxing 1.5 – Android , from http://code.google.com/p/zxing • QR Code Encoder Source Code , from http://www.swetake.com • Mersenne Twister – Wikipedia, form http://en.wikipedia.org/wiki/Mersenne_twister • Mersenne Twister Source Code, from http://www.axlradius.com/freestuff/Mersenne.java • Makoto Matsumoto & Takuji Nishimura, “Mersenne Twister: A 623-Dimensionally Equidistributed Uniform Pseudo-Random Number Generator”, ACM Transactions on Modeling and Computer Simulation, Vol. 8, No. 1, January 1998.

  30. Q & A

  31. Thank you!

More Related