aes 256安全性的問題,透過圖書和論文來找解法和答案更準確安心。 我們找到下列懶人包和總整理

aes 256安全性的問題,我們搜遍了碩博士論文和台灣出版的書籍,推薦衚衕夫寫的 MySQL 8從零開始學(視頻教學版) 和徐凱崔紅鵬的 密碼技術與物聯網安全:mbedtls開發實戰都 可以從中找到所需的評價。

這兩本書分別來自清華大學 和機械工業所出版 。

國防大學 網路安全碩士班 羅序仁所指導 彭正良的 基於LoRa技術之農業灌溉監控物聯網安全傳輸系統 (2021),提出aes 256安全性關鍵因素是什麼,來自於物聯網、LoRa、STM32、AES-256。

接下來讓我們看這些論文和書籍都說些什麼吧:

除了aes 256安全性,大家也想知道這些:

MySQL 8從零開始學(視頻教學版)

為了解決aes 256安全性的問題,作者衚衕夫 這樣論述:

本書內容主要包括My SQL的安裝與配置、資料庫的創建、資料表的創建、資料類型和運運算元、資料表的操作(插入、更新與刪除資料)、索引、視圖、查詢數據、My SQL函數、存儲過程和函數、觸發器、使用者管理、資料備份與還原、My SQL日誌、性能優化。   最後通過兩個綜合案例的資料庫設計進一步講述My SQL在實際工作中的應用,重點介紹My SQL的安裝與配置、資料類型和運運算元以及資料表的操作。本書注重實戰操作,幫助讀者循序漸進地掌握My SQL中的各項技術。   本書共有400個實例和14個綜合案例,還有大量的經典習題。隨書贈送了近20小時培訓班形式的視頻教學錄影,詳細講解書中每一個知識點和

每一個資料庫操作的方法和技巧。同時還提供本書所有例子的原始程式碼,讀者可以直接查看和調用。   本書適合My SQL資料庫初學者、My SQL資料庫開發人員和My SQL資料庫管理員學習,同時也能作為高等院校相關專業師生的教學用書。 胡同夫,從事多年網站前端開發和資料庫管理工作。精通多種程式設計語言和關係型數據庫管理,具有多年實戰開發經驗,對My SQL有深入研究。 第1章  MySQL的安裝與配置 1 1.1  在Windows平臺下安裝與配置MySQL 8.0 1 1.1.1  安裝MySQL 8.0 1 1.1.2  配置MySQL 8.0 5 1

.2  啟動服務並登錄MySQL資料庫 9 1.2.1  啟動MySQL服務 9 1.2.2  登錄MySQL資料庫 10 1.2.3  配置Path變數 11 1.3  MySQL常用圖形管理工具 13 1.4  在Linux平臺下安裝與配置MySQL 8.0 14 1.4.1  Linux作業系統下的MySQL版本介紹 14 1.4.2  安裝和配置MySQL的RPM包 15 1.4.3  安裝和配置MySQL的源碼包 18 1.5  專家解惑 19 1.6  經典習題 19 第2章  操作資料庫和資料表 20 2.1  創建資料庫 20 2.2  刪除資料庫 22 2.3  創建資料表

22 2.3.1  創建表的語法形式 22 2.3.2  使用主鍵約束 24 2.3.3  使用外鍵約束 25 2.3.4  使用非空約束 26 2.3.5  使用唯一性約束 27 2.3.6  使用默認約束 27 2.3.7  設置表的屬性值自動增加 28 2.4  查看資料表結構 29 2.4.1  查看表基本結構語句DESCRIBE 29 2.4.2  查看表詳細結構語句SHOW CREATE TABLE 30 2.5  修改資料表 31 2.5.1  修改表名 31 2.5.2  修改欄位的資料類型 32 2.5.3  修改欄位名 33 2.5.4  添加欄位 34 2.5.5  刪

除欄位 36 2.5.6  修改欄位的排列位置 37 2.5.7  更改表的存儲引擎 38 2.5.8  刪除表的外鍵約束 39 2.6  刪除資料表 40 2.6.1  刪除沒有被關聯的表 41 2.6.2  刪除被其他表關聯的主表 41 2.7  MySQL 8.0的新特性1——默認字元集改為utf8mb4 43 2.8  MySQL 8.0的新特性2——自增變數的持久化 44 2.9  綜合案例——資料表的基本操作 46 2.10  專家解惑 54 2.11  經典習題 54 第3章  資料類型和運算子 56 3.1  MySQL資料類型介紹 56 3.1.1  整數類型 56 3.1

.2  浮點數類型和定點數類型 58 3.1.3  日期與時間類型 60 3.1.4  文本字串類型 71 3.1.5  二進位字元串類型 76 3.2  如何選擇資料類型 79 3.3  常見運算子介紹 80 3.3.1  運算子概述 80 3.3.2  算術運算子 81 3.3.3  比較運算子 82 3.3.4  邏輯運算子 90 3.3.5  位運算子 92 3.3.6  運算子的優先順序 95 3.4  綜合案例——運算子的使用 96 3.5  專家解惑 98 3.6  經典習題 99 第4章  插入、更新與刪除資料 100 4.1  插入資料 100 4.1.1  為表的所有欄位

