Diffie–Hellman (DH) Key Exchange (金鑰交換)
Diffie–Hellman 是一個金鑰交換的演算法 DH 在解決什麼問題? 在不安全通道上,Alice 與 Bob 協議出共同秘密金鑰 $K$,用於對稱加密(如 AES)。 公開參數 質數 $p$ 生成元 $g$ 所有運算皆在 $\bmod p$ 下進行。 協議流程 Alice 選私鑰 $a$,公開 $A=g^a \bmod p$。 Bob 選私鑰 $b$,公開 $B=g^b \bmod p$。 共享秘密: Alice:$K=B^a \bmod p$ Bob:$K=A^b \bmod p$ 正確性:$(g^b)^a \equiv (g^a)^b \equiv g^{ab}\pmod p$。 注意 : 不是 $(g^a) \times cross (g^b) = g^{a+b}$ 手算例 選 $p=23, g=5$。 Alice:$a=6 \Rightarrow A=5^6 \bmod 23=8$。 Bob:$b=15 \Rightarrow B=5^{15} \bmod 23=19$。 共享: $K=19^6 \bmod 23=2$ $K=8^{15} ...
(資料庫系統) Normal Forms (NF)
本章我要統整一下 Normal Forms 究竟是甚麼東西 核心目的 : 消除資料重複,避免更新異常,同時不產生假值組(spurious tuple) 快速導覽一下 基本正規式(Normal Forms Based on Primary Keys) 1NF (First Normal Form) 2NF (Second Normal Form) 3NF (Third Normal Form) Tips : 實作通常可以只到3NF就好 高等正規式 BCNF (Boyce-Codd Normal Form) 4NF (Forth Normal Form) 5NF (Join Dependencies and Fifth Normal Form) 1NF 每個屬性是簡單且單值 只要合法的關聯綱目,也就是只要屬性值為 atomic value,都滿足1NF 那如果有多值呢 ? Solution 1 : 將多值的那個屬性也設為主鍵並將它分開好幾列 Ex. 原圖 tNo transMid method transTime products ...
(資料庫系統) Advanced SQL
CH07 Advanced SQL(More SQL) 本章目標: 從基本 SELECT–FROM–WHERE,進階到能撰寫 實務等級的複雜 SQL 查詢。 More Complex SQL Retrieval Queries SQL 提供額外功能以支援更複雜的查詢: Nested Queries(巢狀查詢) Joined Tables 與 Outer Joins Aggregate Functions 與 Grouping NULL 與 Three-Valued Logic(三值邏輯) NULL 的意義 Unknown(未知) Unavailable / Withheld(不可用或被隱藏) Not applicable(不適用) 重要觀念 NULL 不是一個值 NULL ≠ NULL SQL 使用 TRUE / FALSE / UNKNOWN Three-Valued Logic(三值邏輯) TRUE FALSE UNKNOWN(通常來自 NULL) AND(且) AND TRUE FALSE UNKNOWN TRUE TRUE FALSE U...
(作業系統) Deadlock Definition, Avoidance and Resolution
Deadlock基本概念 1. Deadlock 是什麼? Deadlock 指的是: 一組 processes 彼此等待對方所持有的資源,導致所有 process 都無法繼續執行。 Deadlock 的特徵 每個 process: 已持有至少一個資源 同時等待另一個 process 持有的資源 結果:大家互等,系統停住 2. Deadlock 範例 Example 1:兩個 processes、兩個資源 P1 持有 R1,等待 R2 P2 持有 R2,等待 R1 → 互相等待,發生 deadlock Example 2:Semaphore A 與 B 12P1: wait(A); wait(B); ...; signal(B); signal(A);P2: wait(B); wait(A); ...; signal(A); signal(B); 若 P1 先拿到 A、P2 先拿到 B 下一步彼此都在等對方 → deadlock Deadlock 的四個必要條件 Deadlock 當且僅當下列四個條件同時成立: Mutual Exclusion(互斥)...
(資料庫系統) Basic SQL (Structured Query Language)
簡短說明: 主題:Basic SQL 本章重點: SQL 的由來與「關聯模型」差異 SQL 三種語言:DDL / DML / DCL Schema / Catalog / CREATE TABLE 資料型態 & Domain 各種 Constraints(PK / FK / UNIQUE / NOT NULL / CHECK / DEFAULT) 基本查詢:SELECT-FROM-WHERE、DISTINCT、集合運算 INSERT / DELETE / UPDATE 修改資料 Basic SQL & 關聯模型差異 SQL的由來 起源:從 tuple calculus(關聯謂詞演算)發展出語言 SQUARE → SEQUEL → SQL SQL 原本是 SEQUEL to SQUARE 的縮寫,後來因版權改成 SQL(Structured Query Language) → 目前都習慣叫「Structured Query Language」。 名詞對照(數學 vs 實作) 理論的關聯模型使用比較「數學」的名稱: 關聯模型 SQL 實務...
Operating Systems - Massive Storage System
Massive Storage System 這章主要探討: Hard Disk Structure Disk Access Time Free-Space Management File Allocation Methods Disk Scheduling Formatting Bootstrap Loader Bad Sectors Swap Space Management RAID File Directory Structure File Access Control Consistency Semantics Storage Attachment Hard Disk Drive HDD 基本結構 一顆 HDD 由多個 disk platter 組成。 每片 platter 通常有兩個可以儲存資料的: Surface 每個 surface 又會分成很多同心圓: Track 每個 track 再切成: Sector 而不同 platter 上,相同位置的 tracks 集合稱為: Cylinder 關係 Surface → Track → Sect...
(線性代數) 矩陣與矩陣運算
矩陣與矩陣運算基礎 在線性代數中,矩陣(Matrix)是一種用於表示線性變換與解線性方程組的重要工具。 矩陣由數字依照**列(row)與行(column)**排列成長方形陣列。 1. 矩陣的表示法 令 $F$ 為一個域(Field),一個 $m \times n$ 的矩陣 $A$ 為: $$ A = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix}, \quad a_{ij} \in F $$ 其中: $A$ 為 $m$ 列 $n$ 行矩陣 $a_{ij}$:第 $i$ 列、第 $j$ 行元素 行(row):橫向排列 列(column):縱向排列 $F^{m \times n}$:所有 ...
(作業系統) Process and Concurrency - Synchronization Concepts
簡短說明: 主題:Synchronization Concepts 本章重點: 什麼情況下會發生 Race Condition? 作業系統必須滿足哪些條件,才能正確管理共享資源? 有哪些同步機制(Synchronization Mechanisms)可以保證程式正確性? Background 問題與解決 The Problem : Concurrent access to shared data may result in data inconsistency Outcome depends on the order of execution(race condition) The Solution : Ensure orderly execution Synchronization : 協調資源的分享與存取 保證 Data Integrity 和 Correctness Consumer and Producer Problem : 變數意義 : in:下一個要放入的位置(next free position) out:下一個要取出的項目...
[離散數學] 基本符號與概念速查表
📚 這篇文章是離散數學符號速查表! 適用考前快速查詢,不含艱澀推導。 1. 邏輯運算符號 符號 名稱 意義(白話) KaTeX $\lnot p$ 否定 把 $p$ 的真假顛倒 \lnot p $p \land q$ 且 AND 兩者都要為真 p \land q $p \lor q$ 或 OR 任一為真即可 p \lor q $p \oplus q$ 互斥或 XOR 只能一個為真 p \oplus q $p \to q$ 蘊涵 $p$ 真 → $q$ 必須真 p \to q $p \leftrightarrow q$ 等價 兩者同進退 p \leftrightarrow q $\top$ 永真 永遠為真 \top $\bot$ 永假 永遠為假 \bot $\forall x$ 全稱量詞 對所有 $x$ 成立 \forall x $\exists x$ 存在量詞 至少存在一個 $x$ \exists x $\nexists x$ 不存在量詞 無任何 $x$ 成立 \nexists x 2. 集合運算符號 符號 ...
[資訊安全] 常見編碼方式一覽
本篇整理了我在練習 picoCTF 或資訊安全題目中常見的編碼方式與判斷技巧,搭配 GPT 一起整理的重點。 如果有遺漏或錯誤,歡迎在下方留言討論 🙌 📋 編碼類型總覽 類型 範例 特徵 常見用途 Base64 cGljb0NURntzZWNyZXR9 僅包含 A–Z a–z 0–9 + /,結尾可能有 = 傳輸二進位資料、Email 附件、JWT URL Encoding picoCTF%7Burl_3nc0ded%7D %xx 表示特殊字元,如 %20 空格、%3D 等號 網址參數、表單資料 Hexadecimal 7069636f4354467b7d 僅含 0–9 a–f,每 2 位 = 1 byte Shellcode、封包分析 HTML Entity <script> &xxx; 或 &#xNN; HTML 轉義、防 XSS Binary 01110000 01101001 僅由 0 與 1 組成,8 位一組 位元操作、底層教學 Octal \123\145\143 \ 開頭接 3 位八...