ICT 每周速報(Week 33, 2021)

Willis WAN, Chun Yu | 2021-08-20

🖊 本周重點

  • 「大數據」潮流:數據量係咪一切?
  • Google 出品,係咪佳品?Titan Security Key
  • 隨機數生成器的漏洞影響數十億 IoT 裝置

🗞 News 1: 「大數據」潮流:數據量係咪一切?

一般嚟講,開發 AI 系統需要大量嘅數據,令到 AI 系統可以搵到數據入面嘅規律。要令呢類型嘅 AI 系統更準確,就只有扔更多數據落去個系統,等佢去學。結果,大部分公司只係集中係收集數據上,而呢個世界只要好少數公司有足夠嘅數據或者資源去做好個系統。

例如,係 2019 年,用手機叫外賣嘅中國人比美國人多 10 倍。中國嘅手機支付交易比美國多 50 倍。中國嘅共享單車租用率比美國多 300 倍。文化同營商環境令到中國嘅公司更容易收集到大量數據。

但係,只係集中喺收集數據上,只會抺殺我哋嘅創意。所以史舟福大學嘅吳恩達教授指出,我哋應該集中係點樣令到更多 AI 算法可以用更少嘅數據開發。

ICT 重點

之前都講過,想開發一個好嘅 AI 系統需要大量嘅數據。但係除咗個量 Quantity 次外,數據嘅質素 Quality 都好重要。

係討論大數據 Big Data 嘅時候,好多時我哋會考慮四個 V :

  • Volume 數據量:唔洗多講,一個字:多;
  • Velocity 數據速率:除咗講求大量之外,大數據都想收集數據嘅速度有翻咁上下;
  • Variety 數據種類:大數據嘅「大」字除咗個量之外,亦都指佢嘅種類;
  • Veracity 數據真確性:呢到嘅 Veracity 係指收集到嘅數據對我哋嘅系統有幾大作用。

(話說呢四個 V 係我大學一年級嘅時候上堂學架 🙈)

所以,係開發一個 AI 系統嘅時候,我哋唔會諗到唔諗就扔曬啲數據落去。相反,我哋會用啲時間去了解下收集得嚟嘅數據,例如透過畫一啲 Charts 去視覺化(Visualise)啲數據。然後我哋會做啲 Data Preprocessing,確保啲數據靚靚仔仔先之攞去 Train 個 AI 系統。

呢啲步驟都需要學過數據科學(Data Science)嘅專業人士去做;Willis 係呢一方面嘅認識真係好少。對呢方面有興趣嘅同學仔可以係大學揀有 Data Science 讀嘅 Programme,因為呢方面嘅就人才都越嚟越搶手㗎!

相關課題

  • 選修單元 A 第 12 課:關於數據開採及其應用

新聞來源/詳細閱讀

🔖 News 2: Google 出品,係咪佳品?Titan Security Key

Google 宣佈推出最新版本嘅安全金鑰 Google Titan Security Key。呢個版本嘅金鑰加入 USB-C 接頭同埋近場通訊(Near-field Communication;NFC)技術,等用戶可以用呢個裝置嚟進行雙重認證(Two-factor Authentication;2FA)。

ICT 重點

先同大家溫下書。多重因素認證(Multi-factor Authentication;MFA)有三個主要認證方法:

  1. Something You Know:用戶所知道嘅事,例如係密碼;
  2. Something You Have:用戶所擁有嘅裝置;
  3. Something You Are:用戶嘅生物特徵,例如係指紋同虹膜(Iris)。

好明顯,Google Titan Key 屬於 Something You Have。其實呢一類型,特別為 MFA 而設嘅裝置,稱為「通用第二因素 Universal 2nd Factor」(U2F)。以往嘅保安令牌(Security Token)好多時都只係用喺一間銀行或公司度。如果有好多銀行都俾 Security Tokens 你嘅話,用起上嚟就會好麻煩。U2F 容許更多網站同公司透過一個共用嘅裝置去多重認證用戶,簡化咗 2FA 嘅過程。如果呢類型嘅裝置可以普及起嚟嘅話,我哋就可以更好咁保護自己嘅數據同私隱。

相關課題

  • 必修部分第 28 課:關於保安令牌(多重因素認證)

新聞來源/詳細閱讀

📱 News 3: 隨機數生成器的漏洞影響數十億 IoT 裝置

最近,有保安研究員發現,有數十億嘅物聯網(Internet Of Things;IoT)裝置並未正確地生成隨機數,導致保安漏洞。

IoT 裝置通常使用單晶片系統(System on a Chip;SoC),而 SoC 上面會有硬件去進行隨機數生成 (Random Number Generation;RNG)。由於呢個硬件會因為環境因素(主因係唔夠 Entropy,不過以 Willis 嘅數據科學知識只會越講越亂)而無法生成隨機數,再加上 IoT 系統甚少檢查 RNG 係咪成功,結果需要靠 RNG 嘅功能都未必成功。

有乜嘢功能係會用到 RNG 嘅呢?例如:加密時用嘅金鑰生成(Key Generation)或者在雜湊加鹽(Hashing and Salting)。呢啲保安功能有問題嘅話,自然會為個系統帶嚟保安漏洞。

ICT 重點

打開機嘅同學對 RNG 嘅個字一定唔會陌生。好多電腦遊戲,甚至傳統嘅 Table-top 遊戲例如飛行棋或者大富翁,都係 Base On 一啲隨機成份。(我係詳細閱讀嘅部分 Link 咗一段片講設計遊戲同隨機性嘅關係,有興趣嘅同學可以睇下。)但係,RNG 除咗遊戲之外,對保安(例如上文講到嘅金鑰生成)同統計學對好有幫助。後者有機會嘅話可以再詳細講下。

RNG 通常係 Elective C 同 D 入面 Programming 嘅題目入面,而通常都係透過一個子程式(Subroutine)嘅形式出現。有無諗過實際上點用一啲 Programming Languages 去生成隨機數呢?我用咗三種 DSE 會用嘅 Programming Languages 去實現一個 RNG:

{ Pascal }
program main;
begin
    randomize;
    writeln(trunc(random() * 10 + 1));
end.
/* C */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    srand(time(NULL));
    printf("%d", rand() % 10 + 1);
    
    return 0;
}
# Python
import random
import time

def main():
    random.seed(time.time)
    print(int(random.random() * 10 + 1))

if __name__ == "__main__":
    main()

值得留意嘅係,係我哋生成一個隨機數之前,我哋會 set 一個種子(seed)。因為電腦淨係識得跟住 Programmer 所寫嘅 Instructions 去做,所以真正嘅隨機對電腦嚟講係無可能。實際上,電腦會將個 Seed 擺落去一條好複雜嘅 Formula 到,令到個 Formula 嘅 Result 睇落好 Random。呢個方法就叫做「偽隨機數生成 Psudo-random Generator」。

相關課題

  • 選修單元 C 第 12-14 課:關於動態及互動網頁
  • 選修單元 D 第 3 課:關於隨機數生成器

新聞來源/詳細閱讀

問題回顧

  1. 係討論大數據嘅時候,我哋會討論邊四個 V ?
  2. 「通用第二因素 Universal 2nd Factor」解決咗乜嘢問題?
  3. 隨機數生成器有啲乜嘢應用?

鐘意篇文嘅話,麻煩係下面個 IG Post 上面俾個 Like ❤️ 感謝感謝

更多內容