插入資料 100 4.1.2  為表的指定欄位插入資料 102 4.1.3  同時插入多條記錄 103 4.1.4  將查詢結果插入表中 105 4.2  更新資料 107 4.3  刪除資料 109 4.4  為表增加計算列 111 4.5  MySQL 8.0的新特性——DDL的原子化 112 4.6  綜合案例——記錄的插入、更新和刪除 113 4.7  專家解惑 117 4.8  經典習題 118 第5章  索引 119 5.1  索引簡介 119 5.1.1  索引的含義和特點 119 5.1.2  索引的分類 120 5.1.3  索引的設計原則 121 5.2  創建索引 12

1 5.2.1  創建表的時候創建索引 121 5.2.2  在已經存在的表上創建索引 127 5.3  刪除索引 134 5.4  MySQL 8.0的新特性1——支援降冪索引 136 5.5  MySQL 8.0的新特性2——統計長條圖 138 5.5.1  長條圖的優點 139 5.5.2  長條圖的基本操作 139 5.6  綜合案例——創建索引 141 5.7  專家解惑 143 5.8  經典習題 143 第6章  視圖 145 6.1  視圖概述 145 6.1.1  視圖的含義 145 6.1.2  視圖的作用 146 6.2  創建視圖 147 6.2.1  創建視圖的語法

形式 147 6.2.2  在單表上創建視圖 147 6.2.3  在多表上創建視圖 148 6.3  查看視圖 149 6.3.1  使用DESCRIBE語句查看視圖的基本資訊 149 6.3.2  使用SHOW TABLE STATUS語句查看視圖的基本資訊 150 6.3.3  使用SHOW CREATE VIEW語句查看視圖的詳細資訊 151 6.3.4  在views表中查看視圖的詳細資訊 152 6.4  修改視圖 153 6.4.1  使用CREATE OR REPLACE VIEW語句修改視圖 153 6.4.2  使用ALTER語句修改視圖 154 6.5  更新視圖 155

6.6  刪除視圖 158 6.7  綜合案例——視圖應用 158 6.8  專家解惑 166 6.9  經典習題 167 第7章  查詢資料 168 7.1  基本查詢語句 168 7.2  單表查詢 170 7.2.1  查詢所有欄位 171 7.2.2  查詢指定欄位 172 7.2.3  查詢指定記錄 173 7.2.4  帶IN關鍵字的查詢 175 7.2.5  帶BETWEEN AND的範圍查詢 176 7.2.6  帶LIKE的字元匹配查詢 178 7.2.7  查詢空值 179 7.2.8  帶AND的多條件查詢 181 7.2.9  帶OR的多條件查詢 182 7.2.1

0  查詢結果不重複 183 7.2.11  對查詢結果排序 184 7.2.12  分組查詢 188 7.2.13  使用LIMIT限制查詢結果的數量 193 7.3  使用集合函數查詢 194 7.3.1  COUNT()函數 194 7.3.2  SUM()函數 195 7.3.3  AVG()函數 196 7.3.4  MAX()函數 197 7.3.5  MIN()函數 198 7.4  連接查詢 199 7.4.1  內連接查詢 199 7.4.2  外連接查詢 202 7.4.3  複合條件連接查詢 204 7.5  子查詢 205 7.5.1  帶ANY、SOME關鍵字的子查詢

205 7.5.2  帶ALL關鍵字的子查詢 206 7.5.3  帶EXISTS關鍵字的子查詢 207 7.5.4  帶IN關鍵字的子查詢 208 7.5.5  帶比較運算子的子查詢 210 7.6  合併查詢結果 211 7.7  為表和欄位取別名 214 7.7.1  為表取別名 214 7.7.2  為欄位取別名 216 7.8  使用規則運算式查詢 217 7.8.1  查詢以特定字元或字串開頭的記錄 218 7.8.2  查詢以特定字元或字串結尾的記錄 219 7.8.3  用符號“.”來替代字串中的任意一個字元 219 7.8.4  使用“*”和“ ”匹配多個字元 220 7.

8.5  匹配指定字串 220 7.8.6  匹配指定字元中的任意一個 221 7.8.7  匹配指定字元以外的字元 222 7.8.8  使用{n,}或者{n,m}指定字串連續出現的次數 223 7.9  MySQL 8.0的新特性1——GROUP BY不再隱式排序 224 7.10  MySQL 8.0的新特性2——通用表運算式 226 7.11  綜合案例——資料表查詢操作 230 7.12  專家解惑 237 7.13  經典習題 237 第8章  MySQL函數 239 8.1  MySQL函數簡介 239 8.2  數學函數 240 8.3  字串函數 241 8.3.1  計算

字串字元數的函數和計算字串長度的函數 242 8.3.2  合併字串函數CONCAT(s1,s2,…)、CONCAT_WS(x,s1,s2,…) 242 8.3.3  替換字串的函數INSERT(s1,x,len,s2)和字母大小寫轉換函數 242 8.3.4  獲取指定長度的字串的函數LEFT(s,n)和RIGHT(s,n) 243 8.3.5  填補字元串的函數LPAD(s1,len,s2)和RPAD(s1,len,s2) 243 8.3.6  刪除空格的函數LTRIM(s)和RTRIM(s) 244 8.3.7  刪除指定字串的函數TRIM(s1 FROM s) 244 8.3.8  重

複生成字串的函數REPEAT(s,n) 244 8.3.9  空格函數SPACE(n)和替換函數REPLACE(s,s1,s2) 245 8.3.10  比較字串大小的函數STRCMP(s1,s2) 245 8.3.11  獲取子串的函數SUBSTRING(s,n,len)和MID(s,n,len) 245 8.3.12  匹配子串開始位置的函數 246 8.3.13  字串逆序的函數REVERSE(s) 247 8.3.14  返回指定位置的字串的函數 247 8.3.15  返回指定字串位置的函數FIELD(s,s1,s2,…) 247 8.3.16  返回子串位置的函數FIND_IN_S

ET(s1,s2) 248 8.3.17  選取字串的函數MAKE_SET(x,s1,s2,…) 248 8.4  日期和時間函數 249 8.4.1  獲取當前日期的函數和獲取當前時間的函數 249 8.4.2  獲取當前日期和時間的函數 250 8.4.3  UNIX時間戳記函數 250 8.4.4  返回UTC日期的函數和返回UTC時間的函數 251 8.4.5  獲取月份的函數MONTH(date)和MONTHNAME(date) 251 8.4.6  獲取星期的函數DAYNAME(d)、DAYOFWEEK(d)和WEEKDAY(d) 252 8.4.7  獲取星期數的函數WEEK(d

)和WEEKOFYEAR(d) 253 8.4.8  獲取天數的函數DAYOFYEAR(d)和DAYOFMONTH(d) 254 8.4.9  獲取年份、季度、小時、分鐘和秒鐘的函數 254 8.4.10  獲取日期的指定值的函數EXTRACT(type FROM date) 255 8.4.11  時間和秒鐘轉換的函數 255 8.4.12  計算日期和時間的函數 256 8.4.13  將日期和時間格式化的函數 259 8.5  條件判斷函數 262 8.5.1  IF(expr,v1,v2)函數 262 8.5.2  IFNULL(v1,v2)函數 262 8.5.3  CASE函數 2

63 8.6  系統資訊函數 264 8.6.1  獲取MySQL版本號、連接數和資料庫名的函數 264 8.6.2  獲取用戶名的函數 266 8.6.3  獲取字串的字元集和排序方式的函數 266 8.6.4  獲取最後一個自動生成的ID值的函數 267 8.7  MySQL 8.0的新特性1——加密函數 268 8.7.1  加密函數MD5(str) 269 8.7.2  加密函數SHA(str) 269 8.7.3  加密函數SHA2(str, hash_length) 269 8.8  MySQL 8.0的新特性2——視窗函數 270 8.9  綜合案例——MySQL函數的使用 27

1 8.10  專家解惑 274 8.11  經典習題 275 第9章  存儲過程和函數 277 9.1  創建存儲過程和函數 277 9.1.1  創建存儲過程 278 9.1.2  創建存儲函數 280 9.1.3  變數的使用 281 9.1.4  定義條件和處理常式 282 9.1.5  游標的使用 285 9.1.6  流程控制的使用 286 9.2  調用存儲過程和函數 291 9.2.1  調用存儲過程 291 9.2.2  調用存儲函數 292 9.3  查看存儲過程和函數 292 9.3.1  使用SHOW STATUS語句查看存儲過程和函數的狀態 293 9.3.2  使

用SHOW CREATE語句查看存儲過程和函數的定義 293 9.3.3  從information_schema.Routines表中查看存儲過程和函數的資訊 294 9.4  修改存儲過程和函數 295 9.5  刪除存儲過程和函數 297 9.6  MySQL 8.0的新特性——全域變數的持久化 298 9.7  綜合案例——創建存儲過程和函數 299 9.8  專家解惑 302 9.9  經典習題 302 第10章  MySQL觸發器 303 10.1  創建觸發器 303 10.1.1  創建只有一個執行語句的觸發器 304 10.1.2  創建有多個執行語句的觸發器 304 10

.2  查看觸發器 307 10.2.1  使用SHOW TRIGGERS語句查看觸發器資訊 307 10.2.2  在triggers表中查看觸發器信息 309 10.3  觸發器的使用 310 10.4  刪除觸發器 311 10.5  綜合案例——觸發器的使用 312 10.6  專家解惑 314 10.7  經典習題 314 第11章  MySQL許可權與安全管理 315 11.1  許可權表 315 11.1.1  user表 315 11.1.2  db表 318 11.1.3  tables_priv表和columns_priv表 319 11.1.4  procs_priv表

320 11.2  帳戶管理 320 11.2.1  登錄和退出MySQL伺服器 321 11.2.2  新建普通用戶 322 11.2.3  刪除普通用戶 324 11.2.4  root使用者修改自己的密碼 325 11.2.5  root使用者修改普通使用者密碼 326 11.3  許可權管理 327 11.3.1  MySQL的各種許可權 327 11.3.2  授權 329 11.3.3  收回許可權 331 11.3.4  查看許可權 332 11.4  存取控制 333 11.4.1  連接核實階段 333 11.4.2  請求核實階段 333 11.5  提升安全性 334

11.5.1  AES 256加密 334 11.5.2  密碼到期更換策略 336 11.5.3  安全模式安裝 338 11.6  MySQL 8.0的新特性——管理角色 338 11.7  綜合案例——綜合管理用戶許可權 339 11.8  專家解惑 342 11.9  經典習題 342 第12章  資料備份與恢復 344 12.1  資料備份 344 12.1.1  使用MySQLdump命令備份 344 12.1.2  直接複製整個資料庫目錄 350 12.1.3  使用MySQLhotcopy工具快速備份 351 12.2  資料恢復 351 12.2.1  使用MySQL命令恢

復 351 12.2.2  直接複製到資料庫目錄 352 12.2.3  MySQLhotcopy快速恢復 353 12.3  資料庫遷移 353 12.3.1  相同版本的MySQL資料庫之間的遷移 353 12.3.2  不同版本的MySQL資料庫之間的遷移 354 12.3.3  不同資料庫之間的遷移 354 12.4  表的匯出和導入 354 12.4.1  使用SELECTI…NTO OUTFILE匯出文字檔 355 12.4.2  使用MySQLdump命令匯出文字檔 359 12.4.3  使用MySQL命令匯出文字檔 361 12.4.4  使用LOAD DATA INFILE

方式導入文字檔 364 12.4.5  使用MySQLimport命令導入文字檔 367 12.5  綜合案例——資料的備份與恢復 368 12.6  專家解惑 372 12.7  經典習題 373 第13章  MySQL日誌 374 13.1  日誌簡介 374 13.2  二進位日誌 375 13.2.1  啟動和設置二進位日誌 375 13.2.2  查看二進位日誌 376 13.2.3  刪除二進位日誌 378 13.2.4  使用二進位日誌恢復資料庫 380 13.2.5  暫時停止二進位日誌功能 380 13.3  錯誤日誌 381 13.3.1  啟動和設置錯誤日誌 381 1

3.3.2  查看錯誤日誌 381 13.3.3  刪除錯誤日誌 382 13.4  通用查詢日誌 383 13.4.1  啟動通用查詢日誌 383 13.4.2  查看通用查詢日誌 383 13.4.3  刪除通用查詢日誌 384 13.5  慢查詢日誌 384 13.5.1  啟動和設置慢查詢日誌 385 13.5.2  查看慢查詢日誌 385 13.5.3  刪除慢查詢日誌 386 13.6  MySQL 8.0的新特性——日誌分類更詳細 386 13.7  綜合案例——MySQL日誌的綜合管理 386 13.8  專家解惑 392 13.9  經典習題 393 第14章  性能優化

394 14.1  優化簡介 394 14.2  優化查詢 395 14.2.1  分析查詢語句 395 14.2.2  索引對查詢速度的影響 398 14.2.3  使用索引查詢 399 14.2.4  優化子查詢 402 14.3  優化資料庫結構 402 14.3.1  將欄位很多的表分解成多個表 403 14.3.2  增加中間表 404 14.3.3  增加冗餘欄位 405 14.3.4  優化插入記錄的速度 406 14.3.5  分析表、檢查表和優化表 407 14.4  優化MySQL伺服器 409 14.4.1  優化伺服器硬體 409 14.4.2  優化MySQL的參數

410 14.5  臨時表性能優化 411 14.6  伺服器語句超時處理 413 14.7  創建全域通用表空間 414 14.8  MySQL 8.0的新特性1——支援不可見索引 414 14.9  MySQL 8.0的新特性2——增加資源組 416 14.10  綜合案例——全面優化MySQL伺服器 418 14.11  專家解惑 420 14.12  經典習題 421 第15章  綜合專案1——論壇管理系統資料庫設計 422 15.1  系統概述 422 15.2  系統功能 423 15.3  資料庫設計和實現 424 15.3.1  設計方案圖表 424 15.3.2  設計表

426 15.3.3  設計索引 429 15.3.4  設計檢視 430 15.3.5  設計觸發器 431 第16章  綜合專案2——新聞發佈系統資料庫設計 433 16.1  系統概述 433 16.2  系統功能 434 16.3  資料庫設計和實現 435 16.3.1  設計表 435 16.3.2  設計索引 439 16.3.3  設計檢視 440 16.3.4  設計觸發器 441

aes 256安全性進入發燒排行的影片

VSTECS 特約網上商店: https://shop.vstecs.hk/categories/wd
以優惠價HK$1099購買 My Passport SSD 1TB+ 旅遊轉換插座
優惠碼 : MEEEEWDPSSD1TB
以優惠價HK$2099購買 My Passport SSD 2TB+ 旅遊轉換插座
優惠碼 : MEEEEWDPSSD2TB

優惠期至2021年4月30日

近呢幾年,使用SSD嘅人越嚟越多,主要喺因為SSD速度快,耐用之餘,體積亦比傳統Hard Disk細。作為一個經常拍片及外出工作嘅人,儲存嘅片段或資料閒閒地都過百GB,一個可以隨身攜帶,而又可靠嘅SSD可以話喺十分重要。今日要介紹嘅,就係呢隻由WD推出嘅My Passport SSD可攜式固態硬碟,我哋一齊嚟睇下!

呢隻My Passport SSD外殼使用金屬設計,配合埋上面嘅波浪紋,拎上手質感舒服,睇落亦都充滿現代感。佢嘅重量對比起傳統HardDisk輕,體積上亦都同一張普通信用咭差唔多Size,纖巧到連放入衫袋,或褲袋等等都完全冇問題,便攜度滿分!

除咗美觀同輕便之外,My Passport SSD仲解決咗以往Hard Disk容易受跌撞而損壞嘅問題。官方稱,My Passport SSD可以有最高1.98米嘅抗跌性能,就算唔小心跌落地,都唔會容易損壞。

呢隻Portable嘅SSD操作十分容易,無論Mac或PC,佢都無需setup,即插即用。配合USB 3.2 Gen-2介面,及NVMe技術,佢速度上可以有高達1050MB/s嘅讀取速度,及1000MB/s嘅寫入速度。加上佢隨盒已經附帶一條Type-C線,及一個Type-A插頭轉換器,等用家可以喺唔同型號電腦上使用。

如果用家想使用My Passport SSD嘅備份功能或設定密碼,就可以利用SSD入面內置嘅WD Discovery程式安裝檔,只要選擇返MAC或Windows系統版本安裝,設定後就可以輕鬆將大容量檔案備份到硬碟或雲端服務,佢亦與Apple Time Machine相容。My Passport SSD支援256-bit AES硬件加密,大家亦可以去WD Security設定密碼加強保護,用家亦都可以喺度登記埋為期5年嘅保養。

等我哋試下使用原裝嘅Type-C線睇下個讀寫表現先!雖然我哋喺一部性能十分普通嘅Notebook上試,但喺CrystalDiskMark實測下,讀寫速度分別都有超過800MB/s同780MB/s,超級快!我哋再將一個大約20GB嘅file過落去電腦試下!全程唔需要30秒,表現好好!

再試埋呢個Type-C轉換Type-A頭!我哋搵咗另一隻同樣使用Type-A頭嘅HardDisk嚟比對,同樣都係大約20GB嘅File,結果出到嚟SSD嘅傳出或傳入速度都比HardDisk快,可見SSD嘅優勢。

現時My PassportSSD仲做緊優惠!大家只要去VSTECS嘅特約網上商店,結帳時輸入螢幕上呢兩個優惠碼,就可以分別用HKD$1099嘅優惠價購買My Passport SSD 1TB+ WD旅遊插座,同HKD$2099優惠價購買My Passport SSD 2TB+ WD旅遊插座!大家仲可以選擇加多HKD$1換購WD My Passport SSD 專用保護袋,咁就有更上一層樓嘅保護喇!

呢兩個優惠碼仲放咗影片喺下面嘅Description位置,方便大家可以直接Copy上去!總括而言,呢隻WD My Passport SSD喺安全性、效能、相容性、以及操作便利度上都有十分好嘅表現,絕對喺一個好選擇!

基於LoRa技術之農業灌溉監控物聯網安全傳輸系統

為了解決aes 256安全性的問題,作者彭正良 這樣論述:

鑒於近年來物聯網技術的應用日漸普及,本研究乃基於LoRa傳輸技術搭配AES-256加解密演算法建置遠距離無線安全傳輸機制,輔以自行開發的GUI視窗顯示介面,建立即時監控平台,構成一套完整的物聯網加解密應用系統。本研究實驗方法如后:土壤監測端整合STM32微控制器及感知器,負責蒐集前端監測數據,若土壤濕度過低,則以N-MOSFET驅動自動灑水開關,並將監測數據以AES-256加密後利用LoRa傳輸技術回傳監控端;最後,監控端將接收之數據解密並進行分析,若數值異常,監控系統會即時發送E-mail通知管理者。此設計經驗證可達到設備自供電、遠距離安全無線傳輸與即時告警之目的。

密碼技術與物聯網安全:mbedtls開發實戰

為了解決aes 256安全性的問題,作者徐凱崔紅鵬 這樣論述:

本書是國內一本理論結合實踐的物聯網安全書籍,包括數論基礎知識、密碼學演算法、TLS/DTLS協議、物聯網安全協議CoAPs等部分。本書試圖打破物聯網工程師、嵌入式工程師與Web開發工程師之間的知識鴻溝,通過圖文並茂的方式說明密碼技術與物聯網安全。本書具有以下特點:密碼學演算法部分除了理論知識之外,還包括mbedtls示例代碼,可以幫助讀者更快地理解晦澀難懂的密碼技術。 本書基於嵌入式硬體平台描述密碼學演算法性能,通過示例代碼分析密碼學演算法資源消耗情況,並給出實戰建議。緊扣物聯網安全發展趨勢。認證加密演算法部分,本書詳細描述了認證加密演算法CCM模式和GCM模式;橢圓曲線演算法部分,本書詳細

描述了橢圓曲線密碼演算法的數學基礎以及安全原理;TLS/DTLS協議部分。 本書以物聯網終端的角度詳細描述TLS/DTLS協議的實現過程,按照密鑰交換、密鑰計算、對稱加密等部分展開,並總結了物聯網設備使用TLS/DTLS協議的建議;物聯網安全協議CoAPs部分。本書詳細描述了物聯網安全協議CoAPs,CoAPs依賴DTLS協議,它可在佔用較少資源的情況下為終端設備提供安全連接能力。 徐凱,阿里雲IoT開發工程師,花名左相。物聯網技術實踐者與研究者,對物聯網傳輸協議、物聯網安全和物聯網數據存儲有常深刻的認識與理解。多年嵌入式與物聯網系統開發經驗,涉獵終端設備,邊緣計算與物聯

網平台等多個領域。編寫大量關於物聯網應用、物聯網操作系統,物聯網傳輸協議相關的技術博文,博文廣受好評。著有《IoT開發實戰 CoAP卷》。 崔紅鵬,嵌入式軟體工程師,現就職于清華大學無錫應用技術研究院——微納電子與系統晶元實驗室。「CPU硬體安全動態監測管控技術」項目組成員,負責密碼學演算法實現和SDK開發,該項目曾獲「2018年世界互聯網大會15項全球領先科技成果」。物聯網安全愛好者,對嵌入式系統、密碼學技術和安全應用方案有深入研究,積极參与開源項目,為GmSSL和zephyr等開源項目貢獻過代碼。 推薦序一 推薦序二 前言 第1章 物聯網安全概述 1 1.1 本章主要

內容 1 1.2 物聯網安全基礎 1 1.2.1 物聯網安全與互聯網安全 1 1.2.2 物聯網安全與密碼學 2 1.3 密碼學安全常識 3 1.3.1 柯克霍夫原則 3 1.3.2 Alice和Bob 4 1.3.3 Eve和Mallory 4 1.4 mbedtls簡介 5 1.4.1 密碼學工具箱 5 1.4.2 TLS/DTLS協議 6 1.4.3 X.509證書 6 1.5 OpenSSL簡介 7 1.5.1 原始程式碼安裝 7 1.5.2 命令列工具簡介 8 1.5.3 摘要命令 dgst 8 1.5.4 對稱加密命令 enc 8 1.5.5 SSL命令 s_server 9 1.

6 本章小結 11 第2章 mbedtls入門 12 2.1 本章主要內容 12 2.2 mbedtls 體系結構 12 2.3 Linux mbedtls 安裝 13 2.3.1 安裝 CMake 13 2.3.2 使用 CMake 安裝 mbedtls 14 2.4 Linux mbedtls 示例 17 2.4.1 Base64示例 17 2.4.2 遍歷 mbedtls 安全套件 20 2.5 Zephyr OS 簡介 24 2.6 Zephyr 開發環境搭建 25 2.7 Zephyr 硬體平臺選擇 26 2.7.1 資源介紹 27 2.7.2 Ubuntu中安裝STLink工具

28 2.8 Zephyr 應用示例開發 28 2.8.1 編寫 CMakeLists.txt 29 2.8.2 編寫 prj.conf 29 2.8.3 編寫 main.c 29 2.8.4 編譯與運行 30 2.9 Zephyr mbedtls 示例 31 2.9.1 Base64示例 31 2.9.2 大數運算示例 35 2.10 本章小結 39 第3章 數論基礎知識 41 3.1 本章主要內容 41 3.2 素數 42 3.3 模運算 43 3.3.1 模數 43 3.3.2 同餘 43 3.3.3 模算數運算 44 3.3.4 模逆運算 44 3.3.5 模重複平方 46 3.4 

群 47 3.4.1 群的基本概念 47 3.4.2 迴圈群 48 3.4.3 子群 49 3.5 域 50 3.5.1 域的基本概念 50 3.5.2 有限域和素域 50 3.5.3 擴展域GF(2m) 52 3.5.4 GF(2m)加法和減法 53 3.5.5 GF(2m)乘法 53 3.5.6 GF(2m)逆操作 55 3.6 歐拉函數 56 3.7 歐拉定理 56 3.8 費馬小定理 57 3.9 離散對數 57 3.9.1 模算術–指數 57 3.9.2 模算術–對數 58 3.9.3 離散對數問題 59 3.10 本章小結 59 第4章 單向散列函數 60 4.1 本章主要內容

60 4.2 單向散列函數原理 60 4.2.1 單向散列函數性質 61 4.2.2 單向散列函數應用 62 4.3 單向散列函數的實現方法 63 4.3.1 MD演算法家族 63 4.3.2 SHA演算法家族 63 4.4 SHA256 詳細描述 64 4.4.1 預處理 64 4.4.2 雜湊計算 66 4.4.3 具體示例 68 4.5 mbedtls 單向散列應用工具 69 4.5.1 hello 69 4.5.2 generic_sum 69 4.6 mbedtls SHA256示例 70 4.6.1 示例描述 70 4.6.2 示例代碼 70 4.6.3 代碼說明 72 4.6.4

 編譯與運行 74 4.7 本章小結 74 第5章 對稱加密演算法 76 5.1 本章主要內容 76 5.2 對稱加密演算法原理 76 5.3 區塊編碼器模式 77 5.3.1 ECB(電子密碼本)模式 77 5.3.2 CBC(密碼分組連結)模式 78 5.3.3 CTR(計數器)模式 79 5.4 PKCS7填充方案 81 5.5 AES演算法概述 82 5.6 AES 演算法詳細說明 84 5.6.1 位元組替換 84 5.6.2 行移位 86 5.6.3 列混合 87 5.6.4 輪金鑰加法 87 5.6.5 輪金鑰生成 88 5.7 AES演算法動手實踐 90 5.8 mbedtl

s 對稱加密應用工具 91 5.8.1 aescrypto2 91 5.8.2 crypt_and_hash 92 5.9 mbedtls AES示例 93 5.9.1 示例描述 93 5.9.2 示例代碼 94 5.9.3 代碼說明 96 5.9.4 編譯與運行 97 5.10 本章小結 99 第6章 消息認證碼 100 6.1 本章主要內容 100 6.2 消息認證碼原理 100 6.3 消息認證碼實現方法 102 6.3.1 單向散列演算法實現 102 6.3.2 區塊編碼器實現 102 6.3.3 認證加密演算法實現 102 6.4 HMAC演算法 102 6.5 CBC-MAC和C

MAC 104 6.5.1 CBC-MAC 104 6.5.2 CMAC 104 6.6 認證加密CCM 106 6.6.1 輸入資料格式化 106 6.6.2 認證和加密 108 6.7 認證加密GCM 109 6.7.1 GHASH 110 6.7.2 GCTR 110 6.7.3 認證和加密 111 6.8 mbedtls HMAC示例 112 6.8.1 示例代碼 113 6.8.2 代碼說明 114 6.8.3 編譯與運行 116 6.9 mbedtls GCM 示例 117 6.9.1 示例代碼 117 6.9.2 代碼說明 119 6.9.3 編譯與運行 120 6.10 本章小

結 121 第7章 偽亂數產生器 122 7.1 本章主要內容 122 7.2 亂數概述 122 7.3 亂數產生器 123 7.3.1 真亂數產生器 123 7.3.2 偽亂數產生器 124 7.4 CTR_DRBG演算法 125 7.4.1 參數情況 125 7.4.2 生成過程 125 7.5 mbedtls 亂數應用工具 126 7.5.1 gen_entropy 126 7.5.2 gen_random_ctr_drbg 127 7.5.3 gen_random_havege 127 7.6 mbedtls CTR_DRBG示例 128 7.6.1 示例代碼 128 7.6.2 代

碼說明 130 7.6.3 編譯與執行 131 7.7 mbedtls 大素數生成示例 132 7.7.1 示例代碼 133 7.7.2 代碼說明 135 7.7.3 編譯與執行 135 7.8 mbedtls 自訂熵源介面 136 7.9 本章小結 137 第8章 RSA演算法 138 8.1 本章主要內容 138 8.2 RSA演算法原理 138 8.3 RSA 演算法詳細說明 140 8.4 RSA加速技術 141 8.4.1 中國剩餘數定理 142 8.4.2 動手實踐 142 8.4.3 性能對比 143 8.5 RSA 填充方法 144 8.5.1 PKCS1-V1_5 144

8.5.2 OAEP 145 8.6 mbedtls RSA應用工具 146 8.6.1 rsa_genkey 146 8.6.2 rsa_encrypt 147 8.6.3 rsa_decrypt 148 8.7 mbedtls RSA加解密示例 148 8.7.1 示例代碼 149 8.7.2 代碼說明 151 8.7.3 編譯與執行 153 8.8 本章小結 155 第9章 DH金鑰協商 156 9.1 本章主要內容 156 9.2 DH金鑰協商數學基礎 156 9.3 DH金鑰協商詳細說明 157 9.3.1 DH共用參數 157 9.3.2 DH金鑰協商 158 9.3.3 DH具

體實踐 158 9.3.4 DH金鑰協商安全性分析 159 9.4 常用共用參數 161 9.5 mbedtls DH應用工具 162 9.5.1 dh_genprime 163 9.5.2 dh_server 164 9.5.3 dh_client 165 9.6 mbedtls DH示例 165 9.6.1 示例代碼 166 9.6.2 代碼說明 168 9.6.3 編譯與執行 170 9.7 本章小結 172 第10章 ECDH金鑰協商 173 10.1 本章主要內容 173 10.2 橢圓曲線定義 173 10.2.1 實數域上的橢圓曲線 174 10.2.2 有限域上的橢圓曲線 1

75 10.3 橢圓曲線上群操作 176 10.3.1 群操作幾何描述 176 10.3.2 群操作代數描述 177 10.3.3 群操作動手實踐 178 10.4 橢圓曲線離散對數問題 180 10.5 常用有限域上的橢圓曲線 181 10.6 ECDH金鑰協商 183 10.6.1 ECDH共用參數 184 10.6.2 金鑰協商過程 184 10.6.3 動手實踐 184 10.7 mbedtls橢圓曲線模組 185 10.8 mbedtls ECDH示例 187 10.8.1 示例代碼 188 10.8.2 代碼說明 190 10.8.3 編譯與執行 192 10.9 本章小結 193

第11章 數位簽章RSA、DSA和ECDSA 194 11.1 本章主要內容 194 11.2 數位簽章原理 194 11.3 RSA 數位簽章 196 11.3.1 RSA數位簽章詳細說明 196 11.3.2 RSA數位簽章動手實踐 197 11.3.3 RSA簽名填充方法 197 11.4 DSA數位簽章 199 11.4.1 DSA數位簽章詳細說明 199 11.4.2 DSA簽名動手實踐 200 11.5 ECDSA數位簽章 201 11.5.1 ECDSA數位簽章詳細說明 201 11.5.2 ECDSA動手實踐 203 11.6 mbedtls 數位簽章應用工具 204 11

.6.1 rsa_genkey 204 11.6.2 rsa_sign 204 11.6.3 rsa_verify 205 11.7 mbedtls RSA簽名示例 205 11.7.1 示例代碼 206 11.7.2 代碼說明 208 11.7.3 編譯與執行 209 11.8 mbedtls ECDSA示例 211 11.8.1 示例代碼 211 11.8.2 代碼說明 214 11.8.3 編譯與執行 215 11.9 本章小結 216 第12章 數位憑證X.509 217 12.1 本章主要內容 217 12.2 數位憑證原理 217 12.3 X.509證書標準 219 12.3.

1 證書結構 219 12.3.2 證書名稱 219 12.3.3 證書實例 220 12.4 mbedtls X.509應用工具 224 12.4.1 cert_req 225 12.4.2 req_app 226 12.4.3 cert_write 227 12.4.4 cert_app 229 12.5 mbedtls X.509示例 231 12.5.1 示例代碼 232 12.5.2 代碼說明 234 12.5.3 編譯與執行 236 12.6 本章小結 237 第13章 mbedtls 移植與性能分析 238 13.1 本章主要內容 238 13.2 mbedtls移植 238

13.2.1 時間相關 239 13.2.2 網路相關 240 13.2.3 記憶體分配相關 241 13.3 mbedtls演算法性能說明 243 13.3.1 單向散列函數 243 13.3.2 AES演算法 244 13.3.3 AES-GCM和AES-CCM 245 13.3.4 偽亂數產生器 246 13.3.5 RSA 247 13.3.6 DHE和ECDHE 248 13.3.7 ECDSA 248 13.3.8 ECC記憶體優化 250 13.4 本章小結 253 第14章 TLS 254 14.1 本章主要內容 254 14.2 TLS原理 254 14.2.1 TLS設計

目標 256 14.2.2 TLS框架說明 256 14.3 TLS密碼套件 257 14.4 TLS記錄層協定 258 14.5 密碼規格變更協定 260 14.6 警報協議 260 14.7 握手協議 261 14.7.1 握手協議概述 261 14.7.2 完整握手過程 263 14.7.3 會話恢復 270 14.8 TLS金鑰交換 271 14.8.1 金鑰交換演算法對比 271 14.8.2 ECDHE金鑰交換 272 14.8.3 ECDH與ECDHE的區別 275 14.9 TLS金鑰計算 276 14.9.1 偽亂數產生函數 276 14.9.2 主金鑰計算 278 14.9

.3 KeyBlock計算 278 14.9.4 金鑰計算示例 279 14.10 對稱加密 281 14.10.1 分組加密 281 14.10.2 認證加密 284 14.10.3 對稱加密示例 285 14.10.4 對稱加密結果長度對比 287 14.11 mbedtls TLS應用工具 287 14.11.1 基礎示例說明 289 14.11.2 啟動 ssl_server2 290 14.11.3 抓取網路資料 290 14.11.4 啟動 ssl_client2 291 14.11.5 分析網路資料 291 14.12 構建TLS伺服器 293 14.12.1 生成證書 293

14.12.2 編寫HTML頁面 295 14.12.3 啟動s_server 295 14.12.4 驗證伺服器 29