Guest User

whisper-large

a guest
Jun 3rd, 2023
11
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 173.14 KB | None | 0 0
  1. 1
  2. 00:00:00,000 --> 00:00:13,840
  3. 那我想開始的話我們會先從幾個簡單的定義
  4.  
  5. 2
  6. 00:00:13,840 --> 00:00:18,320
  7. 就是這一張的目的主要是希望大家先有個概念
  8.  
  9. 3
  10. 00:00:18,320 --> 00:00:20,720
  11. 有個印象 有個圖像的印象
  12.  
  13. 4
  14. 00:00:20,720 --> 00:00:23,760
  15. 那首先的話是Puff RT
  16.  
  17. 5
  18. 00:00:23,760 --> 00:00:27,400
  19. 就是Puff RT當然它是Samba的其中一個IP的產品
  20.  
  21. 6
  22. 00:00:27,400 --> 00:00:33,560
  23. 以目前來講的話我們就先把它當作是有一把保管好的key
  24.  
  25. 7
  26. 00:00:33,560 --> 00:00:35,400
  27. 所以這個key外面有一個框框
  28.  
  29. 8
  30. 00:00:35,400 --> 00:00:38,440
  31. 那再來的話第二個是叫AES
  32.  
  33. 9
  34. 00:00:38,440 --> 00:00:43,480
  35. 那AES的話圖像上的話大家可以看到它是由一個藍色的大寫A
  36.  
  37. 10
  38. 00:00:43,480 --> 00:00:47,640
  39. 然後經過了藍色的箭頭到這個AES的block裡面
  40.  
  41. 11
  42. 00:00:47,640 --> 00:00:51,160
  43. 然後並且有一把鑰匙從上面加入
  44.  
  45. 12
  46. 00:00:51,160 --> 00:00:54,520
  47. 然後最後得到的output是大寫的A'
  48.  
  49. 13
  50. 00:00:54,520 --> 00:01:00,920
  51. 那這個的話我們用這樣的意象想要講的是它是一個加密的過程
  52.  
  53. 14
  54. 00:01:00,920 --> 00:01:05,080
  55. 就是從原本的型態A然後轉成變成是A'
  56.  
  57. 15
  58. 00:01:05,080 --> 00:01:09,560
  59. 那同樣的這個AES的這個block也能夠支援的是說
  60.  
  61. 16
  62. 00:01:09,560 --> 00:01:12,920
  63. 它能夠返回來做 就是把原本的這個A'的block
  64.  
  65. 17
  66. 00:01:12,920 --> 00:01:16,440
  67. 然後一樣是進到這個AES走綠色的箭頭
  68.  
  69. 18
  70. 00:01:16,440 --> 00:01:19,880
  71. 那並且也加入了同樣的一把黃色的key
  72.  
  73. 19
  74. 00:01:19,880 --> 00:01:24,440
  75. 然後它會得到的output是能夠還原回來原本的大寫A
  76.  
  77. 20
  78. 00:01:24,440 --> 00:01:27,720
  79. 這個就是相當於是算解密的過程
  80.  
  81. 21
  82. 00:01:27,720 --> 00:01:31,720
  83. 那下一個的話我們這邊列的是ECC
  84.  
  85. 22
  86. 00:01:31,720 --> 00:01:34,680
  87. 那這邊的話ECC講的是橢圓曲線的密碼學
  88.  
  89. 23
  90. 00:01:34,680 --> 00:01:39,000
  91. 那簡單的來說的話它這邊比較不一樣的是說
  92.  
  93. 24
  94. 00:01:39,000 --> 00:01:40,520
  95. 它的key上面是有寫字的
  96.  
  97. 25
  98. 00:01:40,520 --> 00:01:42,680
  99. 就是它是有一個S跟一個P
  100.  
  101. 26
  102. 00:01:42,680 --> 00:01:45,000
  103. 我們這邊講叫secret或是public key
  104.  
  105. 27
  106. 00:01:45,000 --> 00:01:46,840
  107. 就是它是有一個私鑰跟公鑰的
  108.  
  109. 28
  110. 00:01:46,840 --> 00:01:50,120
  111. 那它這邊在做的事情是說你把一個
  112.  
  113. 29
  114. 00:01:50,280 --> 00:01:53,080
  115. 其中一把綠色的比方說叫私鑰
  116.  
  117. 30
  118. 00:01:53,080 --> 00:01:54,680
  119. 這個寫S的這一把
  120.  
  121. 31
  122. 00:01:54,680 --> 00:01:57,160
  123. 進到這個ECC的block之後
  124.  
  125. 32
  126. 00:01:57,160 --> 00:02:01,480
  127. 它能夠出來的是一個黃色的public key這個公鑰
  128.  
  129. 33
  130. 00:02:01,480 --> 00:02:05,640
  131. 那並且這個動作它是無法還原的
  132.  
  133. 34
  134. 00:02:05,640 --> 00:02:09,960
  135. 就是你從公鑰是沒有辦法還原回私鑰的
  136.  
  137. 35
  138. 00:02:09,960 --> 00:02:13,160
  139. 所以它的黃色箭頭回來的這個箭頭這邊打了X
  140.  
  141. 36
  142. 00:02:13,160 --> 00:02:15,160
  143. 這個是還蠻重要的
  144.  
  145. 37
  146. 00:02:15,720 --> 00:02:18,040
  147. 那所以它基本上可以想成是
  148.  
  149. 38
  150. 00:02:18,040 --> 00:02:21,240
  151. 由從一把私鑰產生另外一把公鑰的過程
  152.  
  153. 39
  154. 00:02:21,240 --> 00:02:24,520
  155. 那再來是最下面的這個叫hash
  156.  
  157. 40
  158. 00:02:24,520 --> 00:02:27,960
  159. 那這個hash相信其實它不只在密碼學裡面會出現
  160.  
  161. 41
  162. 00:02:27,960 --> 00:02:29,800
  163. 在其他很多資訊科學裡面也會用得到
  164.  
  165. 42
  166. 00:02:29,800 --> 00:02:31,960
  167. 那這個的話我們給它的意象是說
  168.  
  169. 43
  170. 00:02:31,960 --> 00:02:33,880
  171. 它是有一個大寫A
  172.  
  173. 44
  174. 00:02:33,880 --> 00:02:37,080
  175. 然後進到這個像果汁機的這個雜綽函數
  176.  
  177. 45
  178. 00:02:37,080 --> 00:02:38,040
  179. 就是這個東西
  180.  
  181. 46
  182. 00:02:38,040 --> 00:02:41,400
  183. 然後它得到的output是一個小寫A
  184.  
  185. 47
  186. 00:02:41,400 --> 00:02:43,640
  187. 在這邊我們用小寫主要是想要描述說
  188.  
  189. 48
  190. 00:02:43,640 --> 00:02:46,440
  191. 它是類似一個壓縮成一個摘要的這樣的過程
  192.  
  193. 49
  194. 00:02:46,440 --> 00:02:50,440
  195. 那同時這個hash這個果汁機
  196.  
  197. 50
  198. 00:02:50,440 --> 00:02:51,800
  199. 我們都知道打成果汁之後
  200.  
  201. 51
  202. 00:02:51,800 --> 00:02:53,240
  203. 也是沒有辦法還原回水果的
  204.  
  205. 52
  206. 00:02:53,240 --> 00:02:56,920
  207. 所以它在這邊是一個單項的一個函數
  208.  
  209. 53
  210. 00:02:56,920 --> 00:03:00,440
  211. 然後並且無法從output導回input
  212.  
  213. 54
  214. 00:03:00,440 --> 00:03:04,440
  215. 所以這邊這一些簡單的定義
  216.  
  217. 55
  218. 00:03:04,440 --> 00:03:07,480
  219. 就是希望大家能夠先有一個印象就好
  220.  
  221. 56
  222. 00:03:07,480 --> 00:03:10,920
  223. 那接下來的內容也會跟這些
  224.  
  225. 57
  226. 00:03:10,920 --> 00:03:14,840
  227. 慢慢會知道說這些定義跟接下來的內容
  228.  
  229. 58
  230. 00:03:14,840 --> 00:03:15,880
  231. 有什麼樣的相關
  232.  
  233. 59
  234. 00:03:15,880 --> 00:03:21,320
  235. 好 那在這邊的話我們最主要我們談的
  236.  
  237. 60
  238. 00:03:21,320 --> 00:03:22,920
  239. 今天要談的是密碼學這件事情
  240.  
  241. 61
  242. 00:03:22,920 --> 00:03:24,680
  243. 那密碼學這件事情的話
  244.  
  245. 62
  246. 00:03:24,680 --> 00:03:27,080
  247. 簡單的來分類的話
  248.  
  249. 63
  250. 00:03:27,080 --> 00:03:29,640
  251. 它大概其實是幾種不同的目標
  252.  
  253. 64
  254. 00:03:29,640 --> 00:03:33,480
  255. 那這邊的話其實總共列了有五個黃色的格子
  256.  
  257. 65
  258. 00:03:33,480 --> 00:03:34,600
  259. 可是它其實只有四種
  260.  
  261. 66
  262. 00:03:34,600 --> 00:03:37,000
  263. 那一種一種開始講的話
  264.  
  265. 67
  266. 00:03:37,000 --> 00:03:39,080
  267. 那第一個我們會看到是左邊A這邊
  268.  
  269. 68
  270. 00:03:39,080 --> 00:03:42,040
  271. 它有它這邊有叫confidentiality
  272.  
  273. 69
  274. 00:03:42,040 --> 00:03:43,080
  275. 叫保密性
  276.  
  277. 70
  278. 00:03:43,080 --> 00:03:45,640
  279. 那並且它這邊是畫了一個圖
  280.  
  281. 71
  282. 00:03:45,640 --> 00:03:47,720
  283. 是說它有資料存在身上
  284.  
  285. 72
  286. 00:03:47,720 --> 00:03:50,920
  287. 那當然我們希望資料保密
  288.  
  289. 73
  290. 00:03:50,920 --> 00:03:53,720
  291. 但是這個保密它其實會分兩種情境
  292.  
  293. 74
  294. 00:03:53,720 --> 00:03:56,920
  295. 一種是說資料在靜態儲存的時候
  296.  
  297. 75
  298. 00:03:56,920 --> 00:03:58,280
  299. 我們希望它不會被偷走
  300.  
  301. 76
  302. 00:03:58,280 --> 00:04:00,840
  303. 希望不會有別人知道這個內容
  304.  
  305. 77
  306. 00:04:00,840 --> 00:04:04,040
  307. 那另外一種是說在傳輸的過程中
  308.  
  309. 78
  310. 00:04:04,040 --> 00:04:06,920
  311. 我們希望它也能夠保持隱密
  312.  
  313. 79
  314. 00:04:06,920 --> 00:04:11,240
  315. 就是不會有我們不想要的接收方去收到
  316.  
  317. 80
  318. 00:04:11,240 --> 00:04:15,000
  319. 所以它大概是說
  320.  
  321. 81
  322. 00:04:15,000 --> 00:04:18,760
  323. 如果你今天在傳輸訊息的過程中
  324.  
  325. 82
  326. 00:04:18,760 --> 00:04:20,520
  327. 你傳的是一個叫做plain text
  328.  
  329. 83
  330. 00:04:20,520 --> 00:04:22,040
  331. 像明文這樣的形式的話
  332.  
  333. 84
  334. 00:04:22,040 --> 00:04:24,360
  335. 那很容易當然很容易這個
  336.  
  337. 85
  338. 00:04:24,360 --> 00:04:27,480
  339. communication的通道就會被竊聽或被竊取
  340.  
  341. 86
  342. 00:04:27,480 --> 00:04:31,240
  343. 所以這個是保密性的這件事情
  344.  
  345. 87
  346. 00:04:31,240 --> 00:04:32,040
  347. 這個目標
  348.  
  349. 88
  350. 00:04:32,040 --> 00:04:33,960
  351. 那第二個我們看到的是
  352.  
  353. 89
  354. 00:04:34,040 --> 00:04:35,880
  355. 這邊寫的叫做data integrity
  356.  
  357. 90
  358. 00:04:35,880 --> 00:04:37,160
  359. 叫做資料完整性
  360.  
  361. 91
  362. 00:04:37,160 --> 00:04:38,760
  363. 那這個資料完整性的話
  364.  
  365. 92
  366. 00:04:38,760 --> 00:04:39,960
  367. 簡單的講是說
  368.  
  369. 93
  370. 00:04:39,960 --> 00:04:41,640
  371. 我要如何確定
  372.  
  373. 94
  374. 00:04:41,640 --> 00:04:45,800
  375. 我要如何確定我的訊息或是資料沒有被竄改
  376.  
  377. 95
  378. 00:04:45,800 --> 00:04:49,080
  379. 那沒有被竄改就表示它保持完整原樣
  380.  
  381. 96
  382. 00:04:49,080 --> 00:04:50,680
  383. 那這個的話
  384.  
  385. 97
  386. 00:04:50,680 --> 00:04:53,720
  387. 一個很簡單的例子是說
  388.  
  389. 98
  390. 00:04:53,720 --> 00:04:57,720
  391. 假設我們現在把我們自己電腦裡面的資料
  392.  
  393. 99
  394. 00:04:57,720 --> 00:05:00,200
  395. 然後去上傳到比方說雲端硬碟
  396.  
  397. 100
  398. 00:05:00,200 --> 00:05:01,640
  399. 那我們上傳
  400.  
  401. 101
  402. 00:05:01,640 --> 00:05:03,400
  403. 我們上傳了一段時間之後
  404.  
  405. 102
  406. 00:05:03,400 --> 00:05:05,960
  407. 過一陣子我們要再把它拿下來
  408.  
  409. 103
  410. 00:05:05,960 --> 00:05:08,040
  411. 那我們如何能夠知道說
  412.  
  413. 104
  414. 00:05:08,040 --> 00:05:09,800
  415. 我們拿下來的資料是正確的
  416.  
  417. 105
  418. 00:05:09,800 --> 00:05:11,320
  419. 沒有被改過的
  420.  
  421. 106
  422. 00:05:11,320 --> 00:05:13,160
  423. 這個是資料完整性的意思
  424.  
  425. 107
  426. 00:05:13,160 --> 00:05:17,080
  427. 那它所面臨的威脅就是說有可能
  428.  
  429. 108
  430. 00:05:17,080 --> 00:05:19,080
  431. 有可能在傳輸的過程中
  432.  
  433. 109
  434. 00:05:19,080 --> 00:05:22,360
  435. 然後有惡意的這個第三方會去偽造
  436.  
  437. 110
  438. 00:05:22,360 --> 00:05:24,920
  439. 或者是篡改這樣的訊息
  440.  
  441. 111
  442. 00:05:24,920 --> 00:05:27,400
  443. 第三個講到這邊是叫做authenticity
  444.  
  445. 112
  446. 00:05:27,400 --> 00:05:29,400
  447. 叫做認證性
  448.  
  449. 113
  450. 00:05:29,400 --> 00:05:33,320
  451. 那這個的話比較單純就是說
  452.  
  453. 114
  454. 00:05:33,320 --> 00:05:36,680
  455. 我們想要知道說這個溝通裡面會有訊息的
  456.  
  457. 115
  458. 00:05:36,680 --> 00:05:38,680
  459. 傳送方跟接收方
  460.  
  461. 116
  462. 00:05:38,680 --> 00:05:40,680
  463. 那傳送方要能夠知道
  464.  
  465. 117
  466. 00:05:40,680 --> 00:05:42,680
  467. 收到訊息的是正確的接收方
  468.  
  469. 118
  470. 00:05:42,680 --> 00:05:43,880
  471. 那反之亦然
  472.  
  473. 119
  474. 00:05:43,880 --> 00:05:47,000
  475. 就是說這個認證往往是一個雙向的過程
  476.  
  477. 120
  478. 00:05:47,000 --> 00:05:49,960
  479. 我傳訊息的人要知道收訊息的人是對的
  480.  
  481. 121
  482. 00:05:49,960 --> 00:05:52,760
  483. 那收訊息的人也要知道傳訊息的人是對的
  484.  
  485. 122
  486. 00:05:52,760 --> 00:05:53,800
  487. 這樣
  488.  
  489. 123
  490. 00:05:53,800 --> 00:05:57,400
  491. 那第四個講的叫做不可否認性
  492.  
  493. 124
  494. 00:05:57,400 --> 00:06:00,200
  495. 它指向的一種問題是
  496.  
  497. 125
  498. 00:06:00,200 --> 00:06:02,440
  499. 所謂像抵賴或者是否認
  500.  
  501. 126
  502. 00:06:02,440 --> 00:06:04,440
  503. 那具體來說的話是說
  504.  
  505. 127
  506. 00:06:04,440 --> 00:06:06,440
  507. 簡單來說比方說
  508.  
  509. 128
  510. 00:06:06,440 --> 00:06:10,440
  511. 有可能A跟B說要借錢
  512.  
  513. 129
  514. 00:06:10,440 --> 00:06:12,440
  515. 那過一陣子
  516.  
  517. 130
  518. 00:06:12,440 --> 00:06:15,240
  519. 然後A跟B說我沒有說過要跟你借錢
  520.  
  521. 131
  522. 00:06:15,240 --> 00:06:17,240
  523. 那這種情況下
  524.  
  525. 132
  526. 00:06:17,240 --> 00:06:19,240
  527. 以借錢這個例子的話
  528.  
  529. 133
  530. 00:06:19,240 --> 00:06:21,240
  531. 很容易聯想到說
  532.  
  533. 134
  534. 00:06:21,240 --> 00:06:23,240
  535. 我們要怎麼樣解決這個問題
  536.  
  537. 135
  538. 00:06:23,240 --> 00:06:25,240
  539. 其實就是要人家去押簽名
  540.  
  541. 136
  542. 00:06:25,240 --> 00:06:27,240
  543. 那在密碼學裡面也是類似這樣的做法
  544.  
  545. 137
  546. 00:06:27,240 --> 00:06:29,240
  547. 那就是會用一種叫數位簽章的方式
  548.  
  549. 138
  550. 00:06:29,240 --> 00:06:31,240
  551. 那基本上就是能夠確保
  552.  
  553. 139
  554. 00:06:31,240 --> 00:06:33,240
  555. 確保這個來源之外
  556.  
  557. 140
  558. 00:06:33,240 --> 00:06:35,240
  559. 那也要能夠確保
  560.  
  561. 141
  562. 00:06:35,240 --> 00:06:37,240
  563. 就是曾經說過什麼或做過什麼
  564.  
  565. 142
  566. 00:06:37,240 --> 00:06:39,240
  567. 所以其實在這邊不可否認性的話
  568.  
  569. 143
  570. 00:06:39,240 --> 00:06:41,240
  571. 可以把它想成類似
  572.  
  573. 144
  574. 00:06:41,240 --> 00:06:43,240
  575. 既符合認證性
  576.  
  577. 145
  578. 00:06:43,240 --> 00:06:45,240
  579. 那也符合資料完整性
  580.  
  581. 146
  582. 00:06:45,240 --> 00:06:47,240
  583. 這兩個都必須要具備
  584.  
  585. 147
  586. 00:06:47,240 --> 00:06:49,240
  587. 所以
  588.  
  589. 148
  590. 00:06:49,240 --> 00:06:51,240
  591. 簡單的情境來講大概是這樣子
  592.  
  593. 149
  594. 00:06:51,240 --> 00:06:53,240
  595. 那接下來的話我們會
  596.  
  597. 150
  598. 00:06:53,240 --> 00:06:55,240
  599. 再從各個裡面去
  600.  
  601. 151
  602. 00:06:55,240 --> 00:06:57,240
  603. 細節去看說
  604.  
  605. 152
  606. 00:06:57,240 --> 00:06:59,240
  607. 大概有什麼樣的做法
  608.  
  609. 153
  610. 00:07:01,240 --> 00:07:03,240
  611. 所以到目前到這邊有任何疑問嗎
  612.  
  613. 154
  614. 00:07:03,240 --> 00:07:11,240
  615. 那首先我們要
  616.  
  617. 155
  618. 00:07:11,240 --> 00:07:13,240
  619. 接下來我們就要看的是各個安全目標
  620.  
  621. 156
  622. 00:07:13,240 --> 00:07:15,240
  623. 那首先我們要看到的是
  624.  
  625. 157
  626. 00:07:15,240 --> 00:07:17,240
  627. 保密性
  628.  
  629. 158
  630. 00:07:17,240 --> 00:07:19,240
  631. 那保密性來講剛剛提過說我們不想要讓
  632.  
  633. 159
  634. 00:07:19,240 --> 00:07:21,240
  635. 訊息不想要讓資料洩漏出去
  636.  
  637. 160
  638. 00:07:21,240 --> 00:07:23,240
  639. 所以最直覺的做法
  640.  
  641. 161
  642. 00:07:23,240 --> 00:07:25,240
  643. 最直覺的做法就是我們要去做假名
  644.  
  645. 162
  646. 00:07:25,240 --> 00:07:27,240
  647. 好那所以以一個簡單的情境來講的話
  648.  
  649. 163
  650. 00:07:27,240 --> 00:07:29,240
  651. 好那所以以一個簡單的情境來講的話
  652.  
  653. 164
  654. 00:07:29,240 --> 00:07:31,240
  655. 好那所以以一個簡單的情境來講的話
  656.  
  657. 165
  658. 00:07:31,240 --> 00:07:33,240
  659. 好那所以以一個簡單的情境來講的話
  660.  
  661. 166
  662. 00:07:33,240 --> 00:07:35,240
  663. 那這個溝通往往是
  664.  
  665. 167
  666. 00:07:35,240 --> 00:07:37,240
  667. A傳送訊息經過一個通訊網路到B這邊
  668.  
  669. 168
  670. 00:07:37,240 --> 00:07:39,240
  671. 那
  672.  
  673. 169
  674. 00:07:39,240 --> 00:07:41,240
  675. 這個我們
  676.  
  677. 170
  678. 00:07:41,240 --> 00:07:43,240
  679. 我們首先要介紹的是對稱式的加密
  680.  
  681. 171
  682. 00:07:43,240 --> 00:07:45,240
  683. 對稱式的加密跟我們在
  684.  
  685. 172
  686. 00:07:45,240 --> 00:07:47,240
  687. 一開始提過的定義裡面
  688.  
  689. 173
  690. 00:07:47,240 --> 00:07:49,240
  691. 他跟那個AS的block還蠻像
  692.  
  693. 174
  694. 00:07:49,240 --> 00:07:51,240
  695. 就是說
  696.  
  697. 175
  698. 00:07:51,240 --> 00:07:53,240
  699. 他的重點是他是用同一把key來做加密
  700.  
  701. 176
  702. 00:07:53,240 --> 00:07:55,240
  703. 同一把key所以叫對稱
  704.  
  705. 177
  706. 00:07:55,240 --> 00:07:57,240
  707. 那這邊簡單的看一下他的流程
  708.  
  709. 178
  710. 00:07:57,240 --> 00:07:59,240
  711. 他的流程大概會是說
  712.  
  713. 179
  714. 00:07:59,240 --> 00:08:01,240
  715. A把本來要傳的
  716.  
  717. 180
  718. 00:08:01,240 --> 00:08:03,240
  719. 我們叫明文的這個plain text
  720.  
  721. 181
  722. 00:08:03,240 --> 00:08:05,240
  723. 然後經過一個鑰匙
  724.  
  725. 182
  726. 00:08:05,240 --> 00:08:07,240
  727. 然後加密變成這個有帶有鎖跟問號的方塊
  728.  
  729. 183
  730. 00:08:07,240 --> 00:08:09,240
  731. 我們叫他密文
  732.  
  733. 184
  734. 00:08:09,240 --> 00:08:11,240
  735. 那這個密文會傳過來到
  736.  
  737. 185
  738. 00:08:11,240 --> 00:08:13,240
  739. 就經過通訊網路
  740.  
  741. 186
  742. 00:08:13,240 --> 00:08:15,240
  743. 然後傳到B手上
  744.  
  745. 187
  746. 00:08:15,240 --> 00:08:17,240
  747. 那B呢因為他擁有
  748.  
  749. 188
  750. 00:08:17,240 --> 00:08:19,240
  751. 他擁有這把同樣的黃色鑰匙
  752.  
  753. 189
  754. 00:08:19,240 --> 00:08:21,240
  755. 所以他可以
  756.  
  757. 190
  758. 00:08:21,240 --> 00:08:23,240
  759. 把他還原回原本的這個明文
  760.  
  761. 191
  762. 00:08:23,240 --> 00:08:25,240
  763. 那至於
  764.  
  765. 192
  766. 00:08:25,240 --> 00:08:27,240
  767. 惡意的第三方X他手上沒有這把鑰匙的時候
  768.  
  769. 193
  770. 00:08:27,240 --> 00:08:29,240
  771. 他就
  772.  
  773. 194
  774. 00:08:29,240 --> 00:08:31,240
  775. 他就沒有辦法去解開這個密文
  776.  
  777. 195
  778. 00:08:31,240 --> 00:08:33,240
  779. 他的基本的概念是這樣
  780.  
  781. 196
  782. 00:08:33,240 --> 00:08:35,240
  783. 所以光從
  784.  
  785. 197
  786. 00:08:35,240 --> 00:08:37,240
  787. 剛剛的敘述應該已經可以知道說
  788.  
  789. 198
  790. 00:08:37,240 --> 00:08:39,240
  791. 這整件事情的這個安全性
  792.  
  793. 199
  794. 00:08:39,240 --> 00:08:41,240
  795. 最主要是
  796.  
  797. 200
  798. 00:08:41,240 --> 00:08:43,240
  799. 建立在說你只要
  800.  
  801. 201
  802. 00:08:43,240 --> 00:08:45,240
  803. 沒有這把黃色的鑰匙你就沒有辦法
  804.  
  805. 202
  806. 00:08:45,240 --> 00:08:47,240
  807. 解讀這個訊息
  808.  
  809. 203
  810. 00:08:47,240 --> 00:08:49,240
  811. 他的安全性是建立在這個機制上面
  812.  
  813. 204
  814. 00:08:49,240 --> 00:08:51,240
  815. 那
  816.  
  817. 205
  818. 00:08:51,240 --> 00:08:53,240
  819. 對稱式的這種加密的方法
  820.  
  821. 206
  822. 00:08:53,240 --> 00:08:55,240
  823. 他一般來講有幾項特性
  824.  
  825. 207
  826. 00:08:55,240 --> 00:08:57,240
  827. 講得比較模糊一點的話就是
  828.  
  829. 208
  830. 00:08:57,240 --> 00:08:59,240
  831. 他算他速度很快
  832.  
  833. 209
  834. 00:08:59,240 --> 00:09:01,240
  835. 然後安全性也很高
  836.  
  837. 210
  838. 00:09:01,240 --> 00:09:03,240
  839. 那但是他有一個致命的缺陷
  840.  
  841. 211
  842. 00:09:03,240 --> 00:09:05,240
  843. 是他需要
  844.  
  845. 212
  846. 00:09:05,240 --> 00:09:07,240
  847. 這個金鑰傳遞
  848.  
  849. 213
  850. 00:09:07,240 --> 00:09:09,240
  851. 那金鑰傳遞的問題我們稍後會再提
  852.  
  853. 214
  854. 00:09:09,240 --> 00:09:13,240
  855. 那這邊
  856.  
  857. 215
  858. 00:09:13,240 --> 00:09:15,240
  859. 這邊我們用一個
  860.  
  861. 216
  862. 00:09:15,240 --> 00:09:17,240
  863. 就是很簡單的例子來看
  864.  
  865. 217
  866. 00:09:17,240 --> 00:09:19,240
  867. 對稱式加密這件事情
  868.  
  869. 218
  870. 00:09:19,240 --> 00:09:21,240
  871. 首先我們看到左邊
  872.  
  873. 219
  874. 00:09:21,240 --> 00:09:23,240
  875. 在做加密的時候
  876.  
  877. 220
  878. 00:09:23,240 --> 00:09:25,240
  879. 我們有訊息鑰匙跟密文
  880.  
  881. 221
  882. 00:09:25,240 --> 00:09:27,240
  883. 那這邊我們把它都用四個bit
  884.  
  885. 222
  886. 00:09:27,240 --> 00:09:29,240
  887. 然後用exclusive for
  888.  
  889. 223
  890. 00:09:29,240 --> 00:09:31,240
  891. 那exclusive for來講我們在這邊就是我們加密的函數
  892.  
  893. 224
  894. 00:09:31,240 --> 00:09:33,240
  895. 那我想這大家應該滿熟悉的
  896.  
  897. 225
  898. 00:09:33,240 --> 00:09:35,240
  899. 就是說這邊有他的真值表
  900.  
  901. 226
  902. 00:09:35,240 --> 00:09:37,240
  903. 然後跟我們要怎麼樣用
  904.  
  905. 227
  906. 00:09:37,240 --> 00:09:39,240
  907. 這個exclusive for來做加密跟解密
  908.  
  909. 228
  910. 00:09:39,240 --> 00:09:41,240
  911. 那他的原理
  912.  
  913. 229
  914. 00:09:41,240 --> 00:09:43,240
  915. 主要是說
  916.  
  917. 230
  918. 00:09:43,240 --> 00:09:45,240
  919. 我今天就他有交換率
  920.  
  921. 231
  922. 00:09:45,240 --> 00:09:47,240
  923. 跟結合率的關係
  924.  
  925. 232
  926. 00:09:47,240 --> 00:09:49,240
  927. 所以我今天把一個明文
  928.  
  929. 233
  930. 00:09:49,240 --> 00:09:51,240
  931. 然後加密過這一把
  932.  
  933. 234
  934. 00:09:51,240 --> 00:09:53,240
  935. 經過這一把鑰匙然後去做
  936.  
  937. 235
  938. 00:09:53,240 --> 00:09:55,240
  939. operate之後得到了這個密文1001
  940.  
  941. 236
  942. 00:09:55,240 --> 00:09:57,240
  943. 那在解密的時候
  944.  
  945. 237
  946. 00:09:57,240 --> 00:09:59,240
  947. 我一樣我把這個1001
  948.  
  949. 238
  950. 00:09:59,240 --> 00:10:01,240
  951. 再次對這個金鑰
  952.  
  953. 239
  954. 00:10:01,240 --> 00:10:03,240
  955. 做exclusive for的運算之後
  956.  
  957. 240
  958. 00:10:03,240 --> 00:10:05,240
  959. 得回來的會是原本的明文
  960.  
  961. 241
  962. 00:10:05,240 --> 00:10:07,240
  963. 他是一個簡單的概念
  964.  
  965. 242
  966. 00:10:07,240 --> 00:10:09,240
  967. 所以在這裡面的重點是說
  968.  
  969. 243
  970. 00:10:09,240 --> 00:10:11,240
  971. 第一個他用的這個加密的方法是exclusive for
  972.  
  973. 244
  974. 00:10:11,240 --> 00:10:13,240
  975. 那
  976.  
  977. 245
  978. 00:10:13,240 --> 00:10:15,240
  979. 另外就是他是依靠這個
  980.  
  981. 246
  982. 00:10:15,240 --> 00:10:17,240
  983. 同一把金鑰所以你沒有這把金鑰
  984.  
  985. 247
  986. 00:10:17,240 --> 00:10:19,240
  987. 你是沒有辦法解回訊息的
  988.  
  989. 248
  990. 00:10:19,240 --> 00:10:21,240
  991. 這是一個簡單的
  992.  
  993. 249
  994. 00:10:21,240 --> 00:10:23,240
  995. 簡單的範例就是對稱式演算法
  996.  
  997. 250
  998. 00:10:23,240 --> 00:10:25,240
  999. 大概是這麼樣做
  1000.  
  1001. 251
  1002. 00:10:25,240 --> 00:10:31,240
  1003. 好那
  1004.  
  1005. 252
  1006. 00:10:31,240 --> 00:10:33,240
  1007. 再來會補充一點就是
  1008.  
  1009. 253
  1010. 00:10:33,240 --> 00:10:35,240
  1011. 對稱式演算法對稱式加密
  1012.  
  1013. 254
  1014. 00:10:35,240 --> 00:10:37,240
  1015. 他的一些性質
  1016.  
  1017. 255
  1018. 00:10:37,240 --> 00:10:39,240
  1019. 像剛剛我們看到的exclusive for
  1020.  
  1021. 256
  1022. 00:10:39,240 --> 00:10:41,240
  1023. 來講的話他其實
  1024.  
  1025. 257
  1026. 00:10:41,240 --> 00:10:43,240
  1027. 他應該可以想像他的安全強度
  1028.  
  1029. 258
  1030. 00:10:43,240 --> 00:10:45,240
  1031. 相對算是蠻低的
  1032.  
  1033. 259
  1034. 00:10:45,240 --> 00:10:47,240
  1035. 因為還蠻容易破解的
  1036.  
  1037. 260
  1038. 00:10:47,240 --> 00:10:49,240
  1039. 那他之所以容易破解的其中一個主要的理由
  1040.  
  1041. 261
  1042. 00:10:49,240 --> 00:10:51,240
  1043. 是在於說他的運算來講
  1044.  
  1045. 262
  1046. 00:10:51,240 --> 00:10:53,240
  1047. 是比較是線性的
  1048.  
  1049. 263
  1050. 00:10:53,240 --> 00:10:55,240
  1051. 那所以一般而言
  1052.  
  1053. 264
  1054. 00:10:55,240 --> 00:10:57,240
  1055. 這種現在常用
  1056.  
  1057. 265
  1058. 00:10:57,240 --> 00:10:59,240
  1059. 就是合規定
  1060.  
  1061. 266
  1062. 00:10:59,240 --> 00:11:01,240
  1063. 夠安全的這種對稱式演算法
  1064.  
  1065. 267
  1066. 00:11:01,240 --> 00:11:03,240
  1067. 來講他通常會帶有幾種運算
  1068.  
  1069. 268
  1070. 00:11:03,240 --> 00:11:05,240
  1071. 像
  1072.  
  1073. 269
  1074. 00:11:05,240 --> 00:11:07,240
  1075. 他會帶的是這種
  1076.  
  1077. 270
  1078. 00:11:07,240 --> 00:11:09,240
  1079. 置換substitution
  1080.  
  1081. 271
  1082. 00:11:09,240 --> 00:11:11,240
  1083. 然後跟排列的這種運算
  1084.  
  1085. 272
  1086. 00:11:11,240 --> 00:11:13,240
  1087. 那排列
  1088.  
  1089. 273
  1090. 00:11:13,240 --> 00:11:15,240
  1091. 置換我想應該蠻容易理解
  1092.  
  1093. 274
  1094. 00:11:15,240 --> 00:11:17,240
  1095. 他其實完全就是一個非線性的
  1096.  
  1097. 275
  1098. 00:11:17,240 --> 00:11:19,240
  1099. 那排列的話不管你是怎麼樣排
  1100.  
  1101. 276
  1102. 00:11:19,240 --> 00:11:21,240
  1103. 你是重新排列
  1104.  
  1105. 277
  1106. 00:11:21,240 --> 00:11:23,240
  1107. 或是你是transpose
  1108.  
  1109. 278
  1110. 00:11:23,240 --> 00:11:25,240
  1111. 或是做怎麼樣的這種transposition
  1112.  
  1113. 279
  1114. 00:11:25,240 --> 00:11:27,240
  1115. 或是去做mapping來講
  1116.  
  1117. 280
  1118. 00:11:27,240 --> 00:11:29,240
  1119. 他其實某種程度上
  1120.  
  1121. 281
  1122. 00:11:29,240 --> 00:11:31,240
  1123. 只要是屬於排列的這種的行為
  1124.  
  1125. 282
  1126. 00:11:31,240 --> 00:11:33,240
  1127. 他都算是線性的
  1128.  
  1129. 283
  1130. 00:11:33,240 --> 00:11:35,240
  1131. 那線性的以運算來講
  1132.  
  1133. 284
  1134. 00:11:35,240 --> 00:11:37,240
  1135. 就等於說容易推倒
  1136.  
  1137. 285
  1138. 00:11:37,240 --> 00:11:39,240
  1139. 所以現在的
  1140.  
  1141. 286
  1142. 00:11:39,240 --> 00:11:41,240
  1143. 普遍會在使用的
  1144.  
  1145. 287
  1146. 00:11:41,240 --> 00:11:43,240
  1147. 對稱式加密的演算法
  1148.  
  1149. 288
  1150. 00:11:43,240 --> 00:11:45,240
  1151. 來講他的演算法的結構
  1152.  
  1153. 289
  1154. 00:11:45,240 --> 00:11:47,240
  1155. 通常都一定會帶有
  1156.  
  1157. 290
  1158. 00:11:47,240 --> 00:11:49,240
  1159. 至少一個非線性的運算
  1160.  
  1161. 291
  1162. 00:11:49,240 --> 00:11:51,240
  1163. 比方說以現在來講
  1164.  
  1165. 292
  1166. 00:11:51,240 --> 00:11:53,240
  1167. 最常用的是這個下面列的
  1168.  
  1169. 293
  1170. 00:11:53,240 --> 00:11:55,240
  1171. 這個AES
  1172.  
  1173. 294
  1174. 00:11:55,240 --> 00:11:57,240
  1175. 那AES的話熟的可能會知道說
  1176.  
  1177. 295
  1178. 00:11:57,240 --> 00:11:59,240
  1179. 他大概大致上算是有
  1180.  
  1181. 296
  1182. 00:11:59,240 --> 00:12:01,240
  1183. 四個transformation在做
  1184.  
  1185. 297
  1186. 00:12:01,240 --> 00:12:03,240
  1187. 那其中只有一個
  1188.  
  1189. 298
  1190. 00:12:03,240 --> 00:12:05,240
  1191. 是其中只有一個叫sub-by的
  1192.  
  1193. 299
  1194. 00:12:05,240 --> 00:12:07,240
  1195. 這個步驟是在做substitution
  1196.  
  1197. 300
  1198. 00:12:07,240 --> 00:12:09,240
  1199. 他是用類似查表
  1200.  
  1201. 301
  1202. 00:12:09,240 --> 00:12:11,240
  1203. 的方式然後去把值換掉
  1204.  
  1205. 302
  1206. 00:12:11,240 --> 00:12:13,240
  1207. 那其餘的都算是
  1208.  
  1209. 303
  1210. 00:12:13,240 --> 00:12:15,240
  1211. 線性的運算都是
  1212.  
  1213. 304
  1214. 00:12:15,240 --> 00:12:17,240
  1215. shift或是去做矩陣的
  1216.  
  1217. 305
  1218. 00:12:17,240 --> 00:12:19,240
  1219. 乘法這種類似是
  1220.  
  1221. 306
  1222. 00:12:19,240 --> 00:12:21,240
  1223. 比較是線性的運算
  1224.  
  1225. 307
  1226. 00:12:21,240 --> 00:12:23,240
  1227. 而且一般來講為了
  1228.  
  1229. 308
  1230. 00:12:23,240 --> 00:12:25,240
  1231. 就是也同樣要符合效率
  1232.  
  1233. 309
  1234. 00:12:25,240 --> 00:12:27,240
  1235. 所以其實只要有
  1236.  
  1237. 310
  1238. 00:12:27,240 --> 00:12:29,240
  1239. 一個非線性的運算他就算是
  1240.  
  1241. 311
  1242. 00:12:29,240 --> 00:12:31,240
  1243. 足夠安全那也因為
  1244.  
  1245. 312
  1246. 00:12:31,240 --> 00:12:33,240
  1247. 非線性的運算他需要的資源
  1248.  
  1249. 313
  1250. 00:12:33,240 --> 00:12:35,240
  1251. 的關係所以其實通常
  1252.  
  1253. 314
  1254. 00:12:35,240 --> 00:12:37,240
  1255. 通常在這個對稱式的
  1256.  
  1257. 315
  1258. 00:12:37,240 --> 00:12:39,240
  1259. 加密演算法裡面非對稱式的
  1260.  
  1261. 316
  1262. 00:12:39,240 --> 00:12:41,240
  1263. 運算也就只有
  1264.  
  1265. 317
  1266. 00:12:41,240 --> 00:12:43,240
  1267. 那麼一個其他都會是線性的排列
  1268.  
  1269. 318
  1270. 00:12:43,240 --> 00:12:45,240
  1271. 這樣
  1272.  
  1273. 319
  1274. 00:12:45,240 --> 00:12:47,240
  1275. 那下面這張表的話是列出說
  1276.  
  1277. 320
  1278. 00:12:47,240 --> 00:12:49,240
  1279. 目前最主要有在使用的
  1280.  
  1281. 321
  1282. 00:12:49,240 --> 00:12:51,240
  1283. 哪一些那你這邊可以看到的話
  1284.  
  1285. 322
  1286. 00:12:51,240 --> 00:12:53,240
  1287. 以前的
  1288.  
  1289. 323
  1290. 00:12:53,240 --> 00:12:55,240
  1291. 大概在1997
  1292.  
  1293. 324
  1294. 00:12:55,240 --> 00:12:57,240
  1295. 年以前在用的都是一種
  1296.  
  1297. 325
  1298. 00:12:57,240 --> 00:12:59,240
  1299. 叫做DES
  1300.  
  1301. 326
  1302. 00:12:59,240 --> 00:13:01,240
  1303. 叫做Data Encryption Standard的一種
  1304.  
  1305. 327
  1306. 00:13:01,240 --> 00:13:03,240
  1307. 舊型的加密演算法
  1308.  
  1309. 328
  1310. 00:13:03,240 --> 00:13:05,240
  1311. 那到
  1312.  
  1313. 329
  1314. 00:13:05,240 --> 00:13:07,240
  1315. 接近1997年的時候因為他的
  1316.  
  1317. 330
  1318. 00:13:07,240 --> 00:13:09,240
  1319. 安全性已經開始下降所以那個時候
  1320.  
  1321. 331
  1322. 00:13:09,240 --> 00:13:11,240
  1323. 有去做比方說
  1324.  
  1325. 332
  1326. 00:13:11,240 --> 00:13:13,240
  1327. 把它變成
  1328.  
  1329. 333
  1330. 00:13:13,240 --> 00:13:15,240
  1331. triple dash就是說把它疊三次
  1332.  
  1333. 334
  1334. 00:13:15,240 --> 00:13:17,240
  1335. 然後可能中間用兩把不同的key
  1336.  
  1337. 335
  1338. 00:13:17,240 --> 00:13:19,240
  1339. 或是用三把不同的key這樣
  1340.  
  1341. 336
  1342. 00:13:19,240 --> 00:13:21,240
  1343. 那這些來講到現在都已經
  1344.  
  1345. 337
  1346. 00:13:21,240 --> 00:13:23,240
  1347. 非常勉強了
  1348.  
  1349. 338
  1350. 00:13:23,240 --> 00:13:25,240
  1351. 所以才會有開始從1997年
  1352.  
  1353. 339
  1354. 00:13:25,240 --> 00:13:27,240
  1355. 開始有現在的叫做AES
  1356.  
  1357. 340
  1358. 00:13:27,240 --> 00:13:29,240
  1359. 那DES叫做Data
  1360.  
  1361. 341
  1362. 00:13:29,240 --> 00:13:31,240
  1363. Encryption Standard那AES的那個A
  1364.  
  1365. 342
  1366. 00:13:31,240 --> 00:13:33,240
  1367. 叫Advanced就是進階加密標準
  1368.  
  1369. 343
  1370. 00:13:33,240 --> 00:13:35,240
  1371. 如果去查那個AES的話通常會
  1372.  
  1373. 344
  1374. 00:13:35,240 --> 00:13:37,240
  1375. 查到這樣的翻譯
  1376.  
  1377. 345
  1378. 00:13:37,240 --> 00:13:39,240
  1379. 那所以這邊列的主要的
  1380.  
  1381. 346
  1382. 00:13:39,240 --> 00:13:41,240
  1383. 主要的另外一個可以補充的是說
  1384.  
  1385. 347
  1386. 00:13:41,240 --> 00:13:43,240
  1387. 這邊可以看到是在
  1388.  
  1389. 348
  1390. 00:13:43,240 --> 00:13:45,240
  1391. two key的triple dash的
  1392.  
  1393. 349
  1394. 00:13:45,240 --> 00:13:47,240
  1395. 使用情境裡面他已經不被
  1396.  
  1397. 350
  1398. 00:13:47,240 --> 00:13:49,240
  1399. 允許做加密但是
  1400.  
  1401. 351
  1402. 00:13:49,240 --> 00:13:51,240
  1403. 可以在legacy user
  1404.  
  1405. 352
  1406. 00:13:51,240 --> 00:13:53,240
  1407. 場合下去做解密
  1408.  
  1409. 353
  1410. 00:13:53,240 --> 00:13:55,240
  1411. 那這個就跟我們一般很常會
  1412.  
  1413. 354
  1414. 00:13:55,240 --> 00:13:57,240
  1415. 遇到的狀況一樣就是說你
  1416.  
  1417. 355
  1418. 00:13:57,240 --> 00:13:59,240
  1419. 可能以前出的產品已經
  1420.  
  1421. 356
  1422. 00:13:59,240 --> 00:14:01,240
  1423. deploy到fuel裡面
  1424.  
  1425. 357
  1426. 00:14:01,240 --> 00:14:03,240
  1427. 那你後面再出的時候他必須
  1428.  
  1429. 358
  1430. 00:14:03,240 --> 00:14:05,240
  1431. 至少要能夠解讀
  1432.  
  1433. 359
  1434. 00:14:05,240 --> 00:14:07,240
  1435. 當初前一代產品用
  1436.  
  1437. 360
  1438. 00:14:07,240 --> 00:14:09,240
  1439. two key triple dash所加密的訊息
  1440.  
  1441. 361
  1442. 00:14:09,240 --> 00:14:11,240
  1443. 他至少要能夠解讀
  1444.  
  1445. 362
  1446. 00:14:11,240 --> 00:14:13,240
  1447. 但是因為安全性的問題他已經
  1448.  
  1449. 363
  1450. 00:14:13,240 --> 00:14:15,240
  1451. 不再容許用同樣舊的
  1452.  
  1453. 364
  1454. 00:14:15,240 --> 00:14:17,240
  1455. 方法去做加密
  1456.  
  1457. 365
  1458. 00:14:17,240 --> 00:14:19,240
  1459. 這個大概的概念
  1460.  
  1461. 366
  1462. 00:14:19,240 --> 00:14:21,240
  1463. 大概的概念是這樣
  1464.  
  1465. 367
  1466. 00:14:21,240 --> 00:14:23,240
  1467. 那所以現在來講
  1468.  
  1469. 368
  1470. 00:14:23,240 --> 00:14:25,240
  1471. 最流行然後最常被使用的
  1472.  
  1473. 369
  1474. 00:14:25,240 --> 00:14:27,240
  1475. 是這邊列的
  1476.  
  1477. 370
  1478. 00:14:27,240 --> 00:14:29,240
  1479. 最下面這一列
  1480.  
  1481. 371
  1482. 00:14:29,240 --> 00:14:31,240
  1483. AES的128或是192或是256
  1484.  
  1485. 372
  1486. 00:14:31,240 --> 00:14:33,240
  1487. 那這個數字的話
  1488.  
  1489. 373
  1490. 00:14:33,240 --> 00:14:35,240
  1491. 可能大家大概有個
  1492.  
  1493. 374
  1494. 00:14:35,240 --> 00:14:37,240
  1495. 印象就好就是說
  1496.  
  1497. 375
  1498. 00:14:37,240 --> 00:14:39,240
  1499. 他是以一個區塊一個區塊來做加密
  1500.  
  1501. 376
  1502. 00:14:39,240 --> 00:14:41,240
  1503. 所以你不管你的輸入多長
  1504.  
  1505. 377
  1506. 00:14:41,240 --> 00:14:43,240
  1507. 他都是照這樣的數字去切分他
  1508.  
  1509. 378
  1510. 00:14:43,240 --> 00:14:45,240
  1511. 一個block一個block來做加密
  1512.  
  1513. 379
  1514. 00:14:45,240 --> 00:14:49,240
  1515. 那到這邊
  1516.  
  1517. 380
  1518. 00:14:49,240 --> 00:14:51,240
  1519. 有任何問題嗎
  1520.  
  1521. 381
  1522. 00:14:53,240 --> 00:14:55,240
  1523. 好
  1524.  
  1525. 382
  1526. 00:14:55,240 --> 00:14:57,240
  1527. 好
  1528.  
  1529. 383
  1530. 00:14:57,240 --> 00:14:59,240
  1531. 那
  1532.  
  1533. 384
  1534. 00:14:59,240 --> 00:15:01,240
  1535. 再來繼續講到的是
  1536.  
  1537. 385
  1538. 00:15:01,240 --> 00:15:03,240
  1539. 在我們
  1540.  
  1541. 386
  1542. 00:15:03,240 --> 00:15:05,240
  1543. 講到加密的時候他是有另外一種
  1544.  
  1545. 387
  1546. 00:15:05,240 --> 00:15:07,240
  1547. 做法叫做有對稱就有
  1548.  
  1549. 388
  1550. 00:15:07,240 --> 00:15:09,240
  1551. 非對稱那這邊講的是非對稱式的
  1552.  
  1553. 389
  1554. 00:15:09,240 --> 00:15:11,240
  1555. 加密的做法
  1556.  
  1557. 390
  1558. 00:15:11,240 --> 00:15:13,240
  1559. 那他的流程
  1560.  
  1561. 391
  1562. 00:15:13,240 --> 00:15:15,240
  1563. 大概跟我們前面有看過
  1564.  
  1565. 392
  1566. 00:15:15,240 --> 00:15:17,240
  1567. 有兩種不同的鑰匙的情境
  1568.  
  1569. 393
  1570. 00:15:17,240 --> 00:15:19,240
  1571. 有私鑰跟公鑰的情境
  1572.  
  1573. 394
  1574. 00:15:19,240 --> 00:15:21,240
  1575. 那我們先
  1576.  
  1577. 395
  1578. 00:15:21,240 --> 00:15:23,240
  1579. 簡單的提一下他的流程
  1580.  
  1581. 396
  1582. 00:15:23,240 --> 00:15:25,240
  1583. 他的流程大概會是這樣
  1584.  
  1585. 397
  1586. 00:15:25,240 --> 00:15:27,240
  1587. 今天A要傳送訊息給B的時候
  1588.  
  1589. 398
  1590. 00:15:27,240 --> 00:15:29,240
  1591. 那特別要注意
  1592.  
  1593. 399
  1594. 00:15:29,240 --> 00:15:31,240
  1595. 有這兩把鑰匙
  1596.  
  1597. 400
  1598. 00:15:31,240 --> 00:15:33,240
  1599. 這邊列的P跟S
  1600.  
  1601. 401
  1602. 00:15:33,240 --> 00:15:35,240
  1603. 一樣是一把是私鑰
  1604.  
  1605. 402
  1606. 00:15:35,240 --> 00:15:37,240
  1607. 一把是公鑰
  1608.  
  1609. 403
  1610. 00:15:37,240 --> 00:15:39,240
  1611. 這兩把鑰匙都是訊息
  1612.  
  1613. 404
  1614. 00:15:39,240 --> 00:15:41,240
  1615. 接收方B的
  1616.  
  1617. 405
  1618. 00:15:41,240 --> 00:15:43,240
  1619. 這個很重要
  1620.  
  1621. 406
  1622. 00:15:43,240 --> 00:15:45,240
  1623. 那所以
  1624.  
  1625. 407
  1626. 00:15:45,240 --> 00:15:47,240
  1627. 有了這兩把鑰匙
  1628.  
  1629. 408
  1630. 00:15:47,240 --> 00:15:49,240
  1631. 然後怎麼做加密的溝通
  1632.  
  1633. 409
  1634. 00:15:49,240 --> 00:15:51,240
  1635. 那訊息傳送方
  1636.  
  1637. 410
  1638. 00:15:51,240 --> 00:15:53,240
  1639. A他會把
  1640.  
  1641. 411
  1642. 00:15:53,240 --> 00:15:55,240
  1643. 這個plain text
  1644.  
  1645. 412
  1646. 00:15:55,240 --> 00:15:57,240
  1647. 他會把他要傳送的訊息明文
  1648.  
  1649. 413
  1650. 00:15:57,240 --> 00:15:59,240
  1651. 然後用訊息接收方
  1652.  
  1653. 414
  1654. 00:15:59,240 --> 00:16:01,240
  1655. B這個人的公鑰
  1656.  
  1657. 415
  1658. 00:16:01,240 --> 00:16:03,240
  1659. 做加密
  1660.  
  1661. 416
  1662. 00:16:03,240 --> 00:16:05,240
  1663. 然後傳送這個
  1664.  
  1665. 417
  1666. 00:16:05,240 --> 00:16:07,240
  1667. 密文過來
  1668.  
  1669. 418
  1670. 00:16:07,240 --> 00:16:09,240
  1671. 收到這個訊息收到這個密文的
  1672.  
  1673. 419
  1674. 00:16:09,240 --> 00:16:11,240
  1675. 接收方B他會去用他自己
  1676.  
  1677. 420
  1678. 00:16:11,240 --> 00:16:13,240
  1679. 同樣是B這個人的
  1680.  
  1681. 421
  1682. 00:16:13,240 --> 00:16:15,240
  1683. 私鑰去做解密
  1684.  
  1685. 422
  1686. 00:16:15,240 --> 00:16:17,240
  1687. 來還原回這個原本的訊息
  1688.  
  1689. 423
  1690. 00:16:17,240 --> 00:16:21,240
  1691. 所以這個滿重要
  1692.  
  1693. 424
  1694. 00:16:21,240 --> 00:16:23,240
  1695. 就是說在這樣的情境裡面
  1696.  
  1697. 425
  1698. 00:16:23,240 --> 00:16:25,240
  1699. 在這樣溝通的情境裡面
  1700.  
  1701. 426
  1702. 00:16:25,240 --> 00:16:27,240
  1703. 這兩把key都是屬於
  1704.  
  1705. 427
  1706. 00:16:27,240 --> 00:16:29,240
  1707. 都是屬於訊息接收方B的
  1708.  
  1709. 428
  1710. 00:16:29,240 --> 00:16:31,240
  1711. 那
  1712.  
  1713. 429
  1714. 00:16:31,240 --> 00:16:33,240
  1715. 為什麼A有這把key可以用
  1716.  
  1717. 430
  1718. 00:16:33,240 --> 00:16:35,240
  1719. 因為顧名思義
  1720.  
  1721. 431
  1722. 00:16:35,240 --> 00:16:37,240
  1723. 他叫公鑰我們是希望他是能夠公開的
  1724.  
  1725. 432
  1726. 00:16:37,240 --> 00:16:39,240
  1727. 那但是
  1728.  
  1729. 433
  1730. 00:16:39,240 --> 00:16:41,240
  1731. 反過來講的話這把私鑰
  1732.  
  1733. 434
  1734. 00:16:41,240 --> 00:16:43,240
  1735. 是絕對不會出去是只有B才有的
  1736.  
  1737. 435
  1738. 00:16:43,240 --> 00:16:45,240
  1739. 非對稱式的
  1740.  
  1741. 436
  1742. 00:16:45,240 --> 00:16:47,240
  1743. 這個或是說公開
  1744.  
  1745. 437
  1746. 00:16:47,240 --> 00:16:49,240
  1747. 公開金鑰密碼學的這兩是一樣東西
  1748.  
  1749. 438
  1750. 00:16:49,240 --> 00:16:51,240
  1751. 公開金鑰密碼學的基礎
  1752.  
  1753. 439
  1754. 00:16:51,240 --> 00:16:53,240
  1755. 是建立在此公鑰可以
  1756.  
  1757. 440
  1758. 00:16:53,240 --> 00:16:55,240
  1759. 四散在外可是私鑰絕對
  1760.  
  1761. 441
  1762. 00:16:55,240 --> 00:16:57,240
  1763. 只有自己有
  1764.  
  1765. 442
  1766. 00:16:57,240 --> 00:16:59,240
  1767. 那
  1768.  
  1769. 443
  1770. 00:16:59,240 --> 00:17:01,240
  1771. 所以可以看到的是因為
  1772.  
  1773. 444
  1774. 00:17:01,240 --> 00:17:03,240
  1775. 公鑰可以四散在外所以
  1776.  
  1777. 445
  1778. 00:17:03,240 --> 00:17:05,240
  1779. 這樣的這樣的做法來講
  1780.  
  1781. 446
  1782. 00:17:05,240 --> 00:17:07,240
  1783. 的話他的特性是說
  1784.  
  1785. 447
  1786. 00:17:07,240 --> 00:17:09,240
  1787. 他不需要他不需要有
  1788.  
  1789. 448
  1790. 00:17:09,240 --> 00:17:11,240
  1791. 他不需要有一把事先就有一把
  1792.  
  1793. 449
  1794. 00:17:11,240 --> 00:17:13,240
  1795. 註冊好的兩個人都一樣的對稱
  1796.  
  1797. 450
  1798. 00:17:13,240 --> 00:17:15,240
  1799. 的金鑰
  1800.  
  1801. 451
  1802. 00:17:15,240 --> 00:17:17,240
  1803. 你只要需要溝通的時候然後
  1804.  
  1805. 452
  1806. 00:17:17,240 --> 00:17:19,240
  1807. 比方說我要傳訊息給給別人
  1808.  
  1809. 453
  1810. 00:17:19,240 --> 00:17:21,240
  1811. 的時候我只要能夠
  1812.  
  1813. 454
  1814. 00:17:21,240 --> 00:17:23,240
  1815. 隨意的取得他的公鑰
  1816.  
  1817. 455
  1818. 00:17:23,240 --> 00:17:25,240
  1819. 這個是合法的那我就能傳送訊息
  1820.  
  1821. 456
  1822. 00:17:25,240 --> 00:17:27,240
  1823. 給人家但是只有
  1824.  
  1825. 457
  1826. 00:17:27,240 --> 00:17:29,240
  1827. 他因為他擁有他自己的私鑰
  1828.  
  1829. 458
  1830. 00:17:29,240 --> 00:17:31,240
  1831. 所以他可以用他自己的私鑰
  1832.  
  1833. 459
  1834. 00:17:31,240 --> 00:17:33,240
  1835. 去解讀我傳給他的
  1836.  
  1837. 460
  1838. 00:17:33,240 --> 00:17:35,240
  1839. 這個加密過的訊息
  1840.  
  1841. 461
  1842. 00:17:35,240 --> 00:17:37,240
  1843. 那所以他的特性是說
  1844.  
  1845. 462
  1846. 00:17:37,240 --> 00:17:39,240
  1847. 他不需要有一把事先註冊好的
  1848.  
  1849. 463
  1850. 00:17:39,240 --> 00:17:41,240
  1851. 鑰匙
  1852.  
  1853. 464
  1854. 00:17:41,240 --> 00:17:43,240
  1855. 安全性也相對高
  1856.  
  1857. 465
  1858. 00:17:43,240 --> 00:17:45,240
  1859. 但是他
  1860.  
  1861. 466
  1862. 00:17:45,240 --> 00:17:47,240
  1863. 因為他用到的數學比較難
  1864.  
  1865. 467
  1866. 00:17:47,240 --> 00:17:49,240
  1867. 所以一般來講耗費的資源會比較多
  1868.  
  1869. 468
  1870. 00:17:49,240 --> 00:17:51,240
  1871. 運算速度會比較慢
  1872.  
  1873. 469
  1874. 00:17:51,240 --> 00:17:55,240
  1875. 那這邊的話就在
  1876.  
  1877. 470
  1878. 00:17:55,240 --> 00:17:57,240
  1879. 比較具體的補充
  1880.  
  1881. 471
  1882. 00:17:57,240 --> 00:17:59,240
  1883. 剛剛講到的例子
  1884.  
  1885. 472
  1886. 00:17:59,240 --> 00:18:01,240
  1887. 所以在
  1888.  
  1889. 473
  1890. 00:18:01,240 --> 00:18:03,240
  1891. 開始做這個溝通之前
  1892.  
  1893. 474
  1894. 00:18:03,240 --> 00:18:05,240
  1895. 會像我們前面的定義的
  1896.  
  1897. 475
  1898. 00:18:05,240 --> 00:18:07,240
  1899. 那一頁裡面有提到會先經過
  1900.  
  1901. 476
  1902. 00:18:07,240 --> 00:18:09,240
  1903. 由私鑰去產生公鑰的過程
  1904.  
  1905. 477
  1906. 00:18:09,240 --> 00:18:11,240
  1907. 那並且
  1908.  
  1909. 478
  1910. 00:18:11,240 --> 00:18:13,240
  1911. 這個私鑰一旦產生了
  1912.  
  1913. 479
  1914. 00:18:13,240 --> 00:18:15,240
  1915. 公鑰之後他們兩個就是成對的
  1916.  
  1917. 480
  1918. 00:18:15,240 --> 00:18:17,240
  1919. 就是每個人會有
  1920.  
  1921. 481
  1922. 00:18:17,240 --> 00:18:19,240
  1923. 每個人會有一對自己的私鑰
  1924.  
  1925. 482
  1926. 00:18:19,240 --> 00:18:21,240
  1927. 跟公鑰
  1928.  
  1929. 483
  1930. 00:18:21,240 --> 00:18:23,240
  1931. 所以一樣這個圖畫
  1932.  
  1933. 484
  1934. 00:18:23,240 --> 00:18:25,240
  1935. 是說不同的人要傳訊息
  1936.  
  1937. 485
  1938. 00:18:25,240 --> 00:18:27,240
  1939. 給同一個接收方
  1940.  
  1941. 486
  1942. 00:18:27,240 --> 00:18:29,240
  1943. 他們所用來加密訊息的這一把
  1944.  
  1945. 487
  1946. 00:18:29,240 --> 00:18:31,240
  1947. 這一把key通通都是同一把
  1948.  
  1949. 488
  1950. 00:18:31,240 --> 00:18:33,240
  1951. 因為他們用的是訊息
  1952.  
  1953. 489
  1954. 00:18:33,240 --> 00:18:35,240
  1955. 接收方的公鑰
  1956.  
  1957. 490
  1958. 00:18:35,240 --> 00:18:37,240
  1959. 那所以每個人要傳訊息
  1960.  
  1961. 491
  1962. 00:18:37,240 --> 00:18:39,240
  1963. 給這個接收方的時候他們都用訊息接收方的
  1964.  
  1965. 492
  1966. 00:18:39,240 --> 00:18:41,240
  1967. 這個公鑰來做加密
  1968.  
  1969. 493
  1970. 00:18:41,240 --> 00:18:43,240
  1971. 但是只有
  1972.  
  1973. 494
  1974. 00:18:43,240 --> 00:18:45,240
  1975. 只有接收方他自己擁有這個
  1976.  
  1977. 495
  1978. 00:18:45,240 --> 00:18:47,240
  1979. secret key的時候才可以去做解密
  1980.  
  1981. 496
  1982. 00:18:47,240 --> 00:18:49,240
  1983. 這個是他的
  1984.  
  1985. 497
  1986. 00:18:49,240 --> 00:18:51,240
  1987. 運作是這樣子運作
  1988.  
  1989. 498
  1990. 00:18:51,240 --> 00:18:53,240
  1991. 那比較好理解的
  1992.  
  1993. 499
  1994. 00:18:53,240 --> 00:18:55,240
  1995. 一種方式是可以把
  1996.  
  1997. 500
  1998. 00:18:55,240 --> 00:18:57,240
  1999. 可以把這個公鑰
  2000.  
  2001. 501
  2002. 00:18:57,240 --> 00:18:59,240
  2003. 這個事情想成是地址
  2004.  
  2005. 502
  2006. 00:18:59,240 --> 00:19:01,240
  2007. 或是信箱或是可能會在
  2008.  
  2009. 503
  2010. 00:19:01,240 --> 00:19:03,240
  2011. 家裡前面那種那個
  2012.  
  2013. 504
  2014. 00:19:03,240 --> 00:19:05,240
  2015. 信的那種郵箱
  2016.  
  2017. 505
  2018. 00:19:05,240 --> 00:19:07,240
  2019. 任何人都可以
  2020.  
  2021. 506
  2022. 00:19:07,240 --> 00:19:09,240
  2023. 知道要怎麼樣傳訊息
  2024.  
  2025. 507
  2026. 00:19:09,240 --> 00:19:11,240
  2027. 給這個郵箱的主人
  2028.  
  2029. 508
  2030. 00:19:11,240 --> 00:19:13,240
  2031. 但是郵箱你投進去
  2032.  
  2033. 509
  2034. 00:19:13,240 --> 00:19:15,240
  2035. 但是你打不開除非你有鑰匙
  2036.  
  2037. 510
  2038. 00:19:15,240 --> 00:19:17,240
  2039. 只有這個郵箱的主人
  2040.  
  2041. 511
  2042. 00:19:17,240 --> 00:19:19,240
  2043. 他有辦法打開這個郵箱
  2044.  
  2045. 512
  2046. 00:19:19,240 --> 00:19:21,240
  2047. 去看裡面的信
  2048.  
  2049. 513
  2050. 00:19:21,240 --> 00:19:23,240
  2051. 看裡面的訊息
  2052.  
  2053. 514
  2054. 00:19:23,240 --> 00:19:25,240
  2055. 私鑰跟公鑰的概念大概就是
  2056.  
  2057. 515
  2058. 00:19:25,240 --> 00:19:27,240
  2059. 公鑰就像是一個
  2060.  
  2061. 516
  2062. 00:19:27,240 --> 00:19:29,240
  2063. 像是一個地址或是一個
  2064.  
  2065. 517
  2066. 00:19:29,240 --> 00:19:31,240
  2067. 郵箱這樣子
  2068.  
  2069. 518
  2070. 00:19:31,240 --> 00:19:33,240
  2071. 更具體來說的話
  2072.  
  2073. 519
  2074. 00:19:33,240 --> 00:19:35,240
  2075. 現在常常在用的像是比特幣這種東西
  2076.  
  2077. 520
  2078. 00:19:35,240 --> 00:19:37,240
  2079. 比特幣他的帳號
  2080.  
  2081. 521
  2082. 00:19:37,240 --> 00:19:39,240
  2083. 他其實就是公鑰
  2084.  
  2085. 522
  2086. 00:19:39,240 --> 00:19:41,240
  2087. 所以
  2088.  
  2089. 523
  2090. 00:19:41,240 --> 00:19:43,240
  2091. 也蠻符合就是剛所謂公鑰
  2092.  
  2093. 524
  2094. 00:19:43,240 --> 00:19:45,240
  2095. 就像是地址任何人都可以傳過去
  2096.  
  2097. 525
  2098. 00:19:45,240 --> 00:19:47,240
  2099. 但是以比特幣來講
  2100.  
  2101. 526
  2102. 00:19:47,240 --> 00:19:49,240
  2103. 任何人都可以傳錢到你的地址
  2104.  
  2105. 527
  2106. 00:19:49,240 --> 00:19:51,240
  2107. 可是你要動裡面的錢
  2108.  
  2109. 528
  2110. 00:19:51,240 --> 00:19:53,240
  2111. 只有你有自己的那把鑰匙才能去動
  2112.  
  2113. 529
  2114. 00:19:53,240 --> 00:19:55,240
  2115. 他的概念大概是這樣
  2116.  
  2117. 530
  2118. 00:19:55,240 --> 00:19:59,240
  2119. 好那
  2120.  
  2121. 531
  2122. 00:19:59,240 --> 00:20:01,240
  2123. 再來是談這個
  2124.  
  2125. 532
  2126. 00:20:01,240 --> 00:20:03,240
  2127. 非對稱式的加密
  2128.  
  2129. 533
  2130. 00:20:03,240 --> 00:20:05,240
  2131. 非對稱式密碼學
  2132.  
  2133. 534
  2134. 00:20:05,240 --> 00:20:07,240
  2135. 的一些性質
  2136.  
  2137. 535
  2138. 00:20:07,240 --> 00:20:09,240
  2139. 首先要再釐清的是說
  2140.  
  2141. 536
  2142. 00:20:09,240 --> 00:20:11,240
  2143. 非對稱式的這種
  2144.  
  2145. 537
  2146. 00:20:11,240 --> 00:20:13,240
  2147. 就是有私鑰也有公鑰的
  2148.  
  2149. 538
  2150. 00:20:13,240 --> 00:20:15,240
  2151. 這種數學來講
  2152.  
  2153. 539
  2154. 00:20:15,240 --> 00:20:17,240
  2155. 他能夠做到的事情其實非常多種
  2156.  
  2157. 540
  2158. 00:20:17,240 --> 00:20:19,240
  2159. 絕對不只有
  2160.  
  2161. 541
  2162. 00:20:19,240 --> 00:20:21,240
  2163. 做加密這件事情
  2164.  
  2165. 542
  2166. 00:20:21,240 --> 00:20:23,240
  2167. 所以這邊大概列了
  2168.  
  2169. 543
  2170. 00:20:23,240 --> 00:20:25,240
  2171. 就是說他能夠去做什麼
  2172.  
  2173. 544
  2174. 00:20:25,240 --> 00:20:27,240
  2175. 他能夠去做加密解密
  2176.  
  2177. 545
  2178. 00:20:27,240 --> 00:20:29,240
  2179. 他能夠去做數位簽章
  2180.  
  2181. 546
  2182. 00:20:29,240 --> 00:20:31,240
  2183. 他也能夠去做金鑰交換
  2184.  
  2185. 547
  2186. 00:20:31,240 --> 00:20:33,240
  2187. 下面兩個後面會提
  2188.  
  2189. 548
  2190. 00:20:33,240 --> 00:20:35,240
  2191. 那這邊來講的話主要是
  2192.  
  2193. 549
  2194. 00:20:35,240 --> 00:20:37,240
  2195. 要先跟大家補充說
  2196.  
  2197. 550
  2198. 00:20:37,240 --> 00:20:39,240
  2199. 這種非對稱式的
  2200.  
  2201. 551
  2202. 00:20:39,240 --> 00:20:41,240
  2203. 數學他都是用一種叫做
  2204.  
  2205. 552
  2206. 00:20:41,240 --> 00:20:43,240
  2207. 他都是用
  2208.  
  2209. 553
  2210. 00:20:43,240 --> 00:20:45,240
  2211. 一種叫做Trapdoor One-Way Function
  2212.  
  2213. 554
  2214. 00:20:45,240 --> 00:20:47,240
  2215. 這個算是陷阱門
  2216.  
  2217. 555
  2218. 00:20:47,240 --> 00:20:49,240
  2219. 的這種函數
  2220.  
  2221. 556
  2222. 00:20:49,240 --> 00:20:51,240
  2223. 陷阱門什麼意思就是說
  2224.  
  2225. 557
  2226. 00:20:51,240 --> 00:20:53,240
  2227. 我們今天要做陷阱的時候我們會希望人家
  2228.  
  2229. 558
  2230. 00:20:53,240 --> 00:20:55,240
  2231. 容易掉入這個陷阱但是一
  2232.  
  2233. 559
  2234. 00:20:55,240 --> 00:20:57,240
  2235. 掉進去之後是沒有辦法反著出來的
  2236.  
  2237. 560
  2238. 00:20:57,240 --> 00:20:59,240
  2239. 這樣的概念
  2240.  
  2241. 561
  2242. 00:20:59,240 --> 00:21:01,240
  2243. 精神希望大家可以理解
  2244.  
  2245. 562
  2246. 00:21:01,240 --> 00:21:03,240
  2247. 那他的
  2248.  
  2249. 563
  2250. 00:21:03,240 --> 00:21:05,240
  2251. 具體來說就是說
  2252.  
  2253. 564
  2254. 00:21:05,240 --> 00:21:07,240
  2255. 今天我們有
  2256.  
  2257. 565
  2258. 00:21:07,240 --> 00:21:09,240
  2259. 這個要用非對稱式的這個
  2260.  
  2261. 566
  2262. 00:21:09,240 --> 00:21:11,240
  2263. 密碼學的時候我們都會有
  2264.  
  2265. 567
  2266. 00:21:11,240 --> 00:21:13,240
  2267. 先從私鑰去產生公鑰
  2268.  
  2269. 568
  2270. 00:21:13,240 --> 00:21:15,240
  2271. 那
  2272.  
  2273. 569
  2274. 00:21:15,240 --> 00:21:17,240
  2275. 同時我們剛剛也講過
  2276.  
  2277. 570
  2278. 00:21:17,240 --> 00:21:19,240
  2279. 公鑰是可以釋散在外的
  2280.  
  2281. 571
  2282. 00:21:19,240 --> 00:21:21,240
  2283. 為什麼他可以釋散在外
  2284.  
  2285. 572
  2286. 00:21:21,240 --> 00:21:23,240
  2287. 是因為我們有信心
  2288.  
  2289. 573
  2290. 00:21:23,240 --> 00:21:25,240
  2291. 依照他數學的原理
  2292.  
  2293. 574
  2294. 00:21:25,240 --> 00:21:27,240
  2295. 你今天有公鑰是沒有辦法
  2296.  
  2297. 575
  2298. 00:21:27,240 --> 00:21:29,240
  2299. 退回去私鑰
  2300.  
  2301. 576
  2302. 00:21:29,240 --> 00:21:31,240
  2303. 他的安全性完全就建立在這個基礎
  2304.  
  2305. 577
  2306. 00:21:31,240 --> 00:21:33,240
  2307. 之上
  2308.  
  2309. 578
  2310. 00:21:33,240 --> 00:21:35,240
  2311. 那
  2312.  
  2313. 579
  2314. 00:21:35,240 --> 00:21:37,240
  2315. 所以這邊介紹的是
  2316.  
  2317. 580
  2318. 00:21:37,240 --> 00:21:39,240
  2319. 他幾種不同功能的用法
  2320.  
  2321. 581
  2322. 00:21:39,240 --> 00:21:41,240
  2323. 以加解密而言的話
  2324.  
  2325. 582
  2326. 00:21:41,240 --> 00:21:43,240
  2327. 我們剛剛提過了我們會用公鑰去做
  2328.  
  2329. 583
  2330. 00:21:43,240 --> 00:21:45,240
  2331. 加密然後收訊息
  2332.  
  2333. 584
  2334. 00:21:45,240 --> 00:21:47,240
  2335. 的人用私鑰去做解密
  2336.  
  2337. 585
  2338. 00:21:47,240 --> 00:21:49,240
  2339. 這方向會不太一樣
  2340.  
  2341. 586
  2342. 00:21:49,240 --> 00:21:51,240
  2343. 那如果是以數位
  2344.  
  2345. 587
  2346. 00:21:51,240 --> 00:21:53,240
  2347. 簽章來講的話
  2348.  
  2349. 588
  2350. 00:21:53,240 --> 00:21:55,240
  2351. 那他會用私鑰去簽
  2352.  
  2353. 589
  2354. 00:21:55,240 --> 00:21:57,240
  2355. 然後大家可以用公鑰
  2356.  
  2357. 590
  2358. 00:21:57,240 --> 00:21:59,240
  2359. 去確認這個簽章
  2360.  
  2361. 591
  2362. 00:21:59,240 --> 00:22:01,240
  2363. 那另外
  2364.  
  2365. 592
  2366. 00:22:01,240 --> 00:22:03,240
  2367. 還有金鑰交換的這種功能
  2368.  
  2369. 593
  2370. 00:22:03,240 --> 00:22:05,240
  2371. 我們透過交換
  2372.  
  2373. 594
  2374. 00:22:05,240 --> 00:22:07,240
  2375. 我們透過交換這個公鑰
  2376.  
  2377. 595
  2378. 00:22:07,240 --> 00:22:09,240
  2379. 然後去想辦法
  2380.  
  2381. 596
  2382. 00:22:09,240 --> 00:22:11,240
  2383. 產生了一個一樣的一把
  2384.  
  2385. 597
  2386. 00:22:11,240 --> 00:22:13,240
  2387. 對稱的這個金鑰
  2388.  
  2389. 598
  2390. 00:22:13,240 --> 00:22:15,240
  2391. 所以這邊還沒有要
  2392.  
  2393. 599
  2394. 00:22:15,240 --> 00:22:17,240
  2395. 不希望這邊先搞亂大家
  2396.  
  2397. 600
  2398. 00:22:17,240 --> 00:22:19,240
  2399. 但是主要的重點是在於說
  2400.  
  2401. 601
  2402. 00:22:19,240 --> 00:22:21,240
  2403. 非對稱式的密碼學
  2404.  
  2405. 602
  2406. 00:22:21,240 --> 00:22:23,240
  2407. 密碼系統他是有非常非常多的用途
  2408.  
  2409. 603
  2410. 00:22:23,240 --> 00:22:25,240
  2411. 那我們剛剛提的
  2412.  
  2413. 604
  2414. 00:22:25,240 --> 00:22:27,240
  2415. 是先提的加解密的這一種
  2416.  
  2417. 605
  2418. 00:22:27,240 --> 00:22:29,240
  2419. 那後續我們會提到
  2420.  
  2421. 606
  2422. 00:22:29,240 --> 00:22:31,240
  2423. 其他的功能也很多都會跟
  2424.  
  2425. 607
  2426. 00:22:31,240 --> 00:22:33,240
  2427. 非對稱式的密碼學有關
  2428.  
  2429. 608
  2430. 00:22:33,240 --> 00:22:35,240
  2431. 那
  2432.  
  2433. 609
  2434. 00:22:35,240 --> 00:22:37,240
  2435. 一樣這邊有一張表整理現在會在用的東西
  2436.  
  2437. 610
  2438. 00:22:37,240 --> 00:22:39,240
  2439. 那整個非對稱式
  2440.  
  2441. 611
  2442. 00:22:39,240 --> 00:22:41,240
  2443. 密碼學的數學的原理
  2444.  
  2445. 612
  2446. 00:22:41,240 --> 00:22:43,240
  2447. 都是從這個Diffie-Hellman
  2448.  
  2449. 613
  2450. 00:22:43,240 --> 00:22:45,240
  2451. 這個演算法來的這是兩個姓氏
  2452.  
  2453. 614
  2454. 00:22:45,240 --> 00:22:47,240
  2455. 那他最剛開始
  2456.  
  2457. 615
  2458. 00:22:47,240 --> 00:22:49,240
  2459. 最剛開始被發明這是1975年的事情
  2460.  
  2461. 616
  2462. 00:22:49,240 --> 00:22:51,240
  2463. 那純粹
  2464.  
  2465. 617
  2466. 00:22:51,240 --> 00:22:53,240
  2467. 目的就是去做金鑰交換
  2468.  
  2469. 618
  2470. 00:22:53,240 --> 00:22:55,240
  2471. 金鑰交換是一切這個
  2472.  
  2473. 619
  2474. 00:22:55,240 --> 00:22:57,240
  2475. 非對稱式密碼學的基礎
  2476.  
  2477. 620
  2478. 00:22:57,240 --> 00:22:59,240
  2479. 所以大部分我們看到的
  2480.  
  2481. 621
  2482. 00:22:59,240 --> 00:23:01,240
  2483. 只要是非對稱式的演算法
  2484.  
  2485. 622
  2486. 00:23:01,240 --> 00:23:03,240
  2487. 只要是非對稱式演算法
  2488.  
  2489. 623
  2490. 00:23:03,240 --> 00:23:05,240
  2491. 通常都一定能夠做金鑰交換的功能
  2492.  
  2493. 624
  2494. 00:23:05,240 --> 00:23:07,240
  2495. 那我們現在
  2496.  
  2497. 625
  2498. 00:23:07,240 --> 00:23:09,240
  2499. 比較常在用的
  2500.  
  2501. 626
  2502. 00:23:09,240 --> 00:23:11,240
  2503. 像是這邊列的這個橢圓曲線
  2504.  
  2505. 627
  2506. 00:23:11,240 --> 00:23:13,240
  2507. 就跟我們前面定義裡面看到的
  2508.  
  2509. 628
  2510. 00:23:13,240 --> 00:23:15,240
  2511. 跟另外一種叫做
  2512.  
  2513. 629
  2514. 00:23:15,240 --> 00:23:17,240
  2515. RSA
  2516.  
  2517. 630
  2518. 00:23:17,240 --> 00:23:19,240
  2519. RSA來講它是比較
  2520.  
  2521. 631
  2522. 00:23:19,240 --> 00:23:21,240
  2523. 古老但比較龐大一點的東西
  2524.  
  2525. 632
  2526. 00:23:21,240 --> 00:23:23,240
  2527. 現在還會用但比較少
  2528.  
  2529. 633
  2530. 00:23:23,240 --> 00:23:25,240
  2531. 因為最主要是因為它的金鑰的長度
  2532.  
  2533. 634
  2534. 00:23:25,240 --> 00:23:27,240
  2535. 非常的長比較厚重
  2536.  
  2537. 635
  2538. 00:23:27,240 --> 00:23:29,240
  2539. 像這種東西可能會在哪裡
  2540.  
  2541. 636
  2542. 00:23:29,240 --> 00:23:31,240
  2543. 看到會在比方說
  2544.  
  2545. 637
  2546. 00:23:31,240 --> 00:23:33,240
  2547. 信用卡裡面的那一顆IC
  2548.  
  2549. 638
  2550. 00:23:33,240 --> 00:23:35,240
  2551. 它裡面就會有用
  2552.  
  2553. 639
  2554. 00:23:35,240 --> 00:23:37,240
  2555. RSA去做不管是做簽章
  2556.  
  2557. 640
  2558. 00:23:37,240 --> 00:23:39,240
  2559. 通常是做簽章的這種做法
  2560.  
  2561. 641
  2562. 00:23:39,240 --> 00:23:41,240
  2563. 是現在還有在用的
  2564.  
  2565. 642
  2566. 00:23:43,240 --> 00:23:45,240
  2567. 那所以剛剛也有提到過
  2568.  
  2569. 643
  2570. 00:23:45,240 --> 00:23:47,240
  2571. 我們提過比較模糊說
  2572.  
  2573. 644
  2574. 00:23:47,240 --> 00:23:49,240
  2575. 對稱式的加密算是安全
  2576.  
  2577. 645
  2578. 00:23:49,240 --> 00:23:51,240
  2579. 那非對稱式的加密也算安全
  2580.  
  2581. 646
  2582. 00:23:51,240 --> 00:23:53,240
  2583. 那具體來講有多安全的話
  2584.  
  2585. 647
  2586. 00:23:53,240 --> 00:23:55,240
  2587. 那這邊就有一張
  2588.  
  2589. 648
  2590. 00:23:55,240 --> 00:23:57,240
  2591. 對照表可以給大家參考
  2592.  
  2593. 649
  2594. 00:23:57,240 --> 00:23:59,240
  2595. 這個對照表是純粹是用
  2596.  
  2597. 650
  2598. 00:23:59,240 --> 00:24:01,240
  2599. 金鑰的長度
  2600.  
  2601. 651
  2602. 00:24:01,240 --> 00:24:03,240
  2603. 然後去
  2604.  
  2605. 652
  2606. 00:24:03,240 --> 00:24:05,240
  2607. equivalent to 它的
  2608.  
  2609. 653
  2610. 00:24:05,240 --> 00:24:07,240
  2611. 破解的難度
  2612.  
  2613. 654
  2614. 00:24:07,240 --> 00:24:09,240
  2615. 所以怎麼看就是說
  2616.  
  2617. 655
  2618. 00:24:09,240 --> 00:24:11,240
  2619. 比方說以我們前面講說
  2620.  
  2621. 656
  2622. 00:24:11,240 --> 00:24:13,240
  2623. 對稱式的演算法
  2624.  
  2625. 657
  2626. 00:24:13,240 --> 00:24:15,240
  2627. 比方說AES,然後我們可能在
  2628.  
  2629. 658
  2630. 00:24:15,240 --> 00:24:17,240
  2631. 128bit的時候
  2632.  
  2633. 659
  2634. 00:24:17,240 --> 00:24:19,240
  2635. 它的key長度128bit的時候
  2636.  
  2637. 660
  2638. 00:24:19,240 --> 00:24:21,240
  2639. 它相當於RSA的
  2640.  
  2641. 661
  2642. 00:24:21,240 --> 00:24:23,240
  2643. 3kbit的key長度
  2644.  
  2645. 662
  2646. 00:24:23,240 --> 00:24:25,240
  2647. 然後也相當於
  2648.  
  2649. 663
  2650. 00:24:25,240 --> 00:24:27,240
  2651. 這個橢圓曲線密碼學
  2652.  
  2653. 664
  2654. 00:24:27,240 --> 00:24:29,240
  2655. 差不多key長度為
  2656.  
  2657. 665
  2658. 00:24:29,240 --> 00:24:31,240
  2659. 256bit左右的強度
  2660.  
  2661. 666
  2662. 00:24:31,240 --> 00:24:33,240
  2663. 那
  2664.  
  2665. 667
  2666. 00:24:33,240 --> 00:24:35,240
  2667. 所以這樣大家
  2668.  
  2669. 668
  2670. 00:24:35,240 --> 00:24:37,240
  2671. 可以比較有概念說
  2672.  
  2673. 669
  2674. 00:24:37,240 --> 00:24:39,240
  2675. 為什麼RSA現在已經慢慢的在退流行
  2676.  
  2677. 670
  2678. 00:24:39,240 --> 00:24:41,240
  2679. 主要是因為它要能夠達到
  2680.  
  2681. 671
  2682. 00:24:41,240 --> 00:24:43,240
  2683. 同樣的強度,它所需要的
  2684.  
  2685. 672
  2686. 00:24:43,240 --> 00:24:45,240
  2687. 金鑰的長度很長
  2688.  
  2689. 673
  2690. 00:24:45,240 --> 00:24:47,240
  2691. 那很常是會卡在storage的問題
  2692.  
  2693. 674
  2694. 00:24:47,240 --> 00:24:49,240
  2695. 就是你反而
  2696.  
  2697. 675
  2698. 00:24:49,240 --> 00:24:51,240
  2699. 你裝置或是你晶片裡面
  2700.  
  2701. 676
  2702. 00:24:51,240 --> 00:24:53,240
  2703. 沒有那麼多的空間可以用來儲存
  2704.  
  2705. 677
  2706. 00:24:53,240 --> 00:24:55,240
  2707. 這個用途比較
  2708.  
  2709. 678
  2710. 00:24:55,240 --> 00:24:57,240
  2711. 單薄的這種演算法
  2712.  
  2713. 679
  2714. 00:24:57,240 --> 00:24:59,240
  2715. 的參數
  2716.  
  2717. 680
  2718. 00:24:59,240 --> 00:25:01,240
  2719. 那這中間的話
  2720.  
  2721. 681
  2722. 00:25:01,240 --> 00:25:03,240
  2723. 是
  2724.  
  2725. 682
  2726. 00:25:03,240 --> 00:25:05,240
  2727. 原始的這個Diffie-Hellman
  2728.  
  2729. 683
  2730. 00:25:05,240 --> 00:25:07,240
  2731. 跟由這個NIST
  2732.  
  2733. 684
  2734. 00:25:07,240 --> 00:25:09,240
  2735. 我們叫國家技術標準局
  2736.  
  2737. 685
  2738. 00:25:09,240 --> 00:25:11,240
  2739. 他們所發佈的一種比較基礎的
  2740.  
  2741. 686
  2742. 00:25:11,240 --> 00:25:13,240
  2743. 數位千張的算法
  2744.  
  2745. 687
  2746. 00:25:13,240 --> 00:25:15,240
  2747. 那這個當然是因為比較早期的東西
  2748.  
  2749. 688
  2750. 00:25:15,240 --> 00:25:17,240
  2751. 所以它所需要的這個份量又更大
  2752.  
  2753. 689
  2754. 00:25:17,240 --> 00:25:19,240
  2755. 所以
  2756.  
  2757. 690
  2758. 00:25:19,240 --> 00:25:21,240
  2759. 所以再回過頭來說
  2760.  
  2761. 691
  2762. 00:25:21,240 --> 00:25:23,240
  2763. 就是說雖然我們說
  2764.  
  2765. 692
  2766. 00:25:23,240 --> 00:25:25,240
  2767. 雖然你看,在這邊可以看到
  2768.  
  2769. 693
  2770. 00:25:25,240 --> 00:25:27,240
  2771. 對稱式的演算法
  2772.  
  2773. 694
  2774. 00:25:27,240 --> 00:25:29,240
  2775. 它好像是數字最小的
  2776.  
  2777. 695
  2778. 00:25:29,240 --> 00:25:31,240
  2779. 是,沒有錯,但是重點還是在於說
  2780.  
  2781. 696
  2782. 00:25:31,240 --> 00:25:33,240
  2783. 它有先天的缺陷
  2784.  
  2785. 697
  2786. 00:25:33,240 --> 00:25:35,240
  2787. 它會有金鑰傳遞的問題
  2788.  
  2789. 698
  2790. 00:25:37,240 --> 00:25:39,240
  2791. 接下來我們就要看
  2792.  
  2793. 699
  2794. 00:25:39,240 --> 00:25:41,240
  2795. 到底什麼樣叫金鑰傳遞的問題
  2796.  
  2797. 700
  2798. 00:25:41,240 --> 00:25:43,240
  2799. 我們都知道說
  2800.  
  2801. 701
  2802. 00:25:43,240 --> 00:25:45,240
  2803. 你要用對稱式的加密演算法的時候
  2804.  
  2805. 702
  2806. 00:25:45,240 --> 00:25:47,240
  2807. 你這個訊息的
  2808.  
  2809. 703
  2810. 00:25:47,240 --> 00:25:49,240
  2811. 傳送方跟接收方
  2812.  
  2813. 704
  2814. 00:25:49,240 --> 00:25:51,240
  2815. 兩邊必須要
  2816.  
  2817. 705
  2818. 00:25:51,240 --> 00:25:53,240
  2819. 持有同樣的一把鑰匙
  2820.  
  2821. 706
  2822. 00:25:53,240 --> 00:25:55,240
  2823. 那其中一方用這一把
  2824.  
  2825. 707
  2826. 00:25:55,240 --> 00:25:57,240
  2827. 鑰匙做加密
  2828.  
  2829. 708
  2830. 00:25:57,240 --> 00:25:59,240
  2831. 另外一方有同樣的鑰匙
  2832.  
  2833. 709
  2834. 00:25:59,240 --> 00:26:01,240
  2835. 他就可以用這一把鑰匙做解密
  2836.  
  2837. 710
  2838. 00:26:01,240 --> 00:26:03,240
  2839. 所以我們要initiate一個對話
  2840.  
  2841. 711
  2842. 00:26:03,240 --> 00:26:05,240
  2843. 它大概會發生什麼事
  2844.  
  2845. 712
  2846. 00:26:05,240 --> 00:26:07,240
  2847. 我們首先要做加密通訊
  2848.  
  2849. 713
  2850. 00:26:07,240 --> 00:26:09,240
  2851. 我們當然就要能夠去加密
  2852.  
  2853. 714
  2854. 00:26:09,240 --> 00:26:11,240
  2855. 這個訊息或是資料
  2856.  
  2857. 715
  2858. 00:26:11,240 --> 00:26:13,240
  2859. 為了要加密這個資料
  2860.  
  2861. 716
  2862. 00:26:13,240 --> 00:26:15,240
  2863. 我們會需要一把key
  2864.  
  2865. 717
  2866. 00:26:15,240 --> 00:26:17,240
  2867. 那為了要
  2868.  
  2869. 718
  2870. 00:26:17,240 --> 00:26:19,240
  2871. 但是我們要
  2872.  
  2873. 719
  2874. 00:26:19,240 --> 00:26:21,240
  2875. 如何由一方產生
  2876.  
  2877. 720
  2878. 00:26:21,240 --> 00:26:23,240
  2879. 這一把key之後,傳送到另外一方
  2880.  
  2881. 721
  2882. 00:26:23,240 --> 00:26:25,240
  2883. 最直覺的方法就是
  2884.  
  2885. 722
  2886. 00:26:25,240 --> 00:26:27,240
  2887. 把這一把key去做加密
  2888.  
  2889. 723
  2890. 00:26:27,240 --> 00:26:29,240
  2891. 要把這一把key做加密的時候
  2892.  
  2893. 724
  2894. 00:26:29,240 --> 00:26:31,240
  2895. 我們會需要另外一把key
  2896.  
  2897. 725
  2898. 00:26:31,240 --> 00:26:33,240
  2899. 所以從這邊開始
  2900.  
  2901. 726
  2902. 00:26:33,240 --> 00:26:35,240
  2903. 下面就是不斷地在循環
  2904.  
  2905. 727
  2906. 00:26:35,240 --> 00:26:37,240
  2907. 所以金鑰傳遞的問題的意思
  2908.  
  2909. 728
  2910. 00:26:37,240 --> 00:26:39,240
  2911. 是在這裡
  2912.  
  2913. 729
  2914. 00:26:39,240 --> 00:26:41,240
  2915. 除非你很確定
  2916.  
  2917. 730
  2918. 00:26:41,240 --> 00:26:43,240
  2919. 一開始就已經有兩把
  2920.  
  2921. 731
  2922. 00:26:43,240 --> 00:26:45,240
  2923. 中好的key在裡面
  2924.  
  2925. 732
  2926. 00:26:45,240 --> 00:26:47,240
  2927. 同樣的一把key
  2928.  
  2929. 733
  2930. 00:26:47,240 --> 00:26:49,240
  2931. 在訊息的傳送跟接收方
  2932.  
  2933. 734
  2934. 00:26:49,240 --> 00:26:51,240
  2935. 中好的裡面的話
  2936.  
  2937. 735
  2938. 00:26:51,240 --> 00:26:53,240
  2939. 不然在一開始沒有
  2940.  
  2941. 736
  2942. 00:26:53,240 --> 00:26:55,240
  2943. 共同的這一把金鑰的狀況下
  2944.  
  2945. 737
  2946. 00:26:55,240 --> 00:26:57,240
  2947. 一定會遇到這樣的問題
  2948.  
  2949. 738
  2950. 00:26:57,240 --> 00:26:59,240
  2951. 到底怎麼樣能夠安全地傳遞金鑰
  2952.  
  2953. 739
  2954. 00:26:59,240 --> 00:27:01,240
  2955. 以密碼學而言的話
  2956.  
  2957. 740
  2958. 00:27:01,240 --> 00:27:03,240
  2959. 解決這個問題
  2960.  
  2961. 741
  2962. 00:27:03,240 --> 00:27:05,240
  2963. 是有幾種方法
  2964.  
  2965. 742
  2966. 00:27:05,240 --> 00:27:07,240
  2967. 首先我們看的是第一種
  2968.  
  2969. 743
  2970. 00:27:07,240 --> 00:27:09,240
  2971. 第一種當然是
  2972.  
  2973. 744
  2974. 00:27:09,240 --> 00:27:11,240
  2975. 像我們剛剛講的
  2976.  
  2977. 745
  2978. 00:27:11,240 --> 00:27:13,240
  2979. 如果你在加密的時候
  2980.  
  2981. 746
  2982. 00:27:13,240 --> 00:27:15,240
  2983. 使用非對稱式的密碼學
  2984.  
  2985. 747
  2986. 00:27:15,240 --> 00:27:17,240
  2987. 也就是說我們剛剛提過那種
  2988.  
  2989. 748
  2990. 00:27:17,240 --> 00:27:19,240
  2991. 用訊息接收方的A要傳訊息給B
  2992.  
  2993. 749
  2994. 00:27:19,240 --> 00:27:21,240
  2995. 那A把訊息用
  2996.  
  2997. 750
  2998. 00:27:21,240 --> 00:27:23,240
  2999. B的公鑰做加密
  3000.  
  3001. 751
  3002. 00:27:23,240 --> 00:27:25,240
  3003. 並且讓B
  3004.  
  3005. 752
  3006. 00:27:25,240 --> 00:27:27,240
  3007. 用他自己的私鑰做解密
  3008.  
  3009. 753
  3010. 00:27:27,240 --> 00:27:29,240
  3011. 這個是絕對可以行得通
  3012.  
  3013. 754
  3014. 00:27:29,240 --> 00:27:31,240
  3015. 但是比較沒有效率
  3016.  
  3017. 755
  3018. 00:27:31,240 --> 00:27:33,240
  3019. 為什麼
  3020.  
  3021. 756
  3022. 00:27:33,240 --> 00:27:35,240
  3023. 因為最主要的問題是
  3024.  
  3025. 757
  3026. 00:27:35,240 --> 00:27:37,240
  3027. 前面有提過他數學比較難
  3028.  
  3029. 758
  3030. 00:27:37,240 --> 00:27:39,240
  3031. 運算比較慢
  3032.  
  3033. 759
  3034. 00:27:39,240 --> 00:27:41,240
  3035. 所以我們會盡可能的希望
  3036.  
  3037. 760
  3038. 00:27:41,240 --> 00:27:43,240
  3039. 能夠減少
  3040.  
  3041. 761
  3042. 00:27:43,240 --> 00:27:45,240
  3043. 這個非對稱式
  3044.  
  3045. 762
  3046. 00:27:45,240 --> 00:27:47,240
  3047. 加密的使用
  3048.  
  3049. 763
  3050. 00:27:47,240 --> 00:27:49,240
  3051. 就加密而言
  3052.  
  3053. 764
  3054. 00:27:49,240 --> 00:27:51,240
  3055. 我們絕對是希望能夠使用
  3056.  
  3057. 765
  3058. 00:27:51,240 --> 00:27:53,240
  3059. 對稱式加密又快又安全
  3060.  
  3061. 766
  3062. 00:27:53,240 --> 00:27:55,240
  3063. 是最好的
  3064.  
  3065. 767
  3066. 00:27:55,240 --> 00:27:57,240
  3067. 然後能夠解決那個傳遞金鑰的難題
  3068.  
  3069. 768
  3070. 00:27:57,240 --> 00:27:59,240
  3071. 之後
  3072.  
  3073. 769
  3074. 00:27:59,240 --> 00:28:01,240
  3075. 接下來我們在做
  3076.  
  3077. 770
  3078. 00:28:01,240 --> 00:28:03,240
  3079. 加密溝通的時候
  3080.  
  3081. 771
  3082. 00:28:03,240 --> 00:28:05,240
  3083. 都希望能夠用對稱式的
  3084.  
  3085. 772
  3086. 00:28:05,240 --> 00:28:07,240
  3087. 算法來做
  3088.  
  3089. 773
  3090. 00:28:07,240 --> 00:28:09,240
  3091. 所以
  3092.  
  3093. 774
  3094. 00:28:09,240 --> 00:28:11,240
  3095. 第一種解決方案
  3096.  
  3097. 775
  3098. 00:28:11,240 --> 00:28:13,240
  3099. 顯然是不太理想
  3100.  
  3101. 776
  3102. 00:28:13,240 --> 00:28:15,240
  3103. 就是說他要用到
  3104.  
  3105. 777
  3106. 00:28:15,240 --> 00:28:17,240
  3107. 比較耗費資源的
  3108.  
  3109. 778
  3110. 00:28:17,240 --> 00:28:19,240
  3111. 非對稱式的加密的做法
  3112.  
  3113. 779
  3114. 00:28:19,240 --> 00:28:21,240
  3115. 所以不推薦
  3116.  
  3117. 780
  3118. 00:28:21,240 --> 00:28:23,240
  3119. 再來還有第二種跟第三種
  3120.  
  3121. 781
  3122. 00:28:23,240 --> 00:28:25,240
  3123. 那
  3124.  
  3125. 782
  3126. 00:28:25,240 --> 00:28:33,240
  3127. 接下來的話
  3128.  
  3129. 783
  3130. 00:28:33,240 --> 00:28:35,240
  3131. 接下來的話
  3132.  
  3133. 784
  3134. 00:28:35,240 --> 00:28:37,240
  3135. 我們希望能夠把大家分成四組
  3136.  
  3137. 785
  3138. 00:28:37,240 --> 00:28:39,240
  3139. 然後讓大家去討論
  3140.  
  3141. 786
  3142. 00:28:39,240 --> 00:28:41,240
  3143. 然後推導看看
  3144.  
  3145. 787
  3146. 00:28:41,240 --> 00:28:43,240
  3147. 第二種解法 當然我會給一定程度的提示
  3148.  
  3149. 788
  3150. 00:28:43,240 --> 00:28:45,240
  3151. 那
  3152.  
  3153. 789
  3154. 00:28:45,240 --> 00:28:47,240
  3155. 主要是有奉命
  3156.  
  3157. 790
  3158. 00:28:47,240 --> 00:28:49,240
  3159. 要做exercise
  3160.  
  3161. 791
  3162. 00:28:49,240 --> 00:28:51,240
  3163. 所以大家多包涵
  3164.  
  3165. 792
  3166. 00:28:51,240 --> 00:28:53,240
  3167. 所以
  3168.  
  3169. 793
  3170. 00:28:53,240 --> 00:28:55,240
  3171. 分四組的話
  3172.  
  3173. 794
  3174. 00:28:55,240 --> 00:28:57,240
  3175. 白色椅子前後
  3176.  
  3177. 795
  3178. 00:28:57,240 --> 00:28:59,240
  3179. 是兩邊
  3180.  
  3181. 796
  3182. 00:28:59,240 --> 00:29:01,240
  3183. 所以現在如果大家都已經知道
  3184.  
  3185. 797
  3186. 00:29:01,240 --> 00:29:03,240
  3187. 自己屬於哪一組的話
  3188.  
  3189. 798
  3190. 00:29:03,240 --> 00:29:05,240
  3191. 那我這邊再把問題描述清楚一點
  3192.  
  3193. 799
  3194. 00:29:05,240 --> 00:29:07,240
  3195. 為了要
  3196.  
  3197. 800
  3198. 00:29:07,240 --> 00:29:09,240
  3199. 解決金鑰傳遞的問題
  3200.  
  3201. 801
  3202. 00:29:09,240 --> 00:29:11,240
  3203. 那我們剛剛提過
  3204.  
  3205. 802
  3206. 00:29:11,240 --> 00:29:13,240
  3207. 可能可以用現在上面所列的
  3208.  
  3209. 803
  3210. 00:29:13,240 --> 00:29:15,240
  3211. 現在上面所列的
  3212.  
  3213. 804
  3214. 00:29:15,240 --> 00:29:17,240
  3215. 你單純的用非對稱式的加密來做
  3216.  
  3217. 805
  3218. 00:29:17,240 --> 00:29:19,240
  3219. 但是不推薦
  3220.  
  3221. 806
  3222. 00:29:19,240 --> 00:29:21,240
  3223. 因為它比較厚重
  3224.  
  3225. 807
  3226. 00:29:21,240 --> 00:29:23,240
  3227. 那有沒有其他種方法
  3228.  
  3229. 808
  3230. 00:29:23,240 --> 00:29:25,240
  3231. 可以混合
  3232.  
  3233. 809
  3234. 00:29:25,240 --> 00:29:27,240
  3235. 非對稱式跟對稱式的使用
  3236.  
  3237. 810
  3238. 00:29:27,240 --> 00:29:29,240
  3239. 可以達到我們的目的
  3240.  
  3241. 811
  3242. 00:29:29,240 --> 00:29:31,240
  3243. 好
  3244.  
  3245. 812
  3246. 00:29:31,240 --> 00:29:33,240
  3247. 我再試著把題目說明清楚一點
  3248.  
  3249. 813
  3250. 00:29:33,240 --> 00:29:35,240
  3251. 就是說
  3252.  
  3253. 814
  3254. 00:29:35,240 --> 00:29:37,240
  3255. 為了要解決金鑰傳遞的問題
  3256.  
  3257. 815
  3258. 00:29:37,240 --> 00:29:39,240
  3259. 我們的目標
  3260.  
  3261. 816
  3262. 00:29:39,240 --> 00:29:41,240
  3263. 是希望溝通
  3264.  
  3265. 817
  3266. 00:29:41,240 --> 00:29:43,240
  3267. 能夠使用對稱式的密碼學演算法
  3268.  
  3269. 818
  3270. 00:29:43,240 --> 00:29:45,240
  3271. 來做溝通
  3272.  
  3273. 819
  3274. 00:29:45,240 --> 00:29:47,240
  3275. 可是那一把key要怎麼辦
  3276.  
  3277. 820
  3278. 00:29:47,240 --> 00:29:49,240
  3279. 因為一開始沒有
  3280.  
  3281. 821
  3282. 00:29:49,240 --> 00:29:51,240
  3283. 兩邊都有同樣的這一把key
  3284.  
  3285. 822
  3286. 00:29:51,240 --> 00:29:57,240
  3287. 希望大家可以稍微看看
  3288.  
  3289. 823
  3290. 00:29:57,240 --> 00:29:59,240
  3291. 中間的那一行
  3292.  
  3293. 824
  3294. 00:29:59,240 --> 00:30:01,240
  3295. 灰色的那個字
  3296.  
  3297. 825
  3298. 00:30:01,240 --> 00:30:03,240
  3299. 有哪一組還需要時間討論嗎
  3300.  
  3301. 826
  3302. 00:30:03,240 --> 00:30:07,240
  3303. 沒有
  3304.  
  3305. 827
  3306. 00:30:07,240 --> 00:30:13,240
  3307. 那有哪一組有人要自願嗎
  3308.  
  3309. 828
  3310. 00:30:15,240 --> 00:30:17,240
  3311. 點喔
  3312.  
  3313. 829
  3314. 00:30:17,240 --> 00:30:23,240
  3315. 那我們這一組的朋友
  3316.  
  3317. 830
  3318. 00:30:23,240 --> 00:30:25,240
  3319. 可以派一個代表回答嗎
  3320.  
  3321. 831
  3322. 00:30:25,240 --> 00:30:33,240
  3323. 用那個
  3324.  
  3325. 832
  3326. 00:30:33,240 --> 00:30:35,240
  3327. 非對稱式加密去加密你要傳輸的那把鑰匙
  3328.  
  3329. 833
  3330. 00:30:35,240 --> 00:30:37,240
  3331. 對
  3332.  
  3333. 834
  3334. 00:30:37,240 --> 00:30:39,240
  3335. 這樣至少
  3336.  
  3337. 835
  3338. 00:30:39,240 --> 00:30:41,240
  3339. 因為鑰匙的長度基本上遠小於
  3340.  
  3341. 836
  3342. 00:30:41,240 --> 00:30:43,240
  3343. 傳輸的長度
  3344.  
  3345. 837
  3346. 00:30:43,240 --> 00:30:45,240
  3347. 所以這樣的做法應該會有效的節省
  3348.  
  3349. 838
  3350. 00:30:45,240 --> 00:30:47,240
  3351. 你的運算資源
  3352.  
  3353. 839
  3354. 00:30:47,240 --> 00:30:49,240
  3355. 然後本身資料的部分還是用
  3356.  
  3357. 840
  3358. 00:30:49,240 --> 00:30:51,240
  3359. 對稱式加密加密就好
  3360.  
  3361. 841
  3362. 00:30:51,240 --> 00:30:59,240
  3363. 非常非常的
  3364.  
  3365. 842
  3366. 00:30:59,240 --> 00:31:01,240
  3367. 正確且詳細
  3368.  
  3369. 843
  3370. 00:31:01,240 --> 00:31:07,240
  3371. 本來應該要點第二組的可是被講完
  3372.  
  3373. 844
  3374. 00:31:09,240 --> 00:31:11,240
  3375. 蛤
  3376.  
  3377. 845
  3378. 00:31:11,240 --> 00:31:17,240
  3379. 得到了
  3380.  
  3381. 846
  3382. 00:31:17,240 --> 00:31:19,240
  3383. 大家的尊重
  3384.  
  3385. 847
  3386. 00:31:19,240 --> 00:31:25,240
  3387. 好
  3388.  
  3389. 848
  3390. 00:31:25,240 --> 00:31:27,240
  3391. 確實就是剛剛提的情境裡面
  3392.  
  3393. 849
  3394. 00:31:27,240 --> 00:31:29,240
  3395. 重點是在於說
  3396.  
  3397. 850
  3398. 00:31:29,240 --> 00:31:31,240
  3399. 最後在做加密
  3400.  
  3401. 851
  3402. 00:31:31,240 --> 00:31:33,240
  3403. 傳輸主要的溝通的
  3404.  
  3405. 852
  3406. 00:31:33,240 --> 00:31:35,240
  3407. 要加密訊息的時候
  3408.  
  3409. 853
  3410. 00:31:35,240 --> 00:31:37,240
  3411. 絕對是希望使用對稱式的演算法
  3412.  
  3413. 854
  3414. 00:31:37,240 --> 00:31:39,240
  3415. 是比較有效率的
  3416.  
  3417. 855
  3418. 00:31:39,240 --> 00:31:41,240
  3419. 但是我們為了要解決前面的這個
  3420.  
  3421. 856
  3422. 00:31:41,240 --> 00:31:43,240
  3423. 禁藥傳遞的問題
  3424.  
  3425. 857
  3426. 00:31:43,240 --> 00:31:45,240
  3427. 我們可以容許我們稍微的使用
  3428.  
  3429. 858
  3430. 00:31:45,240 --> 00:31:47,240
  3431. 非對稱式的
  3432.  
  3433. 859
  3434. 00:31:47,240 --> 00:31:49,240
  3435. 加密的方法來去加密
  3436.  
  3437. 860
  3438. 00:31:49,240 --> 00:31:51,240
  3439. 那一把禁藥
  3440.  
  3441. 861
  3442. 00:31:51,240 --> 00:31:53,240
  3443. 因為禁藥的長度絕對會是
  3444.  
  3445. 862
  3446. 00:31:53,240 --> 00:31:55,240
  3447. 比這個訊息還要短上很多
  3448.  
  3449. 863
  3450. 00:31:55,240 --> 00:31:57,240
  3451. 那所以這邊有列幾個圖示
  3452.  
  3453. 864
  3454. 00:31:57,240 --> 00:31:59,240
  3455. 就是說
  3456.  
  3457. 865
  3458. 00:31:59,240 --> 00:32:01,240
  3459. 首先我們希望
  3460.  
  3461. 866
  3462. 00:32:01,240 --> 00:32:03,240
  3463. 最後能夠使用這一把
  3464.  
  3465. 867
  3466. 00:32:03,240 --> 00:32:05,240
  3467. 這一把紅色的這個key
  3468.  
  3469. 868
  3470. 00:32:05,240 --> 00:32:07,240
  3471. 來當作對稱式的禁藥來做加密
  3472.  
  3473. 869
  3474. 00:32:07,240 --> 00:32:09,240
  3475. 所以一開始我們會要怎麼樣做
  3476.  
  3477. 870
  3478. 00:32:09,240 --> 00:32:11,240
  3479. 我們會把
  3480.  
  3481. 871
  3482. 00:32:11,240 --> 00:32:13,240
  3483. 沒錯就像剛剛這位同仁講
  3484.  
  3485. 872
  3486. 00:32:13,240 --> 00:32:15,240
  3487. 就是我們會把這個鑰匙當作是
  3488.  
  3489. 873
  3490. 00:32:15,240 --> 00:32:17,240
  3491. 當作是訊息
  3492.  
  3493. 874
  3494. 00:32:17,240 --> 00:32:19,240
  3495. 然後A
  3496.  
  3497. 875
  3498. 00:32:19,240 --> 00:32:21,240
  3499. 由這個用這個
  3500.  
  3501. 876
  3502. 00:32:21,240 --> 00:32:23,240
  3503. 接收方B的公藥做加密之後
  3504.  
  3505. 877
  3506. 00:32:23,240 --> 00:32:25,240
  3507. 然後傳送
  3508.  
  3509. 878
  3510. 00:32:25,240 --> 00:32:27,240
  3511. B用他的這個私藥去做解密
  3512.  
  3513. 879
  3514. 00:32:27,240 --> 00:32:29,240
  3515. 然後得到這一把紅色的鑰匙
  3516.  
  3517. 880
  3518. 00:32:29,240 --> 00:32:31,240
  3519. 接下來的溝通的話
  3520.  
  3521. 881
  3522. 00:32:31,240 --> 00:32:33,240
  3523. 就會是
  3524.  
  3525. 882
  3526. 00:32:33,240 --> 00:32:35,240
  3527. A B雙方是用這一把已經傳過來
  3528.  
  3529. 883
  3530. 00:32:35,240 --> 00:32:37,240
  3531. 並且解回去的這一把紅色的鑰匙
  3532.  
  3533. 884
  3534. 00:32:37,240 --> 00:32:39,240
  3535. 來做訊息的加密
  3536.  
  3537. 885
  3538. 00:32:39,240 --> 00:32:41,240
  3539. 所以這是
  3540.  
  3541. 886
  3542. 00:32:41,240 --> 00:32:43,240
  3543. 簡化的圖示
  3544.  
  3545. 887
  3546. 00:32:43,240 --> 00:32:45,240
  3547. 那所以
  3548.  
  3549. 888
  3550. 00:32:45,240 --> 00:32:47,240
  3551. 對幾個重點就是說
  3552.  
  3553. 889
  3554. 00:32:47,240 --> 00:32:49,240
  3555. 非對稱式的加密不是不能用
  3556.  
  3557. 890
  3558. 00:32:49,240 --> 00:32:51,240
  3559. 而是要小心使用
  3560.  
  3561. 891
  3562. 00:32:51,240 --> 00:32:53,240
  3563. 因為我們不希望大量的用它
  3564.  
  3565. 892
  3566. 00:32:53,240 --> 00:32:55,240
  3567. 然後它會運算的時間比較久
  3568.  
  3569. 893
  3570. 00:32:55,240 --> 00:32:57,240
  3571. 或是耗比較多資源
  3572.  
  3573. 894
  3574. 00:32:59,240 --> 00:33:01,240
  3575. 好那接下來的話
  3576.  
  3577. 895
  3578. 00:33:01,240 --> 00:33:03,240
  3579. 我們下一個要提的是資料完整性
  3580.  
  3581. 896
  3582. 00:33:03,240 --> 00:33:05,240
  3583. 然後資料完整性的話
  3584.  
  3585. 897
  3586. 00:33:05,240 --> 00:33:07,240
  3587. 像我們前面定義裡面有看到
  3588.  
  3589. 898
  3590. 00:33:07,240 --> 00:33:09,240
  3591. 一個果汁機
  3592.  
  3593. 899
  3594. 00:33:09,240 --> 00:33:11,240
  3595. 我們通常會使用雜湊函數
  3596.  
  3597. 900
  3598. 00:33:11,240 --> 00:33:13,240
  3599. 來做這個資料完整性
  3600.  
  3601. 901
  3602. 00:33:13,240 --> 00:33:15,240
  3603. 那首先雜湊函數的話
  3604.  
  3605. 902
  3606. 00:33:15,240 --> 00:33:17,240
  3607. 大家可能也熟悉
  3608.  
  3609. 903
  3610. 00:33:17,240 --> 00:33:19,240
  3611. 那它的重點跟我們剛剛提過一樣
  3612.  
  3613. 904
  3614. 00:33:19,240 --> 00:33:21,240
  3615. 是說它是有
  3616.  
  3617. 905
  3618. 00:33:21,240 --> 00:33:23,240
  3619. 它會有任意長度的
  3620.  
  3621. 906
  3622. 00:33:23,240 --> 00:33:25,240
  3623. 輸入
  3624.  
  3625. 907
  3626. 00:33:25,240 --> 00:33:27,240
  3627. 把它進到這個hash function之後
  3628.  
  3629. 908
  3630. 00:33:27,240 --> 00:33:29,240
  3631. 它會轉成固定長度的輸出
  3632.  
  3633. 909
  3634. 00:33:29,240 --> 00:33:33,240
  3635. 任意長度的輸入
  3636.  
  3637. 910
  3638. 00:33:33,240 --> 00:33:35,240
  3639. 進果汁機之後出來
  3640.  
  3641. 911
  3642. 00:33:35,240 --> 00:33:37,240
  3643. 變成固定長度的輸出
  3644.  
  3645. 912
  3646. 00:33:37,240 --> 00:33:39,240
  3647. 所以我們一般習慣叫這個
  3648.  
  3649. 913
  3650. 00:33:39,240 --> 00:33:41,240
  3651. 它出來的這個output叫做digest
  3652.  
  3653. 914
  3654. 00:33:41,240 --> 00:33:43,240
  3655. 就是像摘要一樣
  3656.  
  3657. 915
  3658. 00:33:43,240 --> 00:33:45,240
  3659. 就是訊息摘要
  3660.  
  3661. 916
  3662. 00:33:45,240 --> 00:33:47,240
  3663. 但這個摘要並不包含它任何字面的
  3664.  
  3665. 917
  3666. 00:33:47,240 --> 00:33:49,240
  3667. 就是並不包含這個訊息任何字面的意思
  3668.  
  3669. 918
  3670. 00:33:49,240 --> 00:33:51,240
  3671. 而是就是一串
  3672.  
  3673. 919
  3674. 00:33:51,240 --> 00:33:53,240
  3675. 一串hash value
  3676.  
  3677. 920
  3678. 00:33:53,240 --> 00:33:55,240
  3679. 通常都是hash
  3680.  
  3681. 921
  3682. 00:33:55,240 --> 00:33:57,240
  3683. 那這樣的
  3684.  
  3685. 922
  3686. 00:33:57,240 --> 00:33:59,240
  3687. 這個雜湊函數
  3688.  
  3689. 923
  3690. 00:33:59,240 --> 00:34:01,240
  3691. 它就有幾個性質
  3692.  
  3693. 924
  3694. 00:34:01,240 --> 00:34:03,240
  3695. 那我們一個一個看
  3696.  
  3697. 925
  3698. 00:34:03,240 --> 00:34:05,240
  3699. 那首先來講
  3700.  
  3701. 926
  3702. 00:34:05,240 --> 00:34:07,240
  3703. 就是剛剛這個很重要的任意長度的這件事情
  3704.  
  3705. 927
  3706. 00:34:07,240 --> 00:34:09,240
  3707. 那依據
  3708.  
  3709. 928
  3710. 00:34:09,240 --> 00:34:11,240
  3711. 你所使用的雜湊函數的不同
  3712.  
  3713. 929
  3714. 00:34:11,240 --> 00:34:13,240
  3715. 那它的輸出的長度也會不同
  3716.  
  3717. 930
  3718. 00:34:13,240 --> 00:34:15,240
  3719. 可能
  3720.  
  3721. 931
  3722. 00:34:15,240 --> 00:34:17,240
  3723. 短的可能128
  3724.  
  3725. 932
  3726. 00:34:17,240 --> 00:34:19,240
  3727. 或64
  3728.  
  3729. 933
  3730. 00:34:19,240 --> 00:34:21,240
  3731. 或是到一般比較常使用的256
  3732.  
  3733. 934
  3734. 00:34:21,240 --> 00:34:23,240
  3735. 或是更長的512這種
  3736.  
  3737. 935
  3738. 00:34:23,240 --> 00:34:25,240
  3739. 那但是不管怎麼樣
  3740.  
  3741. 936
  3742. 00:34:25,240 --> 00:34:27,240
  3743. 它都一定要能夠吃任意
  3744.  
  3745. 937
  3746. 00:34:27,240 --> 00:34:29,240
  3747. 任意長度的輸入
  3748.  
  3749. 938
  3750. 00:34:29,240 --> 00:34:31,240
  3751. 注意是任意而且沒有上限
  3752.  
  3753. 939
  3754. 00:34:31,240 --> 00:34:33,240
  3755. 那
  3756.  
  3757. 940
  3758. 00:34:33,240 --> 00:34:35,240
  3759. 所以這邊的圖示
  3760.  
  3761. 941
  3762. 00:34:35,240 --> 00:34:37,240
  3763. 大概就是這樣
  3764.  
  3765. 942
  3766. 00:34:37,240 --> 00:34:39,240
  3767. 你不管輸入的是很長的
  3768.  
  3769. 943
  3770. 00:34:39,240 --> 00:34:41,240
  3771. 或是很短的只有一個字母
  3772.  
  3773. 944
  3774. 00:34:41,240 --> 00:34:43,240
  3775. 甚至是空集合
  3776.  
  3777. 945
  3778. 00:34:43,240 --> 00:34:45,240
  3779. 甚至是你的input是空的
  3780.  
  3781. 946
  3782. 00:34:45,240 --> 00:34:47,240
  3783. 它都有辦法吐東西給你
  3784.  
  3785. 947
  3786. 00:34:47,240 --> 00:34:49,240
  3787. 它都有辦法吐出
  3788.  
  3789. 948
  3790. 00:34:49,240 --> 00:34:51,240
  3791. 固定長度的摘要給你
  3792.  
  3793. 949
  3794. 00:34:51,240 --> 00:34:53,240
  3795. 那這是比較極端的例子
  3796.  
  3797. 950
  3798. 00:34:53,240 --> 00:34:55,240
  3799. 但是它必須要能夠做到這件事情
  3800.  
  3801. 951
  3802. 00:34:55,240 --> 00:34:57,240
  3803. 這是第一個性質
  3804.  
  3805. 952
  3806. 00:34:57,240 --> 00:34:59,240
  3807. 就是它任意長度
  3808.  
  3809. 953
  3810. 00:34:59,240 --> 00:35:01,240
  3811. 那第二個性質這邊講的是說
  3812.  
  3813. 954
  3814. 00:35:01,240 --> 00:35:03,240
  3815. 只要
  3816.  
  3817. 955
  3818. 00:35:03,240 --> 00:35:05,240
  3819. 你的這個
  3820.  
  3821. 956
  3822. 00:35:05,240 --> 00:35:07,240
  3823. 只要你的輸入是一樣的
  3824.  
  3825. 957
  3826. 00:35:07,240 --> 00:35:09,240
  3827. 那
  3828.  
  3829. 958
  3830. 00:35:09,240 --> 00:35:11,240
  3831. 你的輸出就會要一模一樣
  3832.  
  3833. 959
  3834. 00:35:11,240 --> 00:35:13,240
  3835. 任意長度
  3836.  
  3837. 960
  3838. 00:35:13,240 --> 00:35:15,240
  3839. 所以搭配前面這個你會得到說
  3840.  
  3841. 961
  3842. 00:35:15,240 --> 00:35:17,240
  3843. 任意長度的輸入只要一樣
  3844.  
  3845. 962
  3846. 00:35:17,240 --> 00:35:19,240
  3847. 你都可以得到短短的輸出
  3848.  
  3849. 963
  3850. 00:35:19,240 --> 00:35:21,240
  3851. 而且這個短短的輸出也一模一樣
  3852.  
  3853. 964
  3854. 00:35:21,240 --> 00:35:23,240
  3855. 那大家可以再回想一下
  3856.  
  3857. 965
  3858. 00:35:23,240 --> 00:35:25,240
  3859. 前面我在解釋資料完整性的時候
  3860.  
  3861. 966
  3862. 00:35:25,240 --> 00:35:27,240
  3863. 舉的例子
  3864.  
  3865. 967
  3866. 00:35:27,240 --> 00:35:29,240
  3867. 就是說假設我們上傳了
  3868.  
  3869. 968
  3870. 00:35:29,240 --> 00:35:31,240
  3871. 我們之前存的資料
  3872.  
  3873. 969
  3874. 00:35:31,240 --> 00:35:33,240
  3875. 到雲端硬碟裡面
  3876.  
  3877. 970
  3878. 00:35:33,240 --> 00:35:35,240
  3879. 就假設我寫了一本書
  3880.  
  3881. 971
  3882. 00:35:35,240 --> 00:35:37,240
  3883. 非常非常非常多字
  3884.  
  3885. 972
  3886. 00:35:37,240 --> 00:35:39,240
  3887. 那到這個雲端連結裡面
  3888.  
  3889. 973
  3890. 00:35:39,240 --> 00:35:41,240
  3891. 雲端的硬碟裡面
  3892.  
  3893. 974
  3894. 00:35:41,240 --> 00:35:43,240
  3895. 過一陣子我再把它download回來
  3896.  
  3897. 975
  3898. 00:35:43,240 --> 00:35:45,240
  3899. 那但是我怎麼知道
  3900.  
  3901. 976
  3902. 00:35:45,240 --> 00:35:47,240
  3903. 我怎麼知道有沒有人動過它
  3904.  
  3905. 977
  3906. 00:35:47,240 --> 00:35:49,240
  3907. 我不可能逐字的去比對
  3908.  
  3909. 978
  3910. 00:35:49,240 --> 00:35:51,240
  3911. 所以套用到這兩個性質
  3912.  
  3913. 979
  3914. 00:35:51,240 --> 00:35:53,240
  3915. 我們可以做到什麼事情
  3916.  
  3917. 980
  3918. 00:35:53,240 --> 00:35:55,240
  3919. 我們可以在上傳的時候
  3920.  
  3921. 981
  3922. 00:35:55,240 --> 00:35:57,240
  3923. 先把這樣子的一個資料
  3924.  
  3925. 982
  3926. 00:35:57,240 --> 00:35:59,240
  3927. 過這個hash得到一個摘要
  3928.  
  3929. 983
  3930. 00:35:59,240 --> 00:36:01,240
  3931. 到時候過了一段時間
  3932.  
  3933. 984
  3934. 00:36:01,240 --> 00:36:03,240
  3935. 我們再要把它download回來的時候
  3936.  
  3937. 985
  3938. 00:36:03,240 --> 00:36:05,240
  3939. 我們同樣的把我們下載
  3940.  
  3941. 986
  3942. 00:36:05,240 --> 00:36:07,240
  3943. 我們下載的這個file
  3944.  
  3945. 987
  3946. 00:36:07,240 --> 00:36:09,240
  3947. 也一樣過這個hash function
  3948.  
  3949. 988
  3950. 00:36:09,240 --> 00:36:11,240
  3951. 得到一個短短的摘要
  3952.  
  3953. 989
  3954. 00:36:11,240 --> 00:36:13,240
  3955. 這個時候就會發現
  3956.  
  3957. 990
  3958. 00:36:13,240 --> 00:36:15,240
  3959. 我們只要比摘要就好
  3960.  
  3961. 991
  3962. 00:36:15,240 --> 00:36:17,240
  3963. 我們就能夠得到訊息的內容
  3964.  
  3965. 992
  3966. 00:36:17,240 --> 00:36:19,240
  3967. 那再來是第三個性質
  3968.  
  3969. 993
  3970. 00:36:19,240 --> 00:36:21,240
  3971. 這個也跟剛剛提到的一樣
  3972.  
  3973. 994
  3974. 00:36:21,240 --> 00:36:23,240
  3975. 就是說只要
  3976.  
  3977. 995
  3978. 00:36:23,240 --> 00:36:25,240
  3979. 只要你有任何一點變化
  3980.  
  3981. 996
  3982. 00:36:25,240 --> 00:36:27,240
  3983. 這邊的例子是說
  3984.  
  3985. 997
  3986. 00:36:27,240 --> 00:36:29,240
  3987. 從abc改成abd
  3988.  
  3989. 998
  3990. 00:36:29,240 --> 00:36:31,240
  3991. 那你經過hash
  3992.  
  3993. 999
  3994. 00:36:31,240 --> 00:36:33,240
  3995. 所出來的這個output
  3996.  
  3997. 1000
  3998. 00:36:33,240 --> 00:36:35,240
  3999. 會劇烈的變化
  4000.  
  4001. 1001
  4002. 00:36:35,240 --> 00:36:37,240
  4003. 會大大的不相同
  4004.  
  4005. 1002
  4006. 00:36:37,240 --> 00:36:39,240
  4007. 那到這邊來講
  4008.  
  4009. 1003
  4010. 00:36:39,240 --> 00:36:41,240
  4011. 就有一個問題
  4012.  
  4013. 1004
  4014. 00:36:41,240 --> 00:36:43,240
  4015. 就是說它的重點是在說
  4016.  
  4017. 1005
  4018. 00:36:43,240 --> 00:36:45,240
  4019. 你就算是只改一個bit
  4020.  
  4021. 1006
  4022. 00:36:45,240 --> 00:36:47,240
  4023. 那你出來的結果也要很不一樣
  4024.  
  4025. 1007
  4026. 00:36:47,240 --> 00:36:49,240
  4027. 所以
  4028.  
  4029. 1008
  4030. 00:36:49,240 --> 00:36:51,240
  4031. 下一個問題來了
  4032.  
  4033. 1009
  4034. 00:36:51,240 --> 00:36:53,240
  4035. 就是說到底應該要多不一樣
  4036.  
  4037. 1010
  4038. 00:36:53,240 --> 00:36:55,240
  4039. 那這一題的話
  4040.  
  4041. 1011
  4042. 00:36:55,240 --> 00:36:57,240
  4043. 我們用
  4044.  
  4045. 1012
  4046. 00:36:57,240 --> 00:36:59,240
  4047. 我們用投票好了
  4048.  
  4049. 1013
  4050. 00:36:59,240 --> 00:37:01,240
  4051. 那有幾個選項
  4052.  
  4053. 1014
  4054. 00:37:01,240 --> 00:37:03,240
  4055. 假設
  4056.  
  4057. 1015
  4058. 00:37:03,240 --> 00:37:05,240
  4059. 我們就看
  4060.  
  4061. 1016
  4062. 00:37:05,240 --> 00:37:07,240
  4063. 現在的情境是在問說
  4064.  
  4065. 1017
  4066. 00:37:07,240 --> 00:37:09,240
  4067. 我們把上面的input改了一個bit
  4068.  
  4069. 1018
  4070. 00:37:09,240 --> 00:37:11,240
  4071. 下面的這兩個output
  4072.  
  4073. 1019
  4074. 00:37:11,240 --> 00:37:13,240
  4075. 有多不一樣
  4076.  
  4077. 1020
  4078. 00:37:13,240 --> 00:37:15,240
  4079. 那當然我們指的是
  4080.  
  4081. 1021
  4082. 00:37:15,240 --> 00:37:17,240
  4083. in general的情況
  4084.  
  4085. 1022
  4086. 00:37:17,240 --> 00:37:19,240
  4087. 不是要你去數說這兩個到底有多少格不一樣
  4088.  
  4089. 1023
  4090. 00:37:19,240 --> 00:37:21,240
  4091. 那我們就用
  4092.  
  4093. 1024
  4094. 00:37:21,240 --> 00:37:23,240
  4095. 這個兩個output
  4096.  
  4097. 1025
  4098. 00:37:23,240 --> 00:37:25,240
  4099. 它有比方說完全不一樣
  4100.  
  4101. 1026
  4102. 00:37:25,240 --> 00:37:27,240
  4103. 我們就是100%不一樣
  4104.  
  4105. 1027
  4106. 00:37:27,240 --> 00:37:29,240
  4107. 或完全一樣
  4108.  
  4109. 1028
  4110. 00:37:29,240 --> 00:37:31,240
  4111. 就是0%不一樣
  4112.  
  4113. 1029
  4114. 00:37:31,240 --> 00:37:33,240
  4115. 我們就用這個%數來做判斷好了
  4116.  
  4117. 1030
  4118. 00:37:33,240 --> 00:37:35,240
  4119. 那我們就開放
  4120.  
  4121. 1031
  4122. 00:37:35,240 --> 00:37:37,240
  4123. 30 50 70的選項
  4124.  
  4125. 1032
  4126. 00:37:37,240 --> 00:37:39,240
  4127. 那大家認為
  4128.  
  4129. 1033
  4130. 00:37:39,240 --> 00:37:41,240
  4131. 就是怎麼樣才是符合它這樣的特性呢
  4132.  
  4133. 1034
  4134. 00:37:41,240 --> 00:37:43,240
  4135. 是說
  4136.  
  4137. 1035
  4138. 00:37:43,240 --> 00:37:45,240
  4139. 覺得會有30%不一樣的舉手
  4140.  
  4141. 1036
  4142. 00:37:45,240 --> 00:37:47,240
  4143. 就是說
  4144.  
  4145. 1037
  4146. 00:37:47,240 --> 00:37:49,240
  4147. 改動
  4148.  
  4149. 1038
  4150. 00:37:49,240 --> 00:37:51,240
  4151. 平均而言
  4152.  
  4153. 1039
  4154. 00:37:51,240 --> 00:37:53,240
  4155. 我的input改動一個bit
  4156.  
  4157. 1040
  4158. 00:37:53,240 --> 00:37:55,240
  4159. 那出來的output這兩種
  4160.  
  4161. 1041
  4162. 00:37:55,240 --> 00:37:57,240
  4163. 會有30%的位元數不一樣
  4164.  
  4165. 1042
  4166. 00:37:57,240 --> 00:37:59,240
  4167. 好沒有人
  4168.  
  4169. 1043
  4170. 00:37:59,240 --> 00:38:01,240
  4171. 那50%的
  4172.  
  4173. 1044
  4174. 00:38:01,240 --> 00:38:03,240
  4175. 快
  4176.  
  4177. 1045
  4178. 00:38:03,240 --> 00:38:05,240
  4179. 快
  4180.  
  4181. 1046
  4182. 00:38:05,240 --> 00:38:11,240
  4183. 好那
  4184.  
  4185. 1047
  4186. 00:38:11,240 --> 00:38:13,240
  4187. 70%的
  4188.  
  4189. 1048
  4190. 00:38:13,240 --> 00:38:23,240
  4191. 好
  4192.  
  4193. 1049
  4194. 00:38:23,240 --> 00:38:25,240
  4195. 這邊容我解釋
  4196.  
  4197. 1050
  4198. 00:38:25,240 --> 00:38:27,240
  4199. 實際上正確的答案應該是50%
  4200.  
  4201. 1051
  4202. 00:38:27,240 --> 00:38:29,240
  4203. 我們期待
  4204.  
  4205. 1052
  4206. 00:38:29,240 --> 00:38:31,240
  4207. 平均而言
  4208.  
  4209. 1053
  4210. 00:38:31,240 --> 00:38:33,240
  4211. 你改動了一個bit
  4212.  
  4213. 1054
  4214. 00:38:33,240 --> 00:38:35,240
  4215. 它的output會有50%不一樣
  4216.  
  4217. 1055
  4218. 00:38:35,240 --> 00:38:37,240
  4219. 為什麼是50%
  4220.  
  4221. 1056
  4222. 00:38:37,240 --> 00:38:39,240
  4223. 這樣講好
  4224.  
  4225. 1057
  4226. 00:38:39,240 --> 00:38:41,240
  4227. 就是說
  4228.  
  4229. 1058
  4230. 00:38:41,240 --> 00:38:43,240
  4231. 今天
  4232.  
  4233. 1059
  4234. 00:38:43,240 --> 00:38:45,240
  4235. 假設我們就玩拆數字的遊戲
  4236.  
  4237. 1060
  4238. 00:38:45,240 --> 00:38:47,240
  4239. 然後我說我有10個數字要拆
  4240.  
  4241. 1061
  4242. 00:38:47,240 --> 00:38:49,240
  4243. 那我從
  4244.  
  4245. 1062
  4246. 00:38:49,240 --> 00:38:51,240
  4247. 一組10個數字
  4248.  
  4249. 1063
  4250. 00:38:51,240 --> 00:38:53,240
  4251. 我要拆下一組10個數字
  4252.  
  4253. 1064
  4254. 00:38:53,240 --> 00:38:57,240
  4255. 我希望
  4256.  
  4257. 1065
  4258. 00:38:57,240 --> 00:38:59,240
  4259. 他怎麼樣設計
  4260.  
  4261. 1066
  4262. 00:38:59,240 --> 00:39:01,240
  4263. 難度才最高
  4264.  
  4265. 1067
  4266. 00:39:01,240 --> 00:39:03,240
  4267. 其實他在問的是這件事情
  4268.  
  4269. 1068
  4270. 00:39:03,240 --> 00:39:05,240
  4271. 我們希望他安全
  4272.  
  4273. 1069
  4274. 00:39:05,240 --> 00:39:07,240
  4275. 所以這邊來講其實
  4276.  
  4277. 1070
  4278. 00:39:07,240 --> 00:39:09,240
  4279. 我們要講的意思是說
  4280.  
  4281. 1071
  4282. 00:39:09,240 --> 00:39:11,240
  4283. 他有50%不一樣的時候是最安全
  4284.  
  4285. 1072
  4286. 00:39:11,240 --> 00:39:15,240
  4287. 70%不一樣的時候
  4288.  
  4289. 1073
  4290. 00:39:15,240 --> 00:39:17,240
  4291. 剛剛的題目
  4292.  
  4293. 1074
  4294. 00:39:17,240 --> 00:39:19,240
  4295. 剛剛我們拆10個的題目
  4296.  
  4297. 1075
  4298. 00:39:19,240 --> 00:39:21,240
  4299. 我們再把它簡化
  4300.  
  4301. 1076
  4302. 00:39:21,240 --> 00:39:23,240
  4303. 我們是講說10個binary bit
  4304.  
  4305. 1077
  4306. 00:39:23,240 --> 00:39:25,240
  4307. 講到binary bit
  4308.  
  4309. 1078
  4310. 00:39:25,240 --> 00:39:27,240
  4311. 我想大家可能比較容易可以理解
  4312.  
  4313. 1079
  4314. 00:39:27,240 --> 00:39:29,240
  4315. 假設10個bit只有1跟0
  4316.  
  4317. 1080
  4318. 00:39:29,240 --> 00:39:31,240
  4319. 那我從這1跟0
  4320.  
  4321. 1081
  4322. 00:39:31,240 --> 00:39:33,240
  4323. 去拆下一組1跟0
  4324.  
  4325. 1082
  4326. 00:39:33,240 --> 00:39:35,240
  4327. 的時候並且
  4328.  
  4329. 1083
  4330. 00:39:35,240 --> 00:39:37,240
  4331. 如果他大部分都不一樣
  4332.  
  4333. 1084
  4334. 00:39:37,240 --> 00:39:39,240
  4335. 那我就知道我要反著拆
  4336.  
  4337. 1085
  4338. 00:39:39,240 --> 00:39:41,240
  4339. 如果他大部分都一樣
  4340.  
  4341. 1086
  4342. 00:39:41,240 --> 00:39:43,240
  4343. 我就知道我不用什麼改
  4344.  
  4345. 1087
  4346. 00:39:43,240 --> 00:39:45,240
  4347. 拆的會比較接近
  4348.  
  4349. 1088
  4350. 00:39:45,240 --> 00:39:47,240
  4351. 但是只有在他一半一半不一樣的時候
  4352.  
  4353. 1089
  4354. 00:39:47,240 --> 00:39:49,240
  4355. 是最難拆的
  4356.  
  4357. 1090
  4358. 00:39:49,240 --> 00:39:51,240
  4359. 大家可以理解嗎
  4360.  
  4361. 1091
  4362. 00:39:51,240 --> 00:39:53,240
  4363. 這個就是
  4364.  
  4365. 1092
  4366. 00:39:53,240 --> 00:39:55,240
  4367. 這個其實跟我們講的
  4368.  
  4369. 1093
  4370. 00:39:55,240 --> 00:39:57,240
  4371. Path他有很好的
  4372.  
  4373. 1094
  4374. 00:39:57,240 --> 00:39:59,240
  4375. 叫Uniqueness是一樣的事情
  4376.  
  4377. 1095
  4378. 00:39:59,240 --> 00:40:01,240
  4379. 這個我們常常會用的
  4380.  
  4381. 1096
  4382. 00:40:01,240 --> 00:40:05,240
  4383. 是叫做inter-hamming distance
  4384.  
  4385. 1097
  4386. 00:40:05,240 --> 00:40:08,240
  4387. 就是說你今天一組128bit的Path
  4388.  
  4389. 1098
  4390. 00:40:08,240 --> 00:40:10,240
  4391. 跟另外一組128bit的Path
  4392.  
  4393. 1099
  4394. 00:40:10,240 --> 00:40:12,240
  4395. 他裡面的這個值
  4396.  
  4397. 1100
  4398. 00:40:12,240 --> 00:40:14,240
  4399. 大概會有多少不一樣
  4400.  
  4401. 1101
  4402. 00:40:14,240 --> 00:40:16,240
  4403. 其實他的大概你bit by bit去比的話
  4404.  
  4405. 1102
  4406. 00:40:16,240 --> 00:40:18,240
  4407. 大概會是50%
  4408.  
  4409. 1103
  4410. 00:40:18,240 --> 00:40:20,240
  4411. 這個是NeoPath的特性
  4412.  
  4413. 1104
  4414. 00:40:20,240 --> 00:40:23,240
  4415. 但是這個在密碼學裡面
  4416.  
  4417. 1105
  4418. 00:40:23,240 --> 00:40:26,240
  4419. 是非常常見也非常重要的一個性質
  4420.  
  4421. 1106
  4422. 00:40:26,240 --> 00:40:28,240
  4423. 就是所謂這個改一個bit
  4424.  
  4425. 1107
  4426. 00:40:28,240 --> 00:40:30,240
  4427. 就有50%不一樣的
  4428.  
  4429. 1108
  4430. 00:40:30,240 --> 00:40:32,240
  4431. 這個是一個理想的密碼學上會用到的性質
  4432.  
  4433. 1109
  4434. 00:40:32,240 --> 00:40:34,240
  4435. 然後這在密碼學裡面叫做雪崩效應
  4436.  
  4437. 1110
  4438. 00:40:34,240 --> 00:40:36,240
  4439. 就是說你只要動了一點
  4440.  
  4441. 1111
  4442. 00:40:36,240 --> 00:40:37,240
  4443. 牽一髮動全身
  4444.  
  4445. 1112
  4446. 00:40:37,240 --> 00:40:39,240
  4447. 你的輸入有一點變化的時候
  4448.  
  4449. 1113
  4450. 00:40:39,240 --> 00:40:41,240
  4451. 你的輸出會劇烈的改變
  4452.  
  4453. 1114
  4454. 00:40:41,240 --> 00:40:43,240
  4455. 但是也不希望太劇烈
  4456.  
  4457. 1115
  4458. 00:40:43,240 --> 00:40:44,240
  4459. 劇烈到完全變反
  4460.  
  4461. 1116
  4462. 00:40:44,240 --> 00:40:45,240
  4463. 也就好拆
  4464.  
  4465. 1117
  4466. 00:40:45,240 --> 00:40:47,240
  4467. 所以他其實變不一樣
  4468.  
  4469. 1118
  4470. 00:40:47,240 --> 00:40:49,240
  4471. 是差不多50%不一樣
  4472.  
  4473. 1119
  4474. 00:40:49,240 --> 00:40:51,240
  4475. 所以前面我們剛剛看到的各種
  4476.  
  4477. 1120
  4478. 00:40:51,240 --> 00:40:53,240
  4479. 不管是ECC不管是RSA
  4480.  
  4481. 1121
  4482. 00:40:53,240 --> 00:40:54,240
  4483. 不管是AES
  4484.  
  4485. 1122
  4486. 00:40:54,240 --> 00:40:56,240
  4487. 也都會具備有這種的性質
  4488.  
  4489. 1123
  4490. 00:40:56,240 --> 00:40:58,240
  4491. 因為這樣才會難破解
  4492.  
  4493. 1124
  4494. 00:40:58,240 --> 00:41:02,240
  4495. 所以這邊是針對這樣的特性在做補充
  4496.  
  4497. 1125
  4498. 00:41:02,240 --> 00:41:05,240
  4499. 就是說同樣的一個好的雜湊函數
  4500.  
  4501. 1126
  4502. 00:41:05,240 --> 00:41:07,240
  4503. 他也勢必也會帶有這樣的
  4504.  
  4505. 1127
  4506. 00:41:07,240 --> 00:41:09,240
  4507. 雪崩效應的這個性質
  4508.  
  4509. 1128
  4510. 00:41:09,240 --> 00:41:14,240
  4511. 好那再來是第四個特性
  4512.  
  4513. 1129
  4514. 00:41:14,240 --> 00:41:16,240
  4515. 第四個特性我們是講叫做
  4516.  
  4517. 1130
  4518. 00:41:16,240 --> 00:41:18,240
  4519. 即便問題來了
  4520.  
  4521. 1131
  4522. 00:41:18,240 --> 00:41:21,240
  4523. 即便你的這個輸入完全不一樣
  4524.  
  4525. 1132
  4526. 00:41:21,240 --> 00:41:26,240
  4527. 但是你還是有可能得到
  4528.  
  4529. 1133
  4530. 00:41:26,240 --> 00:41:28,240
  4531. 同樣的兩個輸出
  4532.  
  4533. 1134
  4534. 00:41:28,240 --> 00:41:30,240
  4535. 兩個一樣的摘要
  4536.  
  4537. 1135
  4538. 00:41:30,240 --> 00:41:32,240
  4539. 這個跟前面講的
  4540.  
  4541. 1136
  4542. 00:41:32,240 --> 00:41:34,240
  4543. 前面講的這個
  4544.  
  4545. 1137
  4546. 00:41:34,240 --> 00:41:36,240
  4547. 跟整個雜湊函數的目的
  4548.  
  4549. 1138
  4550. 00:41:36,240 --> 00:41:38,240
  4551. 似乎有點衝突
  4552.  
  4553. 1139
  4554. 00:41:38,240 --> 00:41:44,240
  4555. 那有沒有厲害的同仁
  4556.  
  4557. 1140
  4558. 00:41:44,240 --> 00:41:45,240
  4559. 可以發表一下
  4560.  
  4561. 1141
  4562. 00:41:45,240 --> 00:41:47,240
  4563. 覺得為什麼會是這樣
  4564.  
  4565. 1142
  4566. 00:41:49,240 --> 00:41:56,240
  4567. 這邊我再描述的再仔細一點
  4568.  
  4569. 1143
  4570. 00:41:56,240 --> 00:41:58,240
  4571. 就是說我們就假設
  4572.  
  4573. 1144
  4574. 00:41:58,240 --> 00:42:00,240
  4575. 我們就假設這個
  4576.  
  4577. 1145
  4578. 00:42:00,240 --> 00:42:02,240
  4579. 我們所使用的這一版果汁機
  4580.  
  4581. 1146
  4582. 00:42:02,240 --> 00:42:04,240
  4583. 他能夠出來的摘要
  4584.  
  4585. 1147
  4586. 00:42:04,240 --> 00:42:07,240
  4587. 我們就說是32bit
  4588.  
  4589. 1148
  4590. 00:42:07,240 --> 00:42:12,240
  4591. 那為什麼有可能會發生
  4592.  
  4593. 1149
  4594. 00:42:12,240 --> 00:42:14,240
  4595. 為什麼有可能會發生
  4596.  
  4597. 1150
  4598. 00:42:14,240 --> 00:42:16,240
  4599. 這個不同的輸入
  4600.  
  4601. 1151
  4602. 00:42:16,240 --> 00:42:18,240
  4603. 得到一樣的輸出的結果
  4604.  
  4605. 1152
  4606. 00:42:18,240 --> 00:42:21,240
  4607. 請說
  4608.  
  4609. 1153
  4610. 00:42:21,240 --> 00:42:31,240
  4611. 因為這個世界的東西
  4612.  
  4613. 1154
  4614. 00:42:31,240 --> 00:42:33,240
  4615. 遠比那些摘要還要多
  4616.  
  4617. 1155
  4618. 00:42:33,240 --> 00:42:36,240
  4619. 所以有可能不一樣的東西
  4620.  
  4621. 1156
  4622. 00:42:36,240 --> 00:42:39,240
  4623. 進入這個雜湊函數以後
  4624.  
  4625. 1157
  4626. 00:42:39,240 --> 00:42:41,240
  4627. 會得到相同的數字
  4628.  
  4629. 1158
  4630. 00:42:41,240 --> 00:42:43,240
  4631. 是的是的
  4632.  
  4633. 1159
  4634. 00:42:43,240 --> 00:42:45,240
  4635. 就是意思是
  4636.  
  4637. 1160
  4638. 00:42:45,240 --> 00:42:47,240
  4639. 注意我們前面講到
  4640.  
  4641. 1161
  4642. 00:42:47,240 --> 00:42:49,240
  4643. 任意長度的輸入
  4644.  
  4645. 1162
  4646. 00:42:49,240 --> 00:42:50,240
  4647. 所以在你
  4648.  
  4649. 1163
  4650. 00:42:50,240 --> 00:42:52,240
  4651. 基本上是在你輸出的長度
  4652.  
  4653. 1164
  4654. 00:42:52,240 --> 00:42:54,240
  4655. 是固定的狀況下
  4656.  
  4657. 1165
  4658. 00:42:54,240 --> 00:42:56,240
  4659. 一定一定會有機會
  4660.  
  4661. 1166
  4662. 00:42:56,240 --> 00:42:58,240
  4663. 你的輸入的值率會超過
  4664.  
  4665. 1167
  4666. 00:42:58,240 --> 00:43:01,240
  4667. 會超過輸出的值率
  4668.  
  4669. 1168
  4670. 00:43:01,240 --> 00:43:03,240
  4671. 所以當然這個是
  4672.  
  4673. 1169
  4674. 00:43:03,240 --> 00:43:05,240
  4675. 這個是必須會要發生的
  4676.  
  4677. 1170
  4678. 00:43:05,240 --> 00:43:07,240
  4679. 因為你的設計就是讓
  4680.  
  4681. 1171
  4682. 00:43:07,240 --> 00:43:10,240
  4683. 雜湊函數可以吃任意長度的輸入
  4684.  
  4685. 1172
  4686. 00:43:10,240 --> 00:43:12,240
  4687. 所以這個是勢必會發生的
  4688.  
  4689. 1173
  4690. 00:43:12,240 --> 00:43:15,240
  4691. 但是我們一般在密碼學上面
  4692.  
  4693. 1174
  4694. 00:43:15,240 --> 00:43:16,240
  4695. 會用到的雜湊函數
  4696.  
  4697. 1175
  4698. 00:43:16,240 --> 00:43:18,240
  4699. 我們希望這樣的發生機率
  4700.  
  4701. 1176
  4702. 00:43:18,240 --> 00:43:20,240
  4703. 我們把這叫做碰撞
  4704.  
  4705. 1177
  4706. 00:43:20,240 --> 00:43:21,240
  4707. 要碰撞
  4708.  
  4709. 1178
  4710. 00:43:21,240 --> 00:43:23,240
  4711. 我們希望這個發生機率極低
  4712.  
  4713. 1179
  4714. 00:43:23,240 --> 00:43:25,240
  4715. 而且不能被操控
  4716.  
  4717. 1180
  4718. 00:43:25,240 --> 00:43:27,240
  4719. 不能我想要它碰撞它就碰撞
  4720.  
  4721. 1181
  4722. 00:43:27,240 --> 00:43:29,240
  4723. 不能說
  4724.  
  4725. 1182
  4726. 00:43:29,240 --> 00:43:31,240
  4727. 我看到一個摘要
  4728.  
  4729. 1183
  4730. 00:43:31,240 --> 00:43:33,240
  4731. 我就知道什麼樣的輸入
  4732.  
  4733. 1184
  4734. 00:43:33,240 --> 00:43:35,240
  4735. 可以得到這樣的摘要
  4736.  
  4737. 1185
  4738. 00:43:35,240 --> 00:43:38,240
  4739. 不能輕易的被操作
  4740.  
  4741. 1186
  4742. 00:43:38,240 --> 00:43:40,240
  4743. 所以碰撞是一定會發生
  4744.  
  4745. 1187
  4746. 00:43:40,240 --> 00:43:43,240
  4747. 但是密碼學上面機率極低
  4748.  
  4749. 1188
  4750. 00:43:43,240 --> 00:43:47,240
  4751. 然後並且也不容易被實現
  4752.  
  4753. 1189
  4754. 00:43:47,240 --> 00:43:48,240
  4755. 好 謝謝
  4756.  
  4757. 1190
  4758. 00:43:48,240 --> 00:43:51,240
  4759. 再來第五項特性的話
  4760.  
  4761. 1191
  4762. 00:43:51,240 --> 00:43:53,240
  4763. 前面有講到就是說
  4764.  
  4765. 1192
  4766. 00:43:53,240 --> 00:43:55,240
  4767. 它是不可逆的
  4768.  
  4769. 1193
  4770. 00:43:55,240 --> 00:43:56,240
  4771. 它是單向的
  4772.  
  4773. 1194
  4774. 00:43:56,240 --> 00:43:58,240
  4775. 單向的這個函數
  4776.  
  4777. 1195
  4778. 00:43:58,240 --> 00:44:01,240
  4779. 那具體為什麼它是單向的
  4780.  
  4781. 1196
  4782. 00:44:01,240 --> 00:44:02,240
  4783. 是因為多半
  4784.  
  4785. 1197
  4786. 00:44:02,240 --> 00:44:04,240
  4787. 你就算是用哪一種的雜
  4788.  
  4789. 1198
  4790. 00:44:04,240 --> 00:44:06,240
  4791. 不管是用哪一種的雜湊函數
  4792.  
  4793. 1199
  4794. 00:44:06,240 --> 00:44:08,240
  4795. 它的流程裡面一定會包含到
  4796.  
  4797. 1200
  4798. 00:44:08,240 --> 00:44:10,240
  4799. 多對一的mapping
  4800.  
  4801. 1201
  4802. 00:44:10,240 --> 00:44:12,240
  4803. 那本來你在有輸入
  4804.  
  4805. 1202
  4806. 00:44:12,240 --> 00:44:14,240
  4807. 多個輸入可能都可能會得到
  4808.  
  4809. 1203
  4810. 00:44:14,240 --> 00:44:16,240
  4811. 同一個輸出的結果下
  4812.  
  4813. 1204
  4814. 00:44:16,240 --> 00:44:18,240
  4815. 你當然不可能知道那個輸出
  4816.  
  4817. 1205
  4818. 00:44:18,240 --> 00:44:19,240
  4819. 就返回去退回去輸入
  4820.  
  4821. 1206
  4822. 00:44:19,240 --> 00:44:21,240
  4823. 你根本就不知道你要走哪一條路回去
  4824.  
  4825. 1207
  4826. 00:44:21,240 --> 00:44:23,240
  4827. 這樣
  4828.  
  4829. 1208
  4830. 00:44:23,240 --> 00:44:25,240
  4831. 那再來是第六個性質
  4832.  
  4833. 1209
  4834. 00:44:25,240 --> 00:44:27,240
  4835. 這邊第六個性質指的是說
  4836.  
  4837. 1210
  4838. 00:44:27,240 --> 00:44:29,240
  4839. 當然這樣的雜湊函數
  4840.  
  4841. 1211
  4842. 00:44:29,240 --> 00:44:30,240
  4843. 會經過世代更迭
  4844.  
  4845. 1212
  4846. 00:44:30,240 --> 00:44:33,240
  4847. 所以以前在用的這種叫MD4 MD5
  4848.  
  4849. 1213
  4850. 00:44:33,240 --> 00:44:34,240
  4851. 這叫Message Digest
  4852.  
  4853. 1214
  4854. 00:44:34,240 --> 00:44:35,240
  4855. 第四代第五代
  4856.  
  4857. 1215
  4858. 00:44:35,240 --> 00:44:36,240
  4859. 這種都已經除役
  4860.  
  4861. 1216
  4862. 00:44:36,240 --> 00:44:38,240
  4863. 那現在最常使用的是
  4864.  
  4865. 1217
  4866. 00:44:38,240 --> 00:44:41,240
  4867. 這個紅色框框起來的叫做SHAR2
  4868.  
  4869. 1218
  4870. 00:44:41,240 --> 00:44:42,240
  4871. 那SHAR2來講
  4872.  
  4873. 1219
  4874. 00:44:42,240 --> 00:44:45,240
  4875. 它當然是有前面幾個的後代
  4876.  
  4877. 1220
  4878. 00:44:45,240 --> 00:44:47,240
  4879. 就是從SHAR0開始
  4880.  
  4881. 1221
  4882. 00:44:47,240 --> 00:44:48,240
  4883. 跟SHAR1
  4884.  
  4885. 1222
  4886. 00:44:48,240 --> 00:44:49,240
  4887. 然後到現在來講
  4888.  
  4889. 1223
  4890. 00:44:49,240 --> 00:44:51,240
  4891. 在使用的是SHAR2
  4892.  
  4893. 1224
  4894. 00:44:51,240 --> 00:44:54,240
  4895. 那SHAR0跟SHAR1來講的話
  4896.  
  4897. 1225
  4898. 00:44:54,240 --> 00:44:57,240
  4899. SHAR0是本身它的演算法就有缺陷
  4900.  
  4901. 1226
  4902. 00:44:57,240 --> 00:44:58,240
  4903. 那SHAR1的話
  4904.  
  4905. 1227
  4906. 00:44:58,240 --> 00:45:01,240
  4907. 是它的運算已經可以開始被操弄
  4908.  
  4909. 1228
  4910. 00:45:01,240 --> 00:45:03,240
  4911. 所以已經被除役
  4912.  
  4913. 1229
  4914. 00:45:03,240 --> 00:45:07,240
  4915. 那現在所使用的SHAR2
  4916.  
  4917. 1230
  4918. 00:45:07,240 --> 00:45:08,240
  4919. 它大概是這樣
  4920.  
  4921. 1231
  4922. 00:45:08,240 --> 00:45:10,240
  4923. 就是說SHAR2是一整個族
  4924.  
  4925. 1232
  4926. 00:45:10,240 --> 00:45:11,240
  4927. 它這個族裡面
  4928.  
  4929. 1233
  4930. 00:45:11,240 --> 00:45:13,240
  4931. 它有不同的版本
  4932.  
  4933. 1234
  4934. 00:45:13,240 --> 00:45:17,240
  4935. 可以讓你得到不同長度的摘要的輸出
  4936.  
  4937. 1235
  4938. 00:45:17,240 --> 00:45:19,240
  4939. 所以比方說這邊是224的
  4940.  
  4941. 1236
  4942. 00:45:19,240 --> 00:45:21,240
  4943. 256的 384 512
  4944.  
  4945. 1237
  4946. 00:45:21,240 --> 00:45:24,240
  4947. 跟它這邊寫有512/224
  4948.  
  4949. 1238
  4950. 00:45:24,240 --> 00:45:26,240
  4951. 跟512/256
  4952.  
  4953. 1239
  4954. 00:45:26,240 --> 00:45:27,240
  4955. 這個是什麼意思
  4956.  
  4957. 1240
  4958. 00:45:27,240 --> 00:45:28,240
  4959. 這個是大家補充一下
  4960.  
  4961. 1241
  4962. 00:45:28,240 --> 00:45:31,240
  4963. 就是說當然這幾個
  4964.  
  4965. 1242
  4966. 00:45:31,240 --> 00:45:32,240
  4967. 這幾個224 256
  4968.  
  4969. 1243
  4970. 00:45:32,240 --> 00:45:34,240
  4971. 這些函數的構造是不同的
  4972.  
  4973. 1244
  4974. 00:45:34,240 --> 00:45:37,240
  4975. 但是只要是512開頭的
  4976.  
  4977. 1245
  4978. 00:45:37,240 --> 00:45:38,240
  4979. 它都是相同的
  4980.  
  4981. 1246
  4982. 00:45:38,240 --> 00:45:40,240
  4983. 但是它是用
  4984.  
  4985. 1247
  4986. 00:45:40,240 --> 00:45:43,240
  4987. 類似這樣子512的這樣的函數的架構
  4988.  
  4989. 1248
  4990. 00:45:43,240 --> 00:45:46,240
  4991. 它能夠去幫你轉出224
  4992.  
  4993. 1249
  4994. 00:45:46,240 --> 00:45:49,240
  4995. 或是256bit的摘要的長度
  4996.  
  4997. 1250
  4998. 00:45:49,240 --> 00:45:52,240
  4999. 它的這邊的/224或256是這個意思
  5000.  
  5001. 1251
  5002. 00:45:52,240 --> 00:45:54,240
  5003. 那目前來講
  5004.  
  5005. 1252
  5006. 00:45:54,240 --> 00:45:57,240
  5007. 針對SHAR2還並沒有有效的攻擊
  5008.  
  5009. 1253
  5010. 00:45:57,240 --> 00:45:59,240
  5011. 那在這邊講這個
  5012.  
  5013. 1254
  5014. 00:45:59,240 --> 00:46:01,240
  5015. 所謂沒有有效的攻擊
  5016.  
  5017. 1255
  5018. 00:46:01,240 --> 00:46:02,240
  5019. 跟我們講說可能
  5020.  
  5021. 1256
  5022. 00:46:02,240 --> 00:46:04,240
  5023. 為什麼我們講說夏林跟夏灣被破解
  5024.  
  5025. 1257
  5026. 00:46:04,240 --> 00:46:06,240
  5027. 那這邊給大家一個觀念就是說
  5028.  
  5029. 1258
  5030. 00:46:06,240 --> 00:46:09,240
  5031. 所謂被破解來講的話
  5032.  
  5033. 1259
  5034. 00:46:09,240 --> 00:46:11,240
  5035. 絕對不是說你馬上一秒就能
  5036.  
  5037. 1260
  5038. 00:46:11,240 --> 00:46:14,240
  5039. 短短的時間內就能變出答案
  5040.  
  5041. 1261
  5042. 00:46:14,240 --> 00:46:15,240
  5043. 不是這個意思
  5044.  
  5045. 1262
  5046. 00:46:15,240 --> 00:46:17,240
  5047. 而是說
  5048.  
  5049. 1263
  5050. 00:46:17,240 --> 00:46:20,240
  5051. 先從這邊講的被破解來說的話
  5052.  
  5053. 1264
  5054. 00:46:20,240 --> 00:46:22,240
  5055. 一般來講說被破解
  5056.  
  5057. 1265
  5058. 00:46:22,240 --> 00:46:23,240
  5059. 或是說有有效的攻擊
  5060.  
  5061. 1266
  5062. 00:46:23,240 --> 00:46:24,240
  5063. 我們指的是說
  5064.  
  5065. 1267
  5066. 00:46:24,240 --> 00:46:27,240
  5067. 有比暴力破解更有效率的方法
  5068.  
  5069. 1268
  5070. 00:46:28,240 --> 00:46:31,240
  5071. 可以降低它的運算的複雜度
  5072.  
  5073. 1269
  5074. 00:46:31,240 --> 00:46:33,240
  5075. 這樣應該比較精確
  5076.  
  5077. 1270
  5078. 00:46:33,240 --> 00:46:34,240
  5079. 只要能夠做到這樣的話
  5080.  
  5081. 1271
  5082. 00:46:34,240 --> 00:46:36,240
  5083. 那大致上我們就
  5084.  
  5085. 1272
  5086. 00:46:36,240 --> 00:46:38,240
  5087. 等於說這樣的演算法
  5088.  
  5089. 1273
  5090. 00:46:38,240 --> 00:46:40,240
  5091. 它的安全性已經打折了
  5092.  
  5093. 1274
  5094. 00:46:40,240 --> 00:46:42,240
  5095. 那打多少折其實不用管
  5096.  
  5097. 1275
  5098. 00:46:42,240 --> 00:46:43,240
  5099. 很多時候當然
  5100.  
  5101. 1276
  5102. 00:46:43,240 --> 00:46:45,240
  5103. 所謂宣稱被破解而言
  5104.  
  5105. 1277
  5106. 00:46:45,240 --> 00:46:47,240
  5107. 它不過是運算的複雜度
  5108.  
  5109. 1278
  5110. 00:46:47,240 --> 00:46:48,240
  5111. 降低了一點而已
  5112.  
  5113. 1279
  5114. 00:46:48,240 --> 00:46:50,240
  5115. 降低了二的幾次方而已
  5116.  
  5117. 1280
  5118. 00:46:50,240 --> 00:46:52,240
  5119. 那個不見得
  5120.  
  5121. 1281
  5122. 00:46:52,240 --> 00:46:54,240
  5123. 所以其實說真的
  5124.  
  5125. 1282
  5126. 00:46:54,240 --> 00:46:55,240
  5127. 雖然說不建議使用
  5128.  
  5129. 1283
  5130. 00:46:55,240 --> 00:46:57,240
  5131. 但是很多時候
  5132.  
  5133. 1284
  5134. 00:46:57,240 --> 00:46:58,240
  5135. 那些被除役的
  5136.  
  5137. 1285
  5138. 00:46:58,240 --> 00:46:59,240
  5139. 被除役的做法來講
  5140.  
  5141. 1286
  5142. 00:46:59,240 --> 00:47:00,240
  5143. 它其實也沒有
  5144.  
  5145. 1287
  5146. 00:47:00,240 --> 00:47:02,240
  5147. 沒有馬上就能夠
  5148.  
  5149. 1288
  5150. 00:47:02,240 --> 00:47:04,240
  5151. 沒有馬上就能夠破解
  5152.  
  5153. 1289
  5154. 00:47:04,240 --> 00:47:06,240
  5155. 就破密這回事
  5156.  
  5157. 1290
  5158. 00:47:06,240 --> 00:47:08,240
  5159. 並沒有
  5160.  
  5161. 1291
  5162. 00:47:08,240 --> 00:47:10,240
  5163. 那
  5164.  
  5165. 1292
  5166. 00:47:10,240 --> 00:47:11,240
  5167. 這邊就帶來另外一個問題
  5168.  
  5169. 1293
  5170. 00:47:11,240 --> 00:47:13,240
  5171. 就是說剛剛已經講過說
  5172.  
  5173. 1294
  5174. 00:47:13,240 --> 00:47:15,240
  5175. 剛剛已經講過說
  5176.  
  5177. 1295
  5178. 00:47:15,240 --> 00:47:17,240
  5179. 所謂的被破解
  5180.  
  5181. 1296
  5182. 00:47:17,240 --> 00:47:19,240
  5183. 或是說已經被除役的這種
  5184.  
  5185. 1297
  5186. 00:47:19,240 --> 00:47:20,240
  5187. 指的是說
  5188.  
  5189. 1298
  5190. 00:47:20,240 --> 00:47:22,240
  5191. 存在比暴力破解更有效的
  5192.  
  5193. 1299
  5194. 00:47:22,240 --> 00:47:23,240
  5195. 更有效率的做法
  5196.  
  5197. 1300
  5198. 00:47:23,240 --> 00:47:25,240
  5199. 那也有另外一種是
  5200.  
  5201. 1301
  5202. 00:47:25,240 --> 00:47:27,240
  5203. 它的這個本身的
  5204.  
  5205. 1302
  5206. 00:47:27,240 --> 00:47:29,240
  5207. 這個演算法的設計
  5208.  
  5209. 1303
  5210. 00:47:29,240 --> 00:47:31,240
  5211. 是有問題的
  5212.  
  5213. 1304
  5214. 00:47:31,240 --> 00:47:33,240
  5215. 它是有數學上面的缺陷的
  5216.  
  5217. 1305
  5218. 00:47:33,240 --> 00:47:35,240
  5219. 但是特別是像
  5220.  
  5221. 1306
  5222. 00:47:35,240 --> 00:47:36,240
  5223. 數學有缺陷這件事情
  5224.  
  5225. 1307
  5226. 00:47:36,240 --> 00:47:38,240
  5227. 以現在的審查制度來講
  5228.  
  5229. 1308
  5230. 00:47:38,240 --> 00:47:39,240
  5231. 現在這種都是
  5232.  
  5233. 1309
  5234. 00:47:39,240 --> 00:47:42,240
  5235. 類似去投標去做競賽的
  5236.  
  5237. 1310
  5238. 00:47:42,240 --> 00:47:43,240
  5239. 以這種狀況來講
  5240.  
  5241. 1311
  5242. 00:47:43,240 --> 00:47:45,240
  5243. 現在有數學缺陷
  5244.  
  5245. 1312
  5246. 00:47:45,240 --> 00:47:47,240
  5247. 還能夠通過成為正式標準的
  5248.  
  5249. 1313
  5250. 00:47:47,240 --> 00:47:48,240
  5251. 會比較難
  5252.  
  5253. 1314
  5254. 00:47:48,240 --> 00:47:50,240
  5255. 就一般比較不太會有這種狀況
  5256.  
  5257. 1315
  5258. 00:47:50,240 --> 00:47:51,240
  5259. 以前可能會有
  5260.  
  5261. 1316
  5262. 00:47:51,240 --> 00:47:52,240
  5263. 現在很少
  5264.  
  5265. 1317
  5266. 00:47:52,240 --> 00:47:54,240
  5267. 那這邊來講
  5268.  
  5269. 1318
  5270. 00:47:54,240 --> 00:47:56,240
  5271. 有另外一個事情要提的就是說
  5272.  
  5273. 1319
  5274. 00:47:56,240 --> 00:47:58,240
  5275. 那所謂被破解
  5276.  
  5277. 1320
  5278. 00:47:58,240 --> 00:48:00,240
  5279. 還有什麼樣的可能
  5280.  
  5281. 1321
  5282. 00:48:00,240 --> 00:48:02,240
  5283. 其實一種是說
  5284.  
  5285. 1322
  5286. 00:48:02,240 --> 00:48:03,240
  5287. 有一種簡單的情境
  5288.  
  5289. 1323
  5290. 00:48:03,240 --> 00:48:05,240
  5291. 就是說我們希望
  5292.  
  5293. 1324
  5294. 00:48:05,240 --> 00:48:07,240
  5295. 我們希望這個系統安全
  5296.  
  5297. 1325
  5298. 00:48:07,240 --> 00:48:09,240
  5299. 除了它的演算法要健康之外
  5300.  
  5301. 1326
  5302. 00:48:09,240 --> 00:48:11,240
  5303. 就是它不是
  5304.  
  5305. 1327
  5306. 00:48:11,240 --> 00:48:13,240
  5307. 它不是被這個破解的演算法
  5308.  
  5309. 1328
  5310. 00:48:13,240 --> 00:48:15,240
  5311. 另外一種
  5312.  
  5313. 1329
  5314. 00:48:15,240 --> 00:48:17,240
  5315. 另外一種我們常常會用來
  5316.  
  5317. 1330
  5318. 00:48:17,240 --> 00:48:19,240
  5319. 保護安全的一種東西
  5320.  
  5321. 1331
  5322. 00:48:19,240 --> 00:48:21,240
  5323. 我們把它叫做協定
  5324.  
  5325. 1332
  5326. 00:48:21,240 --> 00:48:23,240
  5327. 最簡單的說法就是說
  5328.  
  5329. 1333
  5330. 00:48:23,240 --> 00:48:25,240
  5331. 假設
  5332.  
  5333. 1334
  5334. 00:48:25,240 --> 00:48:26,240
  5335. 假設我今天
  5336.  
  5337. 1335
  5338. 00:48:26,240 --> 00:48:28,240
  5339. 我所使用的加密演算法
  5340.  
  5341. 1336
  5342. 00:48:28,240 --> 00:48:32,240
  5343. 它在100個microsecond
  5344.  
  5345. 1337
  5346. 00:48:32,240 --> 00:48:34,240
  5347. 內會被破解
  5348.  
  5349. 1338
  5350. 00:48:34,240 --> 00:48:36,240
  5351. 那很簡單
  5352.  
  5353. 1339
  5354. 00:48:36,240 --> 00:48:39,240
  5355. 如果還是只能使用這個的話
  5356.  
  5357. 1340
  5358. 00:48:39,240 --> 00:48:40,240
  5359. 也很簡單
  5360.  
  5361. 1341
  5362. 00:48:40,240 --> 00:48:42,240
  5363. 我只要跟對方約定好說
  5364.  
  5365. 1342
  5366. 00:48:42,240 --> 00:48:44,240
  5367. 我們10microsecond就換一次key
  5368.  
  5369. 1343
  5370. 00:48:44,240 --> 00:48:47,240
  5371. 這樣會讓你沒有那個100microsecond去破解
  5372.  
  5373. 1344
  5374. 00:48:47,240 --> 00:48:50,240
  5375. 這個就是所謂協定的意思
  5376.  
  5377. 1345
  5378. 00:48:50,240 --> 00:48:52,240
  5379. 所以一般來講
  5380.  
  5381. 1346
  5382. 00:48:52,240 --> 00:48:53,240
  5383. 協定跟演算法
  5384.  
  5385. 1347
  5386. 00:48:53,240 --> 00:48:55,240
  5387. 這邊我們比較不會去討論協定
  5388.  
  5389. 1348
  5390. 00:48:55,240 --> 00:48:57,240
  5391. 因為協定通常來講
  5392.  
  5393. 1349
  5394. 00:48:57,240 --> 00:48:59,240
  5395. 更比較
  5396.  
  5397. 1350
  5398. 00:48:59,240 --> 00:49:01,240
  5399. 比較大家會
  5400.  
  5401. 1351
  5402. 00:49:01,240 --> 00:49:03,240
  5403. 都比較用這種公開的標準
  5404.  
  5405. 1352
  5406. 00:49:03,240 --> 00:49:05,240
  5407. 比方說HTTPS這種東西
  5408.  
  5409. 1353
  5410. 00:49:05,240 --> 00:49:06,240
  5411. 我們常常看到的
  5412.  
  5413. 1354
  5414. 00:49:06,240 --> 00:49:07,240
  5415. 所以協定這邊的話
  5416.  
  5417. 1355
  5418. 00:49:07,240 --> 00:49:08,240
  5419. 我們就不會再去多談
  5420.  
  5421. 1356
  5422. 00:49:08,240 --> 00:49:09,240
  5423. 這邊的話
  5424.  
  5425. 1357
  5426. 00:49:09,240 --> 00:49:11,240
  5427. 比較會多講一點點的是演算法
  5428.  
  5429. 1358
  5430. 00:49:11,240 --> 00:49:16,240
  5431. 好那接下來
  5432.  
  5433. 1359
  5434. 00:49:16,240 --> 00:49:18,240
  5435. 記得我們有四個大單權目標
  5436.  
  5437. 1360
  5438. 00:49:18,240 --> 00:49:20,240
  5439. 有保密性
  5440.  
  5441. 1361
  5442. 00:49:20,240 --> 00:49:22,240
  5443. 有資料完整性
  5444.  
  5445. 1362
  5446. 00:49:22,240 --> 00:49:23,240
  5447. 然後有認證性
  5448.  
  5449. 1363
  5450. 00:49:23,240 --> 00:49:25,240
  5451. 跟不可否認性
  5452.  
  5453. 1364
  5454. 00:49:25,240 --> 00:49:26,240
  5455. 這四個
  5456.  
  5457. 1365
  5458. 00:49:26,240 --> 00:49:29,240
  5459. 對應的有四種比較常用的做法
  5460.  
  5461. 1366
  5462. 00:49:29,240 --> 00:49:30,240
  5463. 就加密
  5464.  
  5465. 1367
  5466. 00:49:30,240 --> 00:49:31,240
  5467. 然後是雜種函數
  5468.  
  5469. 1368
  5470. 00:49:31,240 --> 00:49:33,240
  5471. 或是認證
  5472.  
  5473. 1369
  5474. 00:49:33,240 --> 00:49:34,240
  5475. 認證的機制
  5476.  
  5477. 1370
  5478. 00:49:34,240 --> 00:49:36,240
  5479. 或者是現在要談的叫不可否認性
  5480.  
  5481. 1371
  5482. 00:49:36,240 --> 00:49:37,240
  5483. 我們會用數位簽章
  5484.  
  5485. 1372
  5486. 00:49:37,240 --> 00:49:41,240
  5487. 那注意這邊我們是先跳到第四項
  5488.  
  5489. 1373
  5490. 00:49:41,240 --> 00:49:43,240
  5491. 先跳到不可否認性的簽章
  5492.  
  5493. 1374
  5494. 00:49:43,240 --> 00:49:46,240
  5495. 因為主要的原因是因為認證
  5496.  
  5497. 1375
  5498. 00:49:46,240 --> 00:49:47,240
  5499. 它稍微複雜一些
  5500.  
  5501. 1376
  5502. 00:49:47,240 --> 00:49:49,240
  5503. 所以我們會比較後面才提
  5504.  
  5505. 1377
  5506. 00:49:49,240 --> 00:49:54,240
  5507. 好那
  5508.  
  5509. 1378
  5510. 00:49:54,240 --> 00:49:56,240
  5511. 不可否認性
  5512.  
  5513. 1379
  5514. 00:49:56,240 --> 00:49:57,240
  5515. 就是說簽章這件事情
  5516.  
  5517. 1380
  5518. 00:49:57,240 --> 00:49:59,240
  5519. 我們前面大概有提過
  5520.  
  5521. 1381
  5522. 00:49:59,240 --> 00:50:01,240
  5523. 就好比借錢之所以要簽借據
  5524.  
  5525. 1382
  5526. 00:50:01,240 --> 00:50:03,240
  5527. 就是因為怕口說無憑
  5528.  
  5529. 1383
  5530. 00:50:03,240 --> 00:50:05,240
  5531. 那所以這種情況就是說
  5532.  
  5533. 1384
  5534. 00:50:05,240 --> 00:50:07,240
  5535. 的確有可能
  5536.  
  5537. 1385
  5538. 00:50:07,240 --> 00:50:09,240
  5539. 惡意的A傳送了一個訊息
  5540.  
  5541. 1386
  5542. 00:50:09,240 --> 00:50:11,240
  5543. 然後過了一陣子之後
  5544.  
  5545. 1387
  5546. 00:50:11,240 --> 00:50:12,240
  5547. 他說他否認說
  5548.  
  5549. 1388
  5550. 00:50:12,240 --> 00:50:15,240
  5551. 否認說我從來沒有送過
  5552.  
  5553. 1389
  5554. 00:50:15,240 --> 00:50:17,240
  5555. 那所以
  5556.  
  5557. 1390
  5558. 00:50:17,240 --> 00:50:19,240
  5559. 為了要解決這個問題
  5560.  
  5561. 1391
  5562. 00:50:19,240 --> 00:50:21,240
  5563. 我們會用類似叫簽章的方式
  5564.  
  5565. 1392
  5566. 00:50:21,240 --> 00:50:24,240
  5567. 那用簽章的方式可以避免什麼
  5568.  
  5569. 1393
  5570. 00:50:24,240 --> 00:50:26,240
  5571. 可以避免兩種情況
  5572.  
  5573. 1394
  5574. 00:50:26,240 --> 00:50:29,240
  5575. 第一種是說
  5576.  
  5577. 1395
  5578. 00:50:29,240 --> 00:50:31,240
  5579. 冒用身份的問題
  5580.  
  5581. 1396
  5582. 00:50:31,240 --> 00:50:33,240
  5583. 我們會假定只有我們自己
  5584.  
  5585. 1397
  5586. 00:50:33,240 --> 00:50:35,240
  5587. 才能簽出我們自己的簽名
  5588.  
  5589. 1398
  5590. 00:50:35,240 --> 00:50:37,240
  5591. 別人沒有辦法偽造你的簽名
  5592.  
  5593. 1399
  5594. 00:50:37,240 --> 00:50:39,240
  5595. 那再來就是說
  5596.  
  5597. 1400
  5598. 00:50:39,240 --> 00:50:41,240
  5599. 也一樣跟前面提到說
  5600.  
  5601. 1401
  5602. 00:50:41,240 --> 00:50:43,240
  5603. 有可能會偽造
  5604.  
  5605. 1402
  5606. 00:50:43,240 --> 00:50:45,240
  5607. 有可能會偽造訊息
  5608.  
  5609. 1403
  5610. 00:50:45,240 --> 00:50:48,240
  5611. 簽章能夠解決這兩個問題
  5612.  
  5613. 1404
  5614. 00:50:48,240 --> 00:50:50,240
  5615. 那簽章
  5616.  
  5617. 1405
  5618. 00:50:50,240 --> 00:50:52,240
  5619. 簽章它也同樣都是用
  5620.  
  5621. 1406
  5622. 00:50:52,240 --> 00:50:54,240
  5623. 非對稱式的演算法來做
  5624.  
  5625. 1407
  5626. 00:50:54,240 --> 00:51:00,240
  5627. 所以它的簡單的流程來講的話
  5628.  
  5629. 1408
  5630. 00:51:00,240 --> 00:51:02,240
  5631. 簡單的概念大概會是說
  5632.  
  5633. 1409
  5634. 00:51:02,240 --> 00:51:04,240
  5635. 同樣我每一個人
  5636.  
  5637. 1410
  5638. 00:51:04,240 --> 00:51:07,240
  5639. 有自己的一對私藥和公藥
  5640.  
  5641. 1411
  5642. 00:51:07,240 --> 00:51:09,240
  5643. 並且我很有可能是
  5644.  
  5645. 1412
  5646. 00:51:09,240 --> 00:51:12,240
  5647. 通常都是從私藥開始去產生公藥
  5648.  
  5649. 1413
  5650. 00:51:12,240 --> 00:51:16,240
  5651. 那這邊講的是說
  5652.  
  5653. 1414
  5654. 00:51:16,240 --> 00:51:18,240
  5655. 為什麼會有簽章
  5656.  
  5657. 1415
  5658. 00:51:18,240 --> 00:51:20,240
  5659. 簽章的安全基礎在哪裡
  5660.  
  5661. 1416
  5662. 00:51:20,240 --> 00:51:22,240
  5663. 簽章的安全基礎是在於說
  5664.  
  5665. 1417
  5666. 00:51:22,240 --> 00:51:25,240
  5667. 只有我自己擁有我自己的私藥
  5668.  
  5669. 1418
  5670. 00:51:25,240 --> 00:51:27,240
  5671. 因為它絕對不外洩
  5672.  
  5673. 1419
  5674. 00:51:27,240 --> 00:51:28,240
  5675. 只有我自己有
  5676.  
  5677. 1420
  5678. 00:51:28,240 --> 00:51:31,240
  5679. 那並且我公藥四散在外
  5680.  
  5681. 1421
  5682. 00:51:31,240 --> 00:51:32,240
  5683. 前面也講過
  5684.  
  5685. 1422
  5686. 00:51:32,240 --> 00:51:34,240
  5687. 你單有公藥是推不回私藥的
  5688.  
  5689. 1423
  5690. 00:51:34,240 --> 00:51:35,240
  5691. 它的數學基礎
  5692.  
  5693. 1424
  5694. 00:51:35,240 --> 00:51:38,240
  5695. 這兩個前提之下呢
  5696.  
  5697. 1425
  5698. 00:51:38,240 --> 00:51:40,240
  5699. 這兩個前提之下
  5700.  
  5701. 1426
  5702. 00:51:40,240 --> 00:51:43,240
  5703. 要做這個簽章的人
  5704.  
  5705. 1427
  5706. 00:51:43,240 --> 00:51:45,240
  5707. 要產生這個簽章的人
  5708.  
  5709. 1428
  5710. 00:51:45,240 --> 00:51:48,240
  5711. 他會去用他自己的私藥去簽
  5712.  
  5713. 1429
  5714. 00:51:48,240 --> 00:51:50,240
  5715. 去簽一個訊息
  5716.  
  5717. 1430
  5718. 00:51:50,240 --> 00:51:52,240
  5719. 然後所有其他人
  5720.  
  5721. 1431
  5722. 00:51:52,240 --> 00:51:55,240
  5723. 因為都可以取得這個人的公藥
  5724.  
  5725. 1432
  5726. 00:51:55,240 --> 00:51:57,240
  5727. 所有其他人都可以用這個公
  5728.  
  5729. 1433
  5730. 00:51:57,240 --> 00:51:59,240
  5731. 用這個簽訴方的公藥
  5732.  
  5733. 1434
  5734. 00:51:59,240 --> 00:52:03,240
  5735. 來確認這個簽名是否有效
  5736.  
  5737. 1435
  5738. 00:52:03,240 --> 00:52:07,240
  5739. 所以概念跟我們一般會用蠻類似
  5740.  
  5741. 1436
  5742. 00:52:07,240 --> 00:52:08,240
  5743. 就是說假設你去
  5744.  
  5745. 1437
  5746. 00:52:08,240 --> 00:52:10,240
  5747. 有去到什麼做什麼簽名鑑定這種
  5748.  
  5749. 1438
  5750. 00:52:10,240 --> 00:52:12,240
  5751. 也是因為我們會認定
  5752.  
  5753. 1439
  5754. 00:52:12,240 --> 00:52:14,240
  5755. 有人能夠驗得出你的簽名
  5756.  
  5757. 1440
  5758. 00:52:14,240 --> 00:52:16,240
  5759. 是否由你所簽
  5760.  
  5761. 1441
  5762. 00:52:16,240 --> 00:52:17,240
  5763. 並且我們會假定
  5764.  
  5765. 1442
  5766. 00:52:17,240 --> 00:52:19,240
  5767. 只有你能簽出你自己的簽名
  5768.  
  5769. 1443
  5770. 00:52:19,240 --> 00:52:21,240
  5771. 整個簽名這件事情的安全性
  5772.  
  5773. 1444
  5774. 00:52:21,240 --> 00:52:24,240
  5775. 主要是建立在這裡
  5776.  
  5777. 1445
  5778. 00:52:24,240 --> 00:52:26,240
  5779. 所以實用上的話
  5780.  
  5781. 1446
  5782. 00:52:26,240 --> 00:52:27,240
  5783. 就會是類似說
  5784.  
  5785. 1447
  5786. 00:52:27,240 --> 00:52:32,240
  5787. 我這個人他要做簽章的時候
  5788.  
  5789. 1448
  5790. 00:52:32,240 --> 00:52:33,240
  5791. 對不同人
  5792.  
  5793. 1449
  5794. 00:52:33,240 --> 00:52:36,240
  5795. 他都會用他同一把私藥去做簽訴
  5796.  
  5797. 1450
  5798. 00:52:36,240 --> 00:52:41,240
  5799. 所有人都用這個人的公藥去確認
  5800.  
  5801. 1451
  5802. 00:52:41,240 --> 00:52:44,240
  5803. 注意是確認這個簽名
  5804.  
  5805. 1452
  5806. 00:52:44,240 --> 00:52:47,240
  5807. 這個方向跟我們前面提到過
  5808.  
  5809. 1453
  5810. 00:52:47,240 --> 00:52:50,240
  5811. 用非對稱式演算法做加密是反過來的
  5812.  
  5813. 1454
  5814. 00:52:50,240 --> 00:52:51,240
  5815. 前面我們在講
  5816.  
  5817. 1455
  5818. 00:52:51,240 --> 00:52:52,240
  5819. 非對稱式的加密的時候
  5820.  
  5821. 1456
  5822. 00:52:52,240 --> 00:52:58,240
  5823. 我們說傳送方用接收方的公藥加密
  5824.  
  5825. 1457
  5826. 00:52:58,240 --> 00:53:01,240
  5827. 並且只有接收方自己擁有那把私藥
  5828.  
  5829. 1458
  5830. 00:53:01,240 --> 00:53:02,240
  5831. 能夠去解密
  5832.  
  5833. 1459
  5834. 00:53:02,240 --> 00:53:04,240
  5835. 這邊的方向是反過來的
  5836.  
  5837. 1460
  5838. 00:53:04,240 --> 00:53:08,240
  5839. 我要issue一個簽章
  5840.  
  5841. 1461
  5842. 00:53:08,240 --> 00:53:11,240
  5843. 是由我自己用我的私藥
  5844.  
  5845. 1462
  5846. 00:53:11,240 --> 00:53:13,240
  5847. 才能證明我的身份去簽
  5848.  
  5849. 1463
  5850. 00:53:13,240 --> 00:53:17,240
  5851. 所有人都可以用我的公藥
  5852.  
  5853. 1464
  5854. 00:53:17,240 --> 00:53:23,240
  5855. 去確認這個簽名
  5856.  
  5857. 1465
  5858. 00:53:23,240 --> 00:53:25,240
  5859. 再來我們再看一下
  5860.  
  5861. 1466
  5862. 00:53:25,240 --> 00:53:27,240
  5863. 比較簡易的流程
  5864.  
  5865. 1467
  5866. 00:53:27,240 --> 00:53:29,240
  5867. 通常會怎麼做
  5868.  
  5869. 1468
  5870. 00:53:29,240 --> 00:53:31,240
  5871. 通常我們第一步
  5872.  
  5873. 1469
  5874. 00:53:31,240 --> 00:53:36,240
  5875. 會把我們所要簽的訊息
  5876.  
  5877. 1470
  5878. 00:53:36,240 --> 00:53:41,240
  5879. 我們先經過hash得到摘要
  5880.  
  5881. 1471
  5882. 00:53:41,240 --> 00:53:44,240
  5883. 再來我們會用這個私藥
  5884.  
  5885. 1472
  5886. 00:53:44,240 --> 00:53:45,240
  5887. 我說的A藥做簽名
  5888.  
  5889. 1473
  5890. 00:53:45,240 --> 00:53:48,240
  5891. A會把A的私藥拿來
  5892.  
  5893. 1474
  5894. 00:53:48,240 --> 00:53:52,240
  5895. 然後對這個訊息做簽章
  5896.  
  5897. 1475
  5898. 00:53:52,240 --> 00:53:53,240
  5899. 但是這邊我們講
  5900.  
  5901. 1476
  5902. 00:53:53,240 --> 00:53:56,240
  5903. 好比是用私藥去做加密
  5904.  
  5905. 1477
  5906. 00:53:56,240 --> 00:53:59,240
  5907. 所以這邊的加密我放了quote on quote
  5908.  
  5909. 1478
  5910. 00:53:59,240 --> 00:54:04,240
  5911. 當然為什麼我們要經過一個hash
  5912.  
  5913. 1479
  5914. 00:54:04,240 --> 00:54:05,240
  5915. 很簡單
  5916.  
  5917. 1480
  5918. 00:54:05,240 --> 00:54:08,240
  5919. 因為非對稱式的演算法運算複雜
  5920.  
  5921. 1481
  5922. 00:54:08,240 --> 00:54:11,240
  5923. 我們不希望它過大量的input
  5924.  
  5925. 1482
  5926. 00:54:11,240 --> 00:54:16,240
  5927. 所以因為我們沒有要去確認
  5928.  
  5929. 1483
  5930. 00:54:16,240 --> 00:54:22,240
  5931. 簽章來講它並沒有要帶有訊息
  5932.  
  5933. 1484
  5934. 00:54:22,240 --> 00:54:24,240
  5935. 訊息是分開傳的
  5936.  
  5937. 1485
  5938. 00:54:24,240 --> 00:54:26,240
  5939. 訊息夾帶簽章
  5940.  
  5941. 1486
  5942. 00:54:26,240 --> 00:54:29,240
  5943. 所以你不用去管訊息一不一樣
  5944.  
  5945. 1487
  5946. 00:54:29,240 --> 00:54:33,240
  5947. 簽章裡面只要包含成分就可以
  5948.  
  5949. 1488
  5950. 00:54:33,240 --> 00:54:36,240
  5951. 所以它會用hash
  5952.  
  5953. 1489
  5954. 00:54:36,240 --> 00:54:41,240
  5955. 再來它有了這個簽名做好了之後
  5956.  
  5957. 1490
  5958. 00:54:41,240 --> 00:54:46,240
  5959. 它會把訊息也傳送給B
  5960.  
  5961. 1491
  5962. 00:54:46,240 --> 00:54:48,240
  5963. 然後簽章也傳送給B
  5964.  
  5965. 1492
  5966. 00:54:48,240 --> 00:54:51,240
  5967. 所以剛剛講的訊息跟附件
  5968.  
  5969. 1493
  5970. 00:54:51,240 --> 00:54:52,240
  5971. 這邊為了簡化
  5972.  
  5973. 1494
  5974. 00:54:52,240 --> 00:54:54,240
  5975. 我們不去討論訊息的加密
  5976.  
  5977. 1495
  5978. 00:54:54,240 --> 00:54:56,240
  5979. 我們就假設不管它有沒有加密
  5980.  
  5981. 1496
  5982. 00:54:56,240 --> 00:54:58,240
  5983. 總之這個訊息接收方
  5984.  
  5985. 1497
  5986. 00:54:58,240 --> 00:55:02,240
  5987. 它得到了訊息和這個簽章
  5988.  
  5989. 1498
  5990. 00:55:02,240 --> 00:55:03,240
  5991. 最後會做什麼事
  5992.  
  5993. 1499
  5994. 00:55:03,240 --> 00:55:07,240
  5995. 最後我們這個接收方B
  5996.  
  5997. 1500
  5998. 00:55:07,240 --> 00:55:08,240
  5999. 它會用一樣的過程
  6000.  
  6001. 1501
  6002. 00:55:08,240 --> 00:55:12,240
  6003. 把收到的這個訊息經過hash
  6004.  
  6005. 1502
  6006. 00:55:12,240 --> 00:55:14,240
  6007. 也得到摘要
  6008.  
  6009. 1503
  6010. 00:55:14,240 --> 00:55:16,240
  6011. 然後把它收到的這個簽章
  6012.  
  6013. 1504
  6014. 00:55:16,240 --> 00:55:21,240
  6015. 好比是用A的公鑰去做解密
  6016.  
  6017. 1505
  6018. 00:55:21,240 --> 00:55:23,240
  6019. 好比是解密
  6020.  
  6021. 1506
  6022. 00:55:23,240 --> 00:55:25,240
  6023. 但是實際上我們就要確認
  6024.  
  6025. 1507
  6026. 00:55:25,240 --> 00:55:27,240
  6027. 做一個確認的函數
  6028.  
  6029. 1508
  6030. 00:55:27,240 --> 00:55:28,240
  6031. verification的函數
  6032.  
  6033. 1509
  6034. 00:55:28,240 --> 00:55:30,240
  6035. 然後最後再來比對
  6036.  
  6037. 1510
  6038. 00:55:30,240 --> 00:55:34,240
  6039. 比對這兩個hash值是否相同
  6040.  
  6041. 1511
  6042. 00:55:34,240 --> 00:55:40,240
  6043. 它大概是過這樣的過程
  6044.  
  6045. 1512
  6046. 00:55:40,240 --> 00:55:48,240
  6047. 所以到這邊為止有問題嗎
  6048.  
  6049. 1513
  6050. 00:55:48,240 --> 00:55:53,240
  6051. 好 我想我們先休息十分鐘
  6052.  
  6053. 1514
  6054. 00:55:53,240 --> 00:55:54,240
  6055. 十分鐘好了
  6056.  
  6057. 1515
  6058. 00:55:54,240 --> 00:55:55,240
  6059. 那我們回來的時候
  6060.  
  6061. 1516
  6062. 00:55:55,240 --> 00:55:58,240
  6063. 會再接著講第四個authentication
  6064.  
  6065. 1517
  6066. 00:55:58,240 --> 00:56:01,240
  6067. 我想時間差不多我們就繼續
  6068.  
  6069. 1518
  6070. 00:56:01,240 --> 00:56:02,240
  6071. 所以到剛剛為止
  6072.  
  6073. 1519
  6074. 00:56:02,240 --> 00:56:05,240
  6075. 我們大概看了四個安全目標
  6076.  
  6077. 1520
  6078. 00:56:05,240 --> 00:56:06,240
  6079. 其中三種
  6080.  
  6081. 1521
  6082. 00:56:06,240 --> 00:56:08,240
  6083. 保密性 資料完整性
  6084.  
  6085. 1522
  6086. 00:56:08,240 --> 00:56:10,240
  6087. 跟不可否認性
  6088.  
  6089. 1523
  6090. 00:56:10,240 --> 00:56:12,240
  6091. 接下來我們要看的是叫認證
  6092.  
  6093. 1524
  6094. 00:56:12,240 --> 00:56:14,240
  6095. 為什麼認證放在最後講
  6096.  
  6097. 1525
  6098. 00:56:14,240 --> 00:56:17,240
  6099. 是因為它其實要考量的細節比較多
  6100.  
  6101. 1526
  6102. 00:56:17,240 --> 00:56:19,240
  6103. 然後它的做法也比較複雜
  6104.  
  6105. 1527
  6106. 00:56:19,240 --> 00:56:21,240
  6107. 它算是一個複合型的功能
  6108.  
  6109. 1528
  6110. 00:56:21,240 --> 00:56:23,240
  6111. 所以我們把它擺在最後
  6112.  
  6113. 1529
  6114. 00:56:23,240 --> 00:56:30,240
  6115. 基本上就像加密一樣
  6116.  
  6117. 1530
  6118. 00:56:30,240 --> 00:56:34,240
  6119. 認證其實也可以簡單的分為
  6120.  
  6121. 1531
  6122. 00:56:34,240 --> 00:56:36,240
  6123. 對稱式或是非對稱式的做法
  6124.  
  6125. 1532
  6126. 00:56:36,240 --> 00:56:38,240
  6127. 這邊兩種我們會各舉一個例子
  6128.  
  6129. 1533
  6130. 00:56:38,240 --> 00:56:41,240
  6131. 首先要看到的是對稱式的
  6132.  
  6133. 1534
  6134. 00:56:41,240 --> 00:56:43,240
  6135. 對稱式的認證
  6136.  
  6137. 1535
  6138. 00:56:43,240 --> 00:56:45,240
  6139. 我們常常會使用的一種方法
  6140.  
  6141. 1536
  6142. 00:56:45,240 --> 00:56:47,240
  6143. 叫做訊息驗證碼
  6144.  
  6145. 1537
  6146. 00:56:47,240 --> 00:56:48,240
  6147. 或我們叫MAC
  6148.  
  6149. 1538
  6150. 00:56:48,240 --> 00:56:50,240
  6151. 訊息驗證碼
  6152.  
  6153. 1539
  6154. 00:56:50,240 --> 00:56:54,240
  6155. 它的基本原理就是會去
  6156.  
  6157. 1540
  6158. 00:56:54,240 --> 00:56:58,240
  6159. 把我們要加密的密文
  6160.  
  6161. 1541
  6162. 00:56:58,240 --> 00:57:04,240
  6163. 跟一個專門用來做訊息驗證碼用的key
  6164.  
  6165. 1542
  6166. 00:57:04,240 --> 00:57:06,240
  6167. 然後經過這個hash
  6168.  
  6169. 1543
  6170. 00:57:06,240 --> 00:57:08,240
  6171. 得到這個摘要
  6172.  
  6173. 1544
  6174. 00:57:08,240 --> 00:57:11,240
  6175. 或是在這邊我們叫做訊息驗證碼
  6176.  
  6177. 1545
  6178. 00:57:11,240 --> 00:57:13,240
  6179. 在這它的基本原理是
  6180.  
  6181. 1546
  6182. 00:57:13,240 --> 00:57:19,240
  6183. 它會把密文跟一把專門用來做MAC的key
  6184.  
  6185. 1547
  6186. 00:57:19,240 --> 00:57:21,240
  6187. 然後進到這個hash
  6188.  
  6189. 1548
  6190. 00:57:21,240 --> 00:57:23,240
  6191. 然後得到一個摘要
  6192.  
  6193. 1549
  6194. 00:57:23,240 --> 00:57:25,240
  6195. 或是在這邊叫做訊息驗證碼
  6196.  
  6197. 1550
  6198. 00:57:25,240 --> 00:57:29,240
  6199. 那它的最主要的目的呢
  6200.  
  6201. 1551
  6202. 00:57:29,240 --> 00:57:31,240
  6203. 是說除了能夠確認身份之外
  6204.  
  6205. 1552
  6206. 00:57:31,240 --> 00:57:33,240
  6207. 也能夠確認訊息有沒有被竄改
  6208.  
  6209. 1553
  6210. 00:57:33,240 --> 00:57:37,240
  6211. 所以我們再簡單的過一下這個流程的話呢
  6212.  
  6213. 1554
  6214. 00:57:37,240 --> 00:57:39,240
  6215. 首先我們假設
  6216.  
  6217. 1555
  6218. 00:57:39,240 --> 00:57:42,240
  6219. 可能用我們前面所提過的這些方法呢
  6220.  
  6221. 1556
  6222. 00:57:42,240 --> 00:57:45,240
  6223. 我們可以把一把藍色的這把MAC key
  6224.  
  6225. 1557
  6226. 00:57:45,240 --> 00:57:49,240
  6227. 安全的傳送給接收方B
  6228.  
  6229. 1558
  6230. 00:57:49,240 --> 00:57:52,240
  6231. 所以這邊這個禁要的傳送
  6232.  
  6233. 1559
  6234. 00:57:52,240 --> 00:57:54,240
  6235. 我們就先不考慮
  6236.  
  6237. 1560
  6238. 00:57:54,240 --> 00:57:56,240
  6239. 兩邊都有這把藍色的key
  6240.  
  6241. 1561
  6242. 00:57:56,240 --> 00:57:59,240
  6243. 並且他們有加密過的訊息
  6244.  
  6245. 1562
  6246. 00:57:59,240 --> 00:58:00,240
  6247. 加密過的訊息呢
  6248.  
  6249. 1563
  6250. 00:58:00,240 --> 00:58:04,240
  6251. 我們在這邊假設是用另外一把黃色的key來做的
  6252.  
  6253. 1564
  6254. 00:58:04,240 --> 00:58:06,240
  6255. 簡單來說就是要區分
  6256.  
  6257. 1565
  6258. 00:58:06,240 --> 00:58:10,240
  6259. 就是要多加一重保險的意思
  6260.  
  6261. 1566
  6262. 00:58:10,240 --> 00:58:13,240
  6263. 加密訊息用的這把黃色的key
  6264.  
  6265. 1567
  6266. 00:58:13,240 --> 00:58:16,240
  6267. 跟用來做MAC的MAC key可以是不一樣的
  6268.  
  6269. 1568
  6270. 00:58:16,240 --> 00:58:25,240
  6271. 所以它的原理上就是說
  6272.  
  6273. 1569
  6274. 00:58:25,240 --> 00:58:27,240
  6275. 我們看步驟好了
  6276.  
  6277. 1570
  6278. 00:58:27,240 --> 00:58:30,240
  6279. 首先它是把用黃色的這把key
  6280.  
  6281. 1571
  6282. 00:58:30,240 --> 00:58:33,240
  6283. 來加密它所要傳送的明文
  6284.  
  6285. 1572
  6286. 00:58:33,240 --> 00:58:35,240
  6287. 然後把它變成密文之後
  6288.  
  6289. 1573
  6290. 00:58:35,240 --> 00:58:39,240
  6291. 再來安全的傳送過了這把藍色的MAC key
  6292.  
  6293. 1574
  6294. 00:58:39,240 --> 00:58:42,240
  6295. 再來就可以像我們剛剛講的流程一樣
  6296.  
  6297. 1575
  6298. 00:58:42,240 --> 00:58:44,240
  6299. 去把這個訊息驗證碼做出來
  6300.  
  6301. 1576
  6302. 00:58:44,240 --> 00:58:47,240
  6303. 它會把密文加上這把MAC key
  6304.  
  6305. 1577
  6306. 00:58:47,240 --> 00:58:53,240
  6307. 經過hash得到訊息驗證碼MAC
  6308.  
  6309. 1578
  6310. 00:58:53,240 --> 00:58:55,240
  6311. 再來下一步的話呢
  6312.  
  6313. 1579
  6314. 00:58:55,240 --> 00:58:57,240
  6315. 我們傳送過去的會是兩個東西
  6316.  
  6317. 1580
  6318. 00:58:57,240 --> 00:59:01,240
  6319. 一樣是加密的密文跟它附帶的一個附件
  6320.  
  6321. 1581
  6322. 00:59:01,240 --> 00:59:02,240
  6323. 就是訊息驗證碼
  6324.  
  6325. 1582
  6326. 00:59:02,240 --> 00:59:04,240
  6327. 等於說我們把它attach在後面
  6328.  
  6329. 1583
  6330. 00:59:04,240 --> 00:59:07,240
  6331. 接收到的人會做什麼事
  6332.  
  6333. 1584
  6334. 00:59:07,240 --> 00:59:08,240
  6335. 他會去做驗證
  6336.  
  6337. 1585
  6338. 00:59:08,240 --> 00:59:11,240
  6339. 驗證這個訊息驗證碼
  6340.  
  6341. 1586
  6342. 00:59:11,240 --> 00:59:13,240
  6343. 首先呢是正確的情境
  6344.  
  6345. 1587
  6346. 00:59:13,240 --> 00:59:15,240
  6347. 是說它如果是正確的話
  6348.  
  6349. 1588
  6350. 00:59:15,240 --> 00:59:16,240
  6351. 它會收到
  6352.  
  6353. 1589
  6354. 00:59:16,240 --> 00:59:18,240
  6355. 它會把一樣收到這個密文
  6356.  
  6357. 1590
  6358. 00:59:18,240 --> 00:59:20,240
  6359. 加上它有的MAC key
  6360.  
  6361. 1591
  6362. 00:59:20,240 --> 00:59:22,240
  6363. 去做一樣的訊息驗證碼
  6364.  
  6365. 1592
  6366. 00:59:22,240 --> 00:59:26,240
  6367. 並且因為這個是健康的情境
  6368.  
  6369. 1593
  6370. 00:59:26,240 --> 00:59:27,240
  6371. 所以它得到的訊息驗證碼
  6372.  
  6373. 1594
  6374. 00:59:27,240 --> 00:59:28,240
  6375. 會是一模一樣的
  6376.  
  6377. 1595
  6378. 00:59:28,240 --> 00:59:29,240
  6379. 前面我們提過
  6380.  
  6381. 1596
  6382. 00:59:29,240 --> 00:59:31,240
  6383. 你進到hash來講
  6384.  
  6385. 1597
  6386. 00:59:31,240 --> 00:59:33,240
  6387. 你只要輸入一樣
  6388.  
  6389. 1598
  6390. 00:59:33,240 --> 00:59:35,240
  6391. 你的輸出一定會一樣
  6392.  
  6393. 1599
  6394. 00:59:35,240 --> 00:59:40,240
  6395. 那如果有出問題的話呢
  6396.  
  6397. 1600
  6398. 00:59:40,240 --> 00:59:43,240
  6399. 一個可能是你的訊息被篡改
  6400.  
  6401. 1601
  6402. 00:59:43,240 --> 00:59:46,240
  6403. 那就算你持有相同的key
  6404.  
  6405. 1602
  6406. 00:59:46,240 --> 00:59:50,240
  6407. 但是你得不出一樣的這個MAC
  6408.  
  6409. 1603
  6410. 00:59:50,240 --> 00:59:52,240
  6411. 所以在這邊的話
  6412.  
  6413. 1604
  6414. 00:59:52,240 --> 00:59:54,240
  6415. B就知道說
  6416.  
  6417. 1605
  6418. 00:59:54,240 --> 00:59:56,240
  6419. 這個訊息總之這個訊息
  6420.  
  6421. 1606
  6422. 00:59:56,240 --> 00:59:57,240
  6423. 我需要ignore
  6424.  
  6425. 1607
  6426. 00:59:57,240 --> 01:00:00,240
  6427. 因為它有可能錯在兩種環節
  6428.  
  6429. 1608
  6430. 01:00:00,240 --> 01:00:04,240
  6431. 它錯的可能性就是兩個input
  6432.  
  6433. 1609
  6434. 01:00:04,240 --> 01:00:06,240
  6435. 它有可能是密文錯了
  6436.  
  6437. 1610
  6438. 01:00:06,240 --> 01:00:08,240
  6439. 像這邊畫的是密文錯了
  6440.  
  6441. 1611
  6442. 01:00:08,240 --> 01:00:11,240
  6443. 或者是它的MAC key是錯的
  6444.  
  6445. 1612
  6446. 01:00:11,240 --> 01:00:12,240
  6447. 對吧
  6448.  
  6449. 1613
  6450. 01:00:12,240 --> 01:00:14,240
  6451. 就是它只要輸入的兩個
  6452.  
  6453. 1614
  6454. 01:00:14,240 --> 01:00:15,240
  6455. 裡面有一個不一樣
  6456.  
  6457. 1615
  6458. 01:00:15,240 --> 01:00:17,240
  6459. 它的結果就會差很多
  6460.  
  6461. 1616
  6462. 01:00:17,240 --> 01:00:19,240
  6463. 剛我們提過
  6464.  
  6465. 1617
  6466. 01:00:19,240 --> 01:00:22,240
  6467. 所以以這種例子而言的話
  6468.  
  6469. 1618
  6470. 01:00:22,240 --> 01:00:24,240
  6471. 你如果是惡意的第三方
  6472.  
  6473. 1619
  6474. 01:00:24,240 --> 01:00:26,240
  6475. 駭客X去篡改這個密文的話
  6476.  
  6477. 1620
  6478. 01:00:26,240 --> 01:00:28,240
  6479. 那它得到的MAC會是錯的
  6480.  
  6481. 1621
  6482. 01:00:28,240 --> 01:00:31,240
  6483. 或者是你本來就不是
  6484.  
  6485. 1622
  6486. 01:00:31,240 --> 01:00:34,240
  6487. 合法的接收方B
  6488.  
  6489. 1623
  6490. 01:00:34,240 --> 01:00:37,240
  6491. 然後你就不會有這一把
  6492.  
  6493. 1624
  6494. 01:00:37,240 --> 01:00:40,240
  6495. 要用來做訊息驗證用的這個MAC key
  6496.  
  6497. 1625
  6498. 01:00:40,240 --> 01:00:43,240
  6499. 那你當然就得不出正確的MAC
  6500.  
  6501. 1626
  6502. 01:00:43,240 --> 01:00:47,240
  6503. 所以大概的情況會有這兩種
  6504.  
  6505. 1627
  6506. 01:00:47,240 --> 01:00:51,240
  6507. 那這個來講就相對來講是單純的
  6508.  
  6509. 1628
  6510. 01:00:51,240 --> 01:00:55,240
  6511. 就是跟對稱式加密的概念很像
  6512.  
  6513. 1629
  6514. 01:00:55,240 --> 01:00:57,240
  6515. 它就建立在說
  6516.  
  6517. 1630
  6518. 01:00:57,240 --> 01:00:59,240
  6519. 你有一把加密用的key
  6520.  
  6521. 1631
  6522. 01:00:59,240 --> 01:01:01,240
  6523. 可以來確保說我們溝通
  6524.  
  6525. 1632
  6526. 01:01:01,240 --> 01:01:03,240
  6527. 只有我們兩個人可以看得到內容
  6528.  
  6529. 1633
  6530. 01:01:03,240 --> 01:01:05,240
  6531. 並且你有另外一個MAC key
  6532.  
  6533. 1634
  6534. 01:01:05,240 --> 01:01:09,240
  6535. 是用來做類似是身份的信物
  6536.  
  6537. 1635
  6538. 01:01:09,240 --> 01:01:11,240
  6539. 是說只要我有這把MAC key
  6540.  
  6541. 1636
  6542. 01:01:11,240 --> 01:01:14,240
  6543. 我就是合法的接收方或傳送方
  6544.  
  6545. 1637
  6546. 01:01:14,240 --> 01:01:17,240
  6547. 它的概念上大概是這樣
  6548.  
  6549. 1638
  6550. 01:01:17,240 --> 01:01:19,240
  6551. 接下來要看到的這個是
  6552.  
  6553. 1639
  6554. 01:01:19,240 --> 01:01:21,240
  6555. 就是開始是非對稱式的做法
  6556.  
  6557. 1640
  6558. 01:01:21,240 --> 01:01:23,240
  6559. 這個叫做我們一般講的憑證
  6560.  
  6561. 1641
  6562. 01:01:23,240 --> 01:01:26,240
  6563. 那憑證這邊一個很簡單的示意圖
  6564.  
  6565. 1642
  6566. 01:01:26,240 --> 01:01:30,240
  6567. 就是說我有一個人A
  6568.  
  6569. 1643
  6570. 01:01:30,240 --> 01:01:32,240
  6571. 他去把他的個人的一些資訊
  6572.  
  6573. 1644
  6574. 01:01:32,240 --> 01:01:35,240
  6575. 跟他的公要交給這個我們叫CA
  6576.  
  6577. 1645
  6578. 01:01:35,240 --> 01:01:37,240
  6579. 叫做Certificate of Authority
  6580.  
  6581. 1646
  6582. 01:01:37,240 --> 01:01:39,240
  6583. 叫憑證機構機關
  6584.  
  6585. 1647
  6586. 01:01:39,240 --> 01:01:42,240
  6587. 那他會頒發一個憑證過來
  6588.  
  6589. 1648
  6590. 01:01:42,240 --> 01:01:45,240
  6591. 類似於我們去像戶政事務所
  6592.  
  6593. 1649
  6594. 01:01:45,240 --> 01:01:48,240
  6595. 或是怎麼樣的地方去辦身份證的感覺
  6596.  
  6597. 1650
  6598. 01:01:48,240 --> 01:01:51,240
  6599. 我們得到了一個身份的憑證
  6600.  
  6601. 1651
  6602. 01:01:51,240 --> 01:01:54,240
  6603. 那為什麼要有這個東西
  6604.  
  6605. 1652
  6606. 01:01:54,240 --> 01:01:56,240
  6607. 我們前面講過
  6608.  
  6609. 1653
  6610. 01:01:56,240 --> 01:01:58,240
  6611. 在公開金鑰密碼學
  6612.  
  6613. 1654
  6614. 01:01:58,240 --> 01:02:01,240
  6615. 或是叫非對稱式密碼學的世界裡面
  6616.  
  6617. 1655
  6618. 01:02:01,240 --> 01:02:03,240
  6619. 公要可以釋散在外
  6620.  
  6621. 1656
  6622. 01:02:03,240 --> 01:02:05,240
  6623. 私要只能自己持有
  6624.  
  6625. 1657
  6626. 01:02:05,240 --> 01:02:07,240
  6627. 絕對不外洩
  6628.  
  6629. 1658
  6630. 01:02:07,240 --> 01:02:09,240
  6631. 公要可以釋散在外代表什麼事情
  6632.  
  6633. 1659
  6634. 01:02:09,240 --> 01:02:11,240
  6635. 就是說任何人都可以去access
  6636.  
  6637. 1660
  6638. 01:02:11,240 --> 01:02:14,240
  6639. 或者是去派發公要
  6640.  
  6641. 1661
  6642. 01:02:14,240 --> 01:02:15,240
  6643. 但是問題在於說
  6644.  
  6645. 1662
  6646. 01:02:15,240 --> 01:02:17,240
  6647. 你怎麼知道這個公要是誰的
  6648.  
  6649. 1663
  6650. 01:02:17,240 --> 01:02:21,240
  6651. 所以這邊我們舉一個例子
  6652.  
  6653. 1664
  6654. 01:02:21,240 --> 01:02:26,240
  6655. 所以這邊有一個惡意的駭客X
  6656.  
  6657. 1665
  6658. 01:02:26,240 --> 01:02:30,240
  6659. 他首先他就聲稱自己是B
  6660.  
  6661. 1666
  6662. 01:02:30,240 --> 01:02:34,240
  6663. 把他的公要PX交給A
  6664.  
  6665. 1667
  6666. 01:02:34,240 --> 01:02:35,240
  6667. A不知道
  6668.  
  6669. 1668
  6670. 01:02:35,240 --> 01:02:40,240
  6671. 他以為這個公要是屬於B的
  6672.  
  6673. 1669
  6674. 01:02:40,240 --> 01:02:43,240
  6675. 他用這個公要去加密訊息
  6676.  
  6677. 1670
  6678. 01:02:43,240 --> 01:02:45,240
  6679. 傳給駭客X
  6680.  
  6681. 1671
  6682. 01:02:45,240 --> 01:02:48,240
  6683. 駭客X有他自己的私有
  6684.  
  6685. 1672
  6686. 01:02:48,240 --> 01:02:51,240
  6687. 他當然可以解讀這個訊息
  6688.  
  6689. 1673
  6690. 01:02:51,240 --> 01:02:53,240
  6691. 這個是我們前面講的非對稱式的加密
  6692.  
  6693. 1674
  6694. 01:02:53,240 --> 01:02:55,240
  6695. 各位應該還記得
  6696.  
  6697. 1675
  6698. 01:02:55,240 --> 01:02:57,240
  6699. 所以他可以解讀這個訊息
  6700.  
  6701. 1676
  6702. 01:02:57,240 --> 01:03:01,240
  6703. 假設他拿到的是正確的這個PX的話
  6704.  
  6705. 1677
  6706. 01:03:01,240 --> 01:03:04,240
  6707. 他可以隨心所欲的改這個訊息
  6708.  
  6709. 1678
  6710. 01:03:04,240 --> 01:03:05,240
  6711. 交給B
  6712.  
  6713. 1679
  6714. 01:03:05,240 --> 01:03:07,240
  6715. 因為他有拿到B的公要
  6716.  
  6717. 1680
  6718. 01:03:07,240 --> 01:03:10,240
  6719. 並且B會依照駭客X所設定的
  6720.  
  6721. 1681
  6722. 01:03:10,240 --> 01:03:12,240
  6723. 用他的私要去做解密
  6724.  
  6725. 1682
  6726. 01:03:12,240 --> 01:03:14,240
  6727. 然後得到一個假的訊息
  6728.  
  6729. 1683
  6730. 01:03:14,240 --> 01:03:16,240
  6731. 這個是有可能發生的一種狀況
  6732.  
  6733. 1684
  6734. 01:03:16,240 --> 01:03:19,240
  6735. 那大家可以想更恐怖的狀況
  6736.  
  6737. 1685
  6738. 01:03:19,240 --> 01:03:20,240
  6739. 會是說
  6740.  
  6741. 1686
  6742. 01:03:20,240 --> 01:03:24,240
  6743. 他可以自己解讀這個訊息之外
  6744.  
  6745. 1687
  6746. 01:03:24,240 --> 01:03:27,240
  6747. 他甚至可以把正確的訊息傳給B
  6748.  
  6749. 1688
  6750. 01:03:27,240 --> 01:03:28,240
  6751. 他可以
  6752.  
  6753. 1689
  6754. 01:03:28,240 --> 01:03:32,240
  6755. 並且A、B以為溝通暢通無阻
  6756.  
  6757. 1690
  6758. 01:03:32,240 --> 01:03:36,240
  6759. 可是不知道有人完全的竊聽了這整個通訊
  6760.  
  6761. 1691
  6762. 01:03:36,240 --> 01:03:37,240
  6763. 各位應該可以想像
  6764.  
  6765. 1692
  6766. 01:03:37,240 --> 01:03:39,240
  6767. 就是這兩種都是有可能發生的
  6768.  
  6769. 1693
  6770. 01:03:39,240 --> 01:03:41,240
  6771. 所以我們現在要來講的
  6772.  
  6773. 1694
  6774. 01:03:41,240 --> 01:03:42,240
  6775. 大家應該可以想像
  6776.  
  6777. 1695
  6778. 01:03:42,240 --> 01:03:44,240
  6779. 就是這兩種都是有可能發生的
  6780.  
  6781. 1696
  6782. 01:03:44,240 --> 01:03:46,240
  6783. 所以這樣的關鍵的
  6784.  
  6785. 1697
  6786. 01:03:46,240 --> 01:03:48,240
  6787. 這樣的事發的原因是在於說
  6788.  
  6789. 1698
  6790. 01:03:48,240 --> 01:03:51,240
  6791. 因為認錯了這一把公要
  6792.  
  6793. 1699
  6794. 01:03:51,240 --> 01:03:53,240
  6795. 以為他是合法的
  6796.  
  6797. 1700
  6798. 01:03:53,240 --> 01:03:54,240
  6799. 以為他是合法的
  6800.  
  6801. 1701
  6802. 01:03:54,240 --> 01:03:55,240
  6803. 接收方B的公要
  6804.  
  6805. 1702
  6806. 01:03:55,240 --> 01:03:58,240
  6807. 但其實他是駭客X的公要
  6808.  
  6809. 1703
  6810. 01:03:58,240 --> 01:04:00,240
  6811. 因為我們前面講過公要事實上在外
  6812.  
  6813. 1704
  6814. 01:04:00,240 --> 01:04:04,240
  6815. 但是你不知道如何去證明這個公要的身份
  6816.  
  6817. 1705
  6818. 01:04:04,240 --> 01:04:10,240
  6819. 所以像前面講的
  6820.  
  6821. 1706
  6822. 01:04:10,240 --> 01:04:13,240
  6823. A有這個憑證
  6824.  
  6825. 1707
  6826. 01:04:13,240 --> 01:04:18,240
  6827. 事先A就先把他的憑證交給B
  6828.  
  6829. 1708
  6830. 01:04:18,240 --> 01:04:20,240
  6831. 我們再回頭看一下憑證的內容
  6832.  
  6833. 1709
  6834. 01:04:20,240 --> 01:04:22,240
  6835. 憑證的內容有什麼呢
  6836.  
  6837. 1710
  6838. 01:04:22,240 --> 01:04:24,240
  6839. 憑證的內容有A的身份
  6840.  
  6841. 1711
  6842. 01:04:24,240 --> 01:04:26,240
  6843. 要知道這個是誰
  6844.  
  6845. 1712
  6846. 01:04:26,240 --> 01:04:28,240
  6847. 綁定了他的公要
  6848.  
  6849. 1713
  6850. 01:04:28,240 --> 01:04:31,240
  6851. 這樣就把身份跟公要綁定在一起了
  6852.  
  6853. 1714
  6854. 01:04:31,240 --> 01:04:33,240
  6855. 再來他會有一個
  6856.  
  6857. 1715
  6858. 01:04:33,240 --> 01:04:35,240
  6859. 這邊有一個CA在這裡
  6860.  
  6861. 1716
  6862. 01:04:35,240 --> 01:04:39,240
  6863. 這個憑證是由CA所頒發
  6864.  
  6865. 1717
  6866. 01:04:39,240 --> 01:04:42,240
  6867. 並且有CA的簽名
  6868.  
  6869. 1718
  6870. 01:04:42,240 --> 01:04:45,240
  6871. 換回我們具體一點的例子來講
  6872.  
  6873. 1719
  6874. 01:04:45,240 --> 01:04:47,240
  6875. 我們的身份證會有什麼
  6876.  
  6877. 1720
  6878. 01:04:47,240 --> 01:04:49,240
  6879. 就是我們的身份證會有
  6880.  
  6881. 1721
  6882. 01:04:49,240 --> 01:04:51,240
  6883. 會有這個我們的到底是誰
  6884.  
  6885. 1722
  6886. 01:04:51,240 --> 01:04:53,240
  6887. 我們的一些個人的資訊
  6888.  
  6889. 1723
  6890. 01:04:53,240 --> 01:04:54,240
  6891. 父母配偶什麼的
  6892.  
  6893. 1724
  6894. 01:04:54,240 --> 01:04:56,240
  6895. 並且有我們最重要的那一個
  6896.  
  6897. 1725
  6898. 01:04:56,240 --> 01:04:58,240
  6899. 用來證明身份用的那一個
  6900.  
  6901. 1726
  6902. 01:04:58,240 --> 01:05:00,240
  6903. 我們可能叫做身份證字號
  6904.  
  6905. 1727
  6906. 01:05:00,240 --> 01:05:02,240
  6907. 那同時呢
  6908.  
  6909. 1728
  6910. 01:05:02,240 --> 01:05:04,240
  6911. 他會告訴你說
  6912.  
  6913. 1729
  6914. 01:05:04,240 --> 01:05:06,240
  6915. 這個到底是什麼證
  6916.  
  6917. 1730
  6918. 01:05:06,240 --> 01:05:07,240
  6919. 為什麼他是身份證
  6920.  
  6921. 1731
  6922. 01:05:07,240 --> 01:05:09,240
  6923. 是因為他的規定是這樣
  6924.  
  6925. 1732
  6926. 01:05:09,240 --> 01:05:11,240
  6927. 他是由什麼機構所頒發
  6928.  
  6929. 1733
  6930. 01:05:11,240 --> 01:05:13,240
  6931. 然後怎麼做成這樣身份證
  6932.  
  6933. 1734
  6934. 01:05:13,240 --> 01:05:16,240
  6935. 然後跟一些你絕對不可能去
  6936.  
  6937. 1735
  6938. 01:05:16,240 --> 01:05:19,240
  6939. 輕易去篡改的一些加工
  6940.  
  6941. 1736
  6942. 01:05:19,240 --> 01:05:22,240
  6943. 大概的概念是類似這樣子
  6944.  
  6945. 1737
  6946. 01:05:22,240 --> 01:05:27,240
  6947. 所以只要今天A有先把這個憑證交給B
  6948.  
  6949. 1738
  6950. 01:05:27,240 --> 01:05:30,240
  6951. 這個憑證上面會載明A到底是誰
  6952.  
  6953. 1739
  6954. 01:05:30,240 --> 01:05:32,240
  6955. 公要到底是什麼
  6956.  
  6957. 1740
  6958. 01:05:32,240 --> 01:05:34,240
  6959. 那再來
  6960.  
  6961. 1741
  6962. 01:05:34,240 --> 01:05:37,240
  6963. 駭客X要去冒充成A的時候
  6964.  
  6965. 1742
  6966. 01:05:37,240 --> 01:05:39,240
  6967. 他就會遇到問題
  6968.  
  6969. 1743
  6970. 01:05:39,240 --> 01:05:41,240
  6971. 因為他沒有辦法提出
  6972.  
  6973. 1744
  6974. 01:05:41,240 --> 01:05:43,240
  6975. 他沒有辦法提出正確的公要
  6976.  
  6977. 1745
  6978. 01:05:43,240 --> 01:05:45,240
  6979. 加上他的
  6980.  
  6981. 1746
  6982. 01:05:45,240 --> 01:05:47,240
  6983. 他沒有辦法提出一個偽造的證書
  6984.  
  6985. 1747
  6986. 01:05:47,240 --> 01:05:50,240
  6987. 沒有辦法把他的公要PX
  6988.  
  6989. 1748
  6990. 01:05:50,240 --> 01:05:52,240
  6991. 跟A的身份綁在一起
  6992.  
  6993. 1749
  6994. 01:05:52,240 --> 01:05:56,240
  6995. 因為A的身份已經跟A的公要綁在一起了
  6996.  
  6997. 1750
  6998. 01:05:56,240 --> 01:05:58,240
  6999. 他的大概的概念是這樣子
  7000.  
  7001. 1751
  7002. 01:06:00,240 --> 01:06:03,240
  7003. 好,那我們這邊會先看一個簡圖
  7004.  
  7005. 1752
  7006. 01:06:03,240 --> 01:06:06,240
  7007. 是說到底這個證書是怎麼樣
  7008.  
  7009. 1753
  7010. 01:06:06,240 --> 01:06:09,240
  7011. 憑證是怎麼樣做出來的
  7012.  
  7013. 1754
  7014. 01:06:09,240 --> 01:06:11,240
  7015. 所以前面講過了
  7016.  
  7017. 1755
  7018. 01:06:11,240 --> 01:06:13,240
  7019. 這裡面我們講的是
  7020.  
  7021. 1756
  7022. 01:06:13,240 --> 01:06:16,240
  7023. 我們要去證明我們要做一張給Bob的憑證
  7024.  
  7025. 1757
  7026. 01:06:16,240 --> 01:06:19,240
  7027. 那我們分為左半邊是
  7028.  
  7029. 1758
  7030. 01:06:19,240 --> 01:06:23,240
  7031. 就是左半邊是建立這個憑證的過程
  7032.  
  7033. 1759
  7034. 01:06:23,240 --> 01:06:27,240
  7035. 右半邊是確認這個憑證的過程
  7036.  
  7037. 1760
  7038. 01:06:27,240 --> 01:06:30,240
  7039. 左半邊來講我們先從他的成份來
  7040.  
  7041. 1761
  7042. 01:06:30,240 --> 01:06:32,240
  7043. 他會包含Bob的ID
  7044.  
  7045. 1762
  7046. 01:06:32,240 --> 01:06:34,240
  7047. 就是他的個人的一些資訊
  7048.  
  7049. 1763
  7050. 01:06:34,240 --> 01:06:37,240
  7051. 跟最重要的Bob的公要
  7052.  
  7053. 1764
  7054. 01:06:37,240 --> 01:06:39,240
  7055. 然後再來
  7056.  
  7057. 1765
  7058. 01:06:39,240 --> 01:06:42,240
  7059. 這一張憑證是由誰所簽發的
  7060.  
  7061. 1766
  7062. 01:06:42,240 --> 01:06:45,240
  7063. 然後最後下面再配合一段簽章
  7064.  
  7065. 1767
  7066. 01:06:45,240 --> 01:06:48,240
  7067. 那他怎麼做的
  7068.  
  7069. 1768
  7070. 01:06:48,240 --> 01:06:50,240
  7071. 他會把前面這三個
  7072.  
  7073. 1769
  7074. 01:06:50,240 --> 01:06:52,240
  7075. 上面這三個成份
  7076.  
  7077. 1770
  7078. 01:06:52,240 --> 01:06:54,240
  7079. 過一個Hash
  7080.  
  7081. 1771
  7082. 01:06:54,240 --> 01:06:57,240
  7083. 然後得到一個短的摘要
  7084.  
  7085. 1772
  7086. 01:06:57,240 --> 01:07:00,240
  7087. 再來就是用簽章
  7088.  
  7089. 1773
  7090. 01:07:00,240 --> 01:07:02,240
  7091. 我們剛剛講說簽章是類似於
  7092.  
  7093. 1774
  7094. 01:07:02,240 --> 01:07:05,240
  7095. 你用私藥去做加密
  7096.  
  7097. 1775
  7098. 01:07:05,240 --> 01:07:09,240
  7099. 這邊的話這個簽章是由CA來做的
  7100.  
  7101. 1776
  7102. 01:07:09,240 --> 01:07:13,240
  7103. 由這個國家單位或是憑證機構
  7104.  
  7105. 1777
  7106. 01:07:13,240 --> 01:07:15,240
  7107. 來幫你的公要背書
  7108.  
  7109. 1778
  7110. 01:07:15,240 --> 01:07:17,240
  7111. 他用他的私藥去簽
  7112.  
  7113. 1779
  7114. 01:07:17,240 --> 01:07:19,240
  7115. 得到了這個簽章
  7116.  
  7117. 1780
  7118. 01:07:19,240 --> 01:07:23,240
  7119. 所以把這三個資訊欄
  7120.  
  7121. 1781
  7122. 01:07:23,240 --> 01:07:26,240
  7123. 跟這一個簽章的附件
  7124.  
  7125. 1782
  7126. 01:07:26,240 --> 01:07:29,240
  7127. 組合起來這就是一張完整的憑證
  7128.  
  7129. 1783
  7130. 01:07:29,240 --> 01:07:31,240
  7131. 那這樣的憑證
  7132.  
  7133. 1784
  7134. 01:07:31,240 --> 01:07:32,240
  7135. 收到的人會做什麼事
  7136.  
  7137. 1785
  7138. 01:07:32,240 --> 01:07:34,240
  7139. 收到的人會一樣
  7140.  
  7141. 1786
  7142. 01:07:34,240 --> 01:07:36,240
  7143. 把這三個資訊過Hash
  7144.  
  7145. 1787
  7146. 01:07:36,240 --> 01:07:37,240
  7147. 然後並且
  7148.  
  7149. 1788
  7150. 01:07:37,240 --> 01:07:40,240
  7151. 也就是去verify這個signature
  7152.  
  7153. 1789
  7154. 01:07:40,240 --> 01:07:41,240
  7155. 去確認這個簽名
  7156.  
  7157. 1790
  7158. 01:07:41,240 --> 01:07:44,240
  7159. 他們會用CA的公要
  7160.  
  7161. 1791
  7162. 01:07:44,240 --> 01:07:48,240
  7163. 來去類似於去對這個簽章做解密
  7164.  
  7165. 1792
  7166. 01:07:48,240 --> 01:07:50,240
  7167. 或是我們叫做確認簽名
  7168.  
  7169. 1793
  7170. 01:07:50,240 --> 01:07:51,240
  7171. 得出來的是
  7172.  
  7173. 1794
  7174. 01:07:51,240 --> 01:07:55,240
  7175. 這個Hash能夠做比對
  7176.  
  7177. 1795
  7178. 01:07:55,240 --> 01:08:00,240
  7179. 這個會太複雜嗎
  7180.  
  7181. 1796
  7182. 01:08:00,240 --> 01:08:03,240
  7183. 所以整體來說
  7184.  
  7185. 1797
  7186. 01:08:03,240 --> 01:08:06,240
  7187. 這樣的就包含了說
  7188.  
  7189. 1798
  7190. 01:08:06,240 --> 01:08:09,240
  7191. 應該說整件事情的關鍵在於
  7192.  
  7193. 1799
  7194. 01:08:09,240 --> 01:08:11,240
  7195. 我們如何解決公要
  7196.  
  7197. 1800
  7198. 01:08:11,240 --> 01:08:13,240
  7199. 事實上在外不可信的問題
  7200.  
  7201. 1801
  7202. 01:08:13,240 --> 01:08:16,240
  7203. 他的解法其實非常的單純
  7204.  
  7205. 1802
  7206. 01:08:16,240 --> 01:08:18,240
  7207. 我們就是找人幫我們背書
  7208.  
  7209. 1803
  7210. 01:08:18,240 --> 01:08:19,240
  7211. 找人幫我們背書
  7212.  
  7213. 1804
  7214. 01:08:19,240 --> 01:08:22,240
  7215. 誰有資格幫我們背書
  7216.  
  7217. 1805
  7218. 01:08:22,240 --> 01:08:23,240
  7219. 誰有資格幫我們背書
  7220.  
  7221. 1806
  7222. 01:08:23,240 --> 01:08:24,240
  7223. 我們
  7224.  
  7225. 1807
  7226. 01:08:24,240 --> 01:08:25,240
  7227. 誰有資格幫我們背書的話
  7228.  
  7229. 1808
  7230. 01:08:25,240 --> 01:08:26,240
  7231. 那個答案會是說
  7232.  
  7233. 1809
  7234. 01:08:26,240 --> 01:08:31,240
  7235. 我們不會去懷疑他的公要
  7236.  
  7237. 1810
  7238. 01:08:31,240 --> 01:08:33,240
  7239. 普通人的公要我們不信
  7240.  
  7241. 1811
  7242. 01:08:33,240 --> 01:08:35,240
  7243. 有力人士的公要我們相信
  7244.  
  7245. 1812
  7246. 01:08:35,240 --> 01:08:36,240
  7247. 關鍵就在這裡
  7248.  
  7249. 1813
  7250. 01:08:36,240 --> 01:08:41,240
  7251. 他的解法就是這麼樣的單純
  7252.  
  7253. 1814
  7254. 01:08:41,240 --> 01:08:42,240
  7255. 所以等於說再回來看到
  7256.  
  7257. 1815
  7258. 01:08:42,240 --> 01:08:43,240
  7259. 這邊的關鍵是什麼
  7260.  
  7261. 1816
  7262. 01:08:43,240 --> 01:08:46,240
  7263. 你明明就已經要證明公要
  7264.  
  7265. 1817
  7266. 01:08:46,240 --> 01:08:47,240
  7267. 公要跟身份的關係了
  7268.  
  7269. 1818
  7270. 01:08:47,240 --> 01:08:49,240
  7271. 為什麼你這邊可以用一個CA的公要
  7272.  
  7273. 1819
  7274. 01:08:49,240 --> 01:08:51,240
  7275. 去確認這個簽名
  7276.  
  7277. 1820
  7278. 01:08:51,240 --> 01:08:52,240
  7279. 原因很單純
  7280.  
  7281. 1821
  7282. 01:08:52,240 --> 01:08:53,240
  7283. 因為CA是有力人士
  7284.  
  7285. 1822
  7286. 01:08:53,240 --> 01:08:55,240
  7287. 我們不會去懷疑他的公要
  7288.  
  7289. 1823
  7290. 01:08:55,240 --> 01:08:58,240
  7291. 就這樣而已
  7292.  
  7293. 1824
  7294. 01:08:58,240 --> 01:08:59,240
  7295. 那當然來講
  7296.  
  7297. 1825
  7298. 01:08:59,240 --> 01:09:02,240
  7299. 這樣的CA就會慢慢的構成
  7300.  
  7301. 1826
  7302. 01:09:02,240 --> 01:09:04,240
  7303. 一個類似樹狀的結構
  7304.  
  7305. 1827
  7306. 01:09:04,240 --> 01:09:08,240
  7307. 你可能有普通等級的有力人士
  7308.  
  7309. 1828
  7310. 01:09:08,240 --> 01:09:10,240
  7311. 可能到什麼地方代表
  7312.  
  7313. 1829
  7314. 01:09:10,240 --> 01:09:12,240
  7315. 往上一路到政府之類的
  7316.  
  7317. 1830
  7318. 01:09:12,240 --> 01:09:13,240
  7319. 這樣子的情況
  7320.  
  7321. 1831
  7322. 01:09:13,240 --> 01:09:16,240
  7323. 那可能就會最後停在一個
  7324.  
  7325. 1832
  7326. 01:09:16,240 --> 01:09:18,240
  7327. root CA這樣的一個機構
  7328.  
  7329. 1833
  7330. 01:09:18,240 --> 01:09:22,240
  7331. 並且他的憑證是由自己來簽自己
  7332.  
  7333. 1834
  7334. 01:09:22,240 --> 01:09:27,240
  7335. 因為他是最有力的人士
  7336.  
  7337. 1835
  7338. 01:09:27,240 --> 01:09:30,240
  7339. 所以剛剛提的是比較簡化的情境
  7340.  
  7341. 1836
  7342. 01:09:30,240 --> 01:09:33,240
  7343. 就是說我們剛剛所提到的憑證
  7344.  
  7345. 1837
  7346. 01:09:33,240 --> 01:09:37,240
  7347. 大概是包含這幾個基本的資訊
  7348.  
  7349. 1838
  7350. 01:09:37,240 --> 01:09:38,240
  7351. 實務上來講的話
  7352.  
  7353. 1839
  7354. 01:09:38,240 --> 01:09:42,240
  7355. 現在流通比較常使用的憑證系統
  7356.  
  7357. 1840
  7358. 01:09:42,240 --> 01:09:45,240
  7359. 都是叫做X.509這一套的憑證
  7360.  
  7361. 1841
  7362. 01:09:45,240 --> 01:09:48,240
  7363. 那他現在是在第七版
  7364.  
  7365. 1842
  7366. 01:09:48,240 --> 01:09:50,240
  7367. 簡單的講他的內容的話
  7368.  
  7369. 1843
  7370. 01:09:50,240 --> 01:09:54,240
  7371. 左邊這個是他完整的憑證的資料結構
  7372.  
  7373. 1844
  7374. 01:09:54,240 --> 01:09:56,240
  7375. 那他裡面會包含
  7376.  
  7377. 1845
  7378. 01:09:56,240 --> 01:09:57,240
  7379. 很快的帶過
  7380.  
  7381. 1846
  7382. 01:09:57,240 --> 01:10:00,240
  7383. 就是包含除了剛剛提到的那些簡易的話
  7384.  
  7385. 1847
  7386. 01:10:00,240 --> 01:10:01,240
  7387. 包含他的版本號
  7388.  
  7389. 1848
  7390. 01:10:01,240 --> 01:10:03,240
  7391. 然後可能他的證書號
  7392.  
  7393. 1849
  7394. 01:10:03,240 --> 01:10:05,240
  7395. 或者是說他用哪些演算法
  7396.  
  7397. 1850
  7398. 01:10:05,240 --> 01:10:07,240
  7399. 他是用哪些演算法做的憑證
  7400.  
  7401. 1851
  7402. 01:10:07,240 --> 01:10:09,240
  7403. 因為有不同的演算法可以做
  7404.  
  7405. 1852
  7406. 01:10:09,240 --> 01:10:11,240
  7407. 或者說他用哪一個演算法
  7408.  
  7409. 1853
  7410. 01:10:11,240 --> 01:10:13,240
  7411. 跟哪一些參數等等的這些資訊
  7412.  
  7413. 1854
  7414. 01:10:13,240 --> 01:10:16,240
  7415. 總之意思跟前面我們看到的製作憑證
  7416.  
  7417. 1855
  7418. 01:10:16,240 --> 01:10:19,240
  7419. 確認憑證的那一套是類似的
  7420.  
  7421. 1856
  7422. 01:10:19,240 --> 01:10:22,240
  7423. 那並且他也會有另外一個是叫做
  7424.  
  7425. 1857
  7426. 01:10:22,240 --> 01:10:24,240
  7427. 叫做Revocation List
  7428.  
  7429. 1858
  7430. 01:10:24,240 --> 01:10:26,240
  7431. 就是說你憑證會有效期
  7432.  
  7433. 1859
  7434. 01:10:26,240 --> 01:10:29,240
  7435. 當然我們希望你過一陣子之後再去更新你的憑證
  7436.  
  7437. 1860
  7438. 01:10:29,240 --> 01:10:33,240
  7439. 所以他會有一個憑證撤回的時候
  7440.  
  7441. 1861
  7442. 01:10:33,240 --> 01:10:35,240
  7443. 他也需要留存做記錄
  7444.  
  7445. 1862
  7446. 01:10:35,240 --> 01:10:37,240
  7447. 然後以後可以做集合
  7448.  
  7449. 1863
  7450. 01:10:37,240 --> 01:10:40,240
  7451. 所以這樣的提這件事情的重點
  7452.  
  7453. 1864
  7454. 01:10:40,240 --> 01:10:42,240
  7455. 是跟大家講說
  7456.  
  7457. 1865
  7458. 01:10:42,240 --> 01:10:44,240
  7459. 現在來講最常使用的
  7460.  
  7461. 1866
  7462. 01:10:44,240 --> 01:10:46,240
  7463. 不管是在怎麼樣的
  7464.  
  7465. 1867
  7466. 01:10:46,240 --> 01:10:49,240
  7467. Cloud的結構都會用這種叫做
  7468.  
  7469. 1868
  7470. 01:10:49,240 --> 01:10:51,240
  7471. 公開基要基礎建設
  7472.  
  7473. 1869
  7474. 01:10:51,240 --> 01:10:53,240
  7475. 叫做Infrastructure
  7476.  
  7477. 1870
  7478. 01:10:53,240 --> 01:10:54,240
  7479. 或叫做Public Key Infrastructure
  7480.  
  7481. 1871
  7482. 01:10:54,240 --> 01:10:56,240
  7483. 就是PKI這種東西
  7484.  
  7485. 1872
  7486. 01:10:56,240 --> 01:10:57,240
  7487. 那這個東西的重點是什麼
  7488.  
  7489. 1873
  7490. 01:10:57,240 --> 01:10:59,240
  7491. 我們這邊提供一個簡單的定義
  7492.  
  7493. 1874
  7494. 01:10:59,240 --> 01:11:01,240
  7495. 就是說他可能是有硬體
  7496.  
  7497. 1875
  7498. 01:11:01,240 --> 01:11:04,240
  7499. 有軟體、有人、有政策、有流程
  7500.  
  7501. 1876
  7502. 01:11:04,240 --> 01:11:06,240
  7503. 但是他來做什麼呢
  7504.  
  7505. 1877
  7506. 01:11:06,240 --> 01:11:10,240
  7507. 他會去建立、管理、儲存、派發
  7508.  
  7509. 1878
  7510. 01:11:10,240 --> 01:11:12,240
  7511. 或者是去撤回憑證
  7512.  
  7513. 1879
  7514. 01:11:12,240 --> 01:11:14,240
  7515. 這邊的重點是在於說
  7516.  
  7517. 1880
  7518. 01:11:14,240 --> 01:11:15,240
  7519. 他整件事情
  7520.  
  7521. 1881
  7522. 01:11:15,240 --> 01:11:16,240
  7523. 整個Public Key Infrastructure
  7524.  
  7525. 1882
  7526. 01:11:16,240 --> 01:11:19,240
  7527. 他能夠去做認證的基礎
  7528.  
  7529. 1883
  7530. 01:11:19,240 --> 01:11:21,240
  7531. 都建立在憑證上面
  7532.  
  7533. 1884
  7534. 01:11:21,240 --> 01:11:24,240
  7535. 那下面這邊就是
  7536.  
  7537. 1885
  7538. 01:11:24,240 --> 01:11:26,240
  7539. 下面這邊就是再多一些
  7540.  
  7541. 1886
  7542. 01:11:26,240 --> 01:11:28,240
  7543. 包含說他的這個PKI裡面
  7544.  
  7545. 1887
  7546. 01:11:28,240 --> 01:11:29,240
  7547. 有什麼樣的成員
  7548.  
  7549. 1888
  7550. 01:11:29,240 --> 01:11:34,240
  7551. 成員可能就會有各個中端的實體
  7552.  
  7553. 1889
  7554. 01:11:34,240 --> 01:11:35,240
  7555. 比方說像Bob
  7556.  
  7557. 1890
  7558. 01:11:35,240 --> 01:11:37,240
  7559. 可能是系統裡面的成員
  7560.  
  7561. 1891
  7562. 01:11:37,240 --> 01:11:40,240
  7563. 然後或是也會有我們剛剛講到的CA
  7564.  
  7565. 1892
  7566. 01:11:40,240 --> 01:11:42,240
  7567. 那有CA之外呢
  7568.  
  7569. 1893
  7570. 01:11:42,240 --> 01:11:43,240
  7571. 也有可能會有RA
  7572.  
  7573. 1894
  7574. 01:11:43,240 --> 01:11:45,240
  7575. RA是專門做註冊的
  7576.  
  7577. 1895
  7578. 01:11:45,240 --> 01:11:49,240
  7579. 就是說剛剛在我們舉的例子裡面
  7580.  
  7581. 1896
  7582. 01:11:49,240 --> 01:11:51,240
  7583. 我們人去譬如說戶政事務所辦
  7584.  
  7585. 1897
  7586. 01:11:51,240 --> 01:11:52,240
  7587. 然後拿到那個身分證
  7588.  
  7589. 1898
  7590. 01:11:52,240 --> 01:11:56,240
  7591. 之所以我們以後能夠用身分證暢行無阻
  7592.  
  7593. 1899
  7594. 01:11:56,240 --> 01:11:58,240
  7595. 是因為我們在去辦的時候
  7596.  
  7597. 1900
  7598. 01:11:58,240 --> 01:11:59,240
  7599. 他經過了嚴格的確認
  7600.  
  7601. 1901
  7602. 01:11:59,240 --> 01:12:01,240
  7603. 確認你是正確的人
  7604.  
  7605. 1902
  7606. 01:12:01,240 --> 01:12:02,240
  7607. 才頒發給你你的身分證
  7608.  
  7609. 1903
  7610. 01:12:02,240 --> 01:12:05,240
  7611. 所以註冊的時候也是非常重要的一步
  7612.  
  7613. 1904
  7614. 01:12:05,240 --> 01:12:08,240
  7615. 你當然不會希望說註冊的時候
  7616.  
  7617. 1905
  7618. 01:12:08,240 --> 01:12:11,240
  7619. 可以輕易的把駭客X的身分
  7620.  
  7621. 1906
  7622. 01:12:11,240 --> 01:12:13,240
  7623. 跟A的公要綁在一起
  7624.  
  7625. 1907
  7626. 01:12:13,240 --> 01:12:16,240
  7627. 所以註冊也是另外一個難題
  7628.  
  7629. 1908
  7630. 01:12:16,240 --> 01:12:17,240
  7631. 所以註冊有可能是會分開
  7632.  
  7633. 1909
  7634. 01:12:17,240 --> 01:12:19,240
  7635. 另外一個RA來做
  7636.  
  7637. 1910
  7638. 01:12:19,240 --> 01:12:21,240
  7639. 然後並且也會有憑證撤回
  7640.  
  7641. 1911
  7642. 01:12:21,240 --> 01:12:25,240
  7643. 叫revocation list的管理
  7644.  
  7645. 1912
  7646. 01:12:25,240 --> 01:12:28,240
  7647. 跟最後就是storage
  7648.  
  7649. 1913
  7650. 01:12:28,240 --> 01:12:32,240
  7651. 那所以整個PKI大概會有類似這樣的架構
  7652.  
  7653. 1914
  7654. 01:12:32,240 --> 01:12:34,240
  7655. 跟他的目的是在這裡
  7656.  
  7657. 1915
  7658. 01:12:34,240 --> 01:12:39,240
  7659. 所以重點還是回到說
  7660.  
  7661. 1916
  7662. 01:12:39,240 --> 01:12:41,240
  7663. 現在來講最常用的這些
  7664.  
  7665. 1917
  7666. 01:12:41,240 --> 01:12:42,240
  7667. 特別是認證的手段
  7668.  
  7669. 1918
  7670. 01:12:42,240 --> 01:12:45,240
  7671. 大部分都圍繞在這個憑證上面
  7672.  
  7673. 1919
  7674. 01:12:45,240 --> 01:12:51,240
  7675. 好那所以到剛剛為止
  7676.  
  7677. 1920
  7678. 01:12:51,240 --> 01:12:55,240
  7679. 到剛剛為止大概講了這個
  7680.  
  7681. 1921
  7682. 01:12:55,240 --> 01:12:59,240
  7683. 我們大概是已經完成了四個安全的目標
  7684.  
  7685. 1922
  7686. 01:12:59,240 --> 01:13:04,240
  7687. 那剛剛才講完的認證
  7688.  
  7689. 1923
  7690. 01:13:04,240 --> 01:13:06,240
  7691. 我們有講了所謂有對稱式的
  7692.  
  7693. 1924
  7694. 01:13:06,240 --> 01:13:07,240
  7695. 跟非對稱式的認證
  7696.  
  7697. 1925
  7698. 01:13:07,240 --> 01:13:10,240
  7699. 再來的話我們要提的是
  7700.  
  7701. 1926
  7702. 01:13:10,240 --> 01:13:14,240
  7703. 這邊先幫大家整理了我們前面所提過的
  7704.  
  7705. 1927
  7706. 01:13:14,240 --> 01:13:18,240
  7707. 下面有四個我們前面提到的安全的目標
  7708.  
  7709. 1928
  7710. 01:13:18,240 --> 01:13:19,240
  7711. 跟對應的做法
  7712.  
  7713. 1929
  7714. 01:13:19,240 --> 01:13:23,240
  7715. 在保密性而言我們會利用加密
  7716.  
  7717. 1930
  7718. 01:13:23,240 --> 01:13:26,240
  7719. 那可能包含了對稱跟非對稱式的加密
  7720.  
  7721. 1931
  7722. 01:13:26,240 --> 01:13:28,240
  7723. 那資料完整性的話我們用雜湊函數
  7724.  
  7725. 1932
  7726. 01:13:28,240 --> 01:13:30,240
  7727. 用來比對摘要是否一樣
  7728.  
  7729. 1933
  7730. 01:13:30,240 --> 01:13:31,240
  7731. 來確認資料完整性
  7732.  
  7733. 1934
  7734. 01:13:31,240 --> 01:13:34,240
  7735. 那這個認證的話
  7736.  
  7737. 1935
  7738. 01:13:34,240 --> 01:13:35,240
  7739. 剛剛最後提的比較難一點
  7740.  
  7741. 1936
  7742. 01:13:35,240 --> 01:13:37,240
  7743. 那我們會用對稱式的
  7744.  
  7745. 1937
  7746. 01:13:37,240 --> 01:13:39,240
  7747. 我們會用這個訊息認證碼
  7748.  
  7749. 1938
  7750. 01:13:39,240 --> 01:13:41,240
  7751. 或者是用非對稱式的時候
  7752.  
  7753. 1939
  7754. 01:13:41,240 --> 01:13:43,240
  7755. 我們會用這個憑證來做
  7756.  
  7757. 1940
  7758. 01:13:43,240 --> 01:13:46,240
  7759. 那不可否認性的話呢
  7760.  
  7761. 1941
  7762. 01:13:46,240 --> 01:13:48,240
  7763. 就通常是依靠數位簽章
  7764.  
  7765. 1942
  7766. 01:13:48,240 --> 01:13:51,240
  7767. 那值得注意的是說
  7768.  
  7769. 1943
  7770. 01:13:51,240 --> 01:13:53,240
  7771. 這裡面大部分都會有牽涉到key
  7772.  
  7773. 1944
  7774. 01:13:53,240 --> 01:13:55,240
  7775. 所以其實在我們在講
  7776.  
  7777. 1945
  7778. 01:13:55,240 --> 01:13:57,240
  7779. 整套要去做密碼學的時候
  7780.  
  7781. 1946
  7782. 01:13:57,240 --> 01:14:00,240
  7783. 也有一個種類的算法
  7784.  
  7785. 1947
  7786. 01:14:00,240 --> 01:14:01,240
  7787. 是很常會被用到的
  7788.  
  7789. 1948
  7790. 01:14:01,240 --> 01:14:03,240
  7791. 它都是跟金鑰有關
  7792.  
  7793. 1949
  7794. 01:14:03,240 --> 01:14:05,240
  7795. 那我們這邊放叫key schemes
  7796.  
  7797. 1950
  7798. 01:14:05,240 --> 01:14:07,240
  7799. 那接下來要講的就是其中一個
  7800.  
  7801. 1951
  7802. 01:14:07,240 --> 01:14:09,240
  7803. 叫做share secret
  7804.  
  7805. 1952
  7806. 01:14:09,240 --> 01:14:13,240
  7807. 所以在講share secret之前
  7808.  
  7809. 1953
  7810. 01:14:13,240 --> 01:14:15,240
  7811. 我們要回顧一下前面所提到的
  7812.  
  7813. 1954
  7814. 01:14:15,240 --> 01:14:16,240
  7815. 金鑰傳遞的問題
  7816.  
  7817. 1955
  7818. 01:14:16,240 --> 01:14:17,240
  7819. 再一次呢
  7820.  
  7821. 1956
  7822. 01:14:17,240 --> 01:14:19,240
  7823. 這個金鑰的傳遞問題是來自於說
  7824.  
  7825. 1957
  7826. 01:14:19,240 --> 01:14:22,240
  7827. 你在要做正常的加密傳輸訊息的時候
  7828.  
  7829. 1958
  7830. 01:14:22,240 --> 01:14:25,240
  7831. 我們會推薦使用對稱式的加密算法
  7832.  
  7833. 1959
  7834. 01:14:25,240 --> 01:14:27,240
  7835. 比較快也很安全
  7836.  
  7837. 1960
  7838. 01:14:27,240 --> 01:14:29,240
  7839. 但是它的致命的缺陷是在於說
  7840.  
  7841. 1961
  7842. 01:14:29,240 --> 01:14:31,240
  7843. 你會需要有包含有金鑰的傳遞
  7844.  
  7845. 1962
  7846. 01:14:31,240 --> 01:14:34,240
  7847. 所以前面講過了兩種解決
  7848.  
  7849. 1963
  7850. 01:14:34,240 --> 01:14:36,240
  7851. 這個金鑰傳遞問題的方法
  7852.  
  7853. 1964
  7854. 01:14:36,240 --> 01:14:39,240
  7855. 第一種是說你就單純的直接使用
  7856.  
  7857. 1965
  7858. 01:14:39,240 --> 01:14:41,240
  7859. 非對稱式金鑰來做
  7860.  
  7861. 1966
  7862. 01:14:41,240 --> 01:14:43,240
  7863. 那這個比較不推薦
  7864.  
  7865. 1967
  7866. 01:14:43,240 --> 01:14:44,240
  7867. 因為你會變成
  7868.  
  7869. 1968
  7870. 01:14:44,240 --> 01:14:45,240
  7871. 你會用複雜的算法
  7872.  
  7873. 1969
  7874. 01:14:45,240 --> 01:14:47,240
  7875. 去算到大量的這個資料
  7876.  
  7877. 1970
  7878. 01:14:47,240 --> 01:14:49,240
  7879. 那第二種我們提的是說
  7880.  
  7881. 1971
  7882. 01:14:49,240 --> 01:14:50,240
  7883. 我們簡化一些
  7884.  
  7885. 1972
  7886. 01:14:50,240 --> 01:14:53,240
  7887. 我們先用這個非對稱式的加密
  7888.  
  7889. 1973
  7890. 01:14:53,240 --> 01:14:55,240
  7891. 來把鑰匙做加密
  7892.  
  7893. 1974
  7894. 01:14:55,240 --> 01:14:57,240
  7895. 之後我們就用那把鑰匙
  7896.  
  7897. 1975
  7898. 01:14:57,240 --> 01:14:58,240
  7899. 來做對稱式的溝通
  7900.  
  7901. 1976
  7902. 01:14:58,240 --> 01:15:01,240
  7903. 那現在要講的這一種叫做
  7904.  
  7905. 1977
  7906. 01:15:01,240 --> 01:15:02,240
  7907. 用金鑰交換的協定
  7908.  
  7909. 1978
  7910. 01:15:02,240 --> 01:15:05,240
  7911. 那這個是其實是一種更快的做法
  7912.  
  7913. 1979
  7914. 01:15:05,240 --> 01:15:07,240
  7915. 你只要有公司鑰就可以做
  7916.  
  7917. 1980
  7918. 01:15:07,240 --> 01:15:09,240
  7919. 那大部分的
  7920.  
  7921. 1981
  7922. 01:15:09,240 --> 01:15:11,240
  7923. 我們大部分的這種金鑰交換的協定
  7924.  
  7925. 1982
  7926. 01:15:11,240 --> 01:15:13,240
  7927. 前面有提過
  7928.  
  7929. 1983
  7930. 01:15:13,240 --> 01:15:16,240
  7931. 都是根源於一種叫Diffie-Hellman
  7932.  
  7933. 1984
  7934. 01:15:16,240 --> 01:15:19,240
  7935. 是整套非對稱式密碼系統的始祖
  7936.  
  7937. 1985
  7938. 01:15:19,240 --> 01:15:22,240
  7939. 所以我們這邊看的就是
  7940.  
  7941. 1986
  7942. 01:15:22,240 --> 01:15:23,240
  7943. Diffie-Hellman的結構
  7944.  
  7945. 1987
  7946. 01:15:23,240 --> 01:15:25,240
  7947. 那大致上很簡單
  7948.  
  7949. 1988
  7950. 01:15:25,240 --> 01:15:26,240
  7951. 它就是呢
  7952.  
  7953. 1989
  7954. 01:15:26,240 --> 01:15:28,240
  7955. A跟B各自有他們的公司鑰對
  7956.  
  7957. 1990
  7958. 01:15:28,240 --> 01:15:30,240
  7959. 私鑰跟公鑰是成對的
  7960.  
  7961. 1991
  7962. 01:15:30,240 --> 01:15:33,240
  7963. 所以A會有Secret Key of A
  7964.  
  7965. 1992
  7966. 01:15:33,240 --> 01:15:34,240
  7967. 跟Public Key of A
  7968.  
  7969. 1993
  7970. 01:15:34,240 --> 01:15:35,240
  7971. 這邊是SA跟PA
  7972.  
  7973. 1994
  7974. 01:15:35,240 --> 01:15:38,240
  7975. 同樣的B會有SB跟PB
  7976.  
  7977. 1995
  7978. 01:15:38,240 --> 01:15:40,240
  7979. 那按照道理
  7980.  
  7981. 1996
  7982. 01:15:40,240 --> 01:15:41,240
  7983. 我們前面講過了
  7984.  
  7985. 1997
  7986. 01:15:41,240 --> 01:15:43,240
  7987. 就是私鑰是絕對不會外洩
  7988.  
  7989. 1998
  7990. 01:15:43,240 --> 01:15:45,240
  7991. 公鑰可以釋散在外
  7992.  
  7993. 1999
  7994. 01:15:45,240 --> 01:15:47,240
  7995. 所以這邊的話呢
  7996.  
  7997. 2000
  7998. 01:15:47,240 --> 01:15:49,240
  7999. 我們把PA交給B
  8000.  
  8001. 2001
  8002. 01:15:49,240 --> 01:15:51,240
  8003. 把PB交給A
  8004.  
  8005. 2002
  8006. 01:15:51,240 --> 01:15:52,240
  8007. 也只有這種選項了
  8008.  
  8009. 2003
  8010. 01:15:52,240 --> 01:15:55,240
  8011. 就是你不會把私鑰系列的都交出去
  8012.  
  8013. 2004
  8014. 01:15:55,240 --> 01:15:57,240
  8015. 所以你只會交公鑰
  8016.  
  8017. 2005
  8018. 01:15:57,240 --> 01:15:59,240
  8019. 交了以後發生什麼事情呢
  8020.  
  8021. 2006
  8022. 01:15:59,240 --> 01:16:01,240
  8023. 那A這邊這時候有SA跟PB
  8024.  
  8025. 2007
  8026. 01:16:01,240 --> 01:16:02,240
  8027. B這邊有SB跟PA
  8028.  
  8029. 2008
  8030. 01:16:02,240 --> 01:16:05,240
  8031. 就是他們各自的私鑰
  8032.  
  8033. 2009
  8034. 01:16:05,240 --> 01:16:06,240
  8035. 都保留得好好的
  8036.  
  8037. 2010
  8038. 01:16:06,240 --> 01:16:08,240
  8039. 跟對方的公鑰
  8040.  
  8041. 2011
  8042. 01:16:08,240 --> 01:16:10,240
  8043. 因為公鑰可以隨意取用
  8044.  
  8045. 2012
  8046. 01:16:10,240 --> 01:16:12,240
  8047. 那很神奇的
  8048.  
  8049. 2013
  8050. 01:16:12,240 --> 01:16:14,240
  8051. 因為數學上的設計的原因呢
  8052.  
  8053. 2014
  8054. 01:16:14,240 --> 01:16:17,240
  8055. 你的SA去跟PB做Operation
  8056.  
  8057. 2015
  8058. 01:16:17,240 --> 01:16:18,240
  8059. 得到的這一把G
  8060.  
  8061. 2016
  8062. 01:16:18,240 --> 01:16:22,240
  8063. 會跟SB跟PAOperation
  8064.  
  8065. 2017
  8066. 01:16:22,240 --> 01:16:24,240
  8067. 做出來的這一把G一模一樣
  8068.  
  8069. 2018
  8070. 01:16:24,240 --> 01:16:26,240
  8071. 就很神奇的數學原因
  8072.  
  8073. 2019
  8074. 01:16:26,240 --> 01:16:29,240
  8075. 造成了這一把得到的G是一樣的
  8076.  
  8077. 2020
  8078. 01:16:29,240 --> 01:16:30,240
  8079. 也就是說
  8080.  
  8081. 2021
  8082. 01:16:30,240 --> 01:16:31,240
  8083. 你只要有這樣子的成分
  8084.  
  8085. 2022
  8086. 01:16:31,240 --> 01:16:34,240
  8087. 這兩個人就相當於有一把
  8088.  
  8089. 2023
  8090. 01:16:34,240 --> 01:16:35,240
  8091. 一模一樣的Key
  8092.  
  8093. 2024
  8094. 01:16:35,240 --> 01:16:37,240
  8095. 因此就可以開始做對稱式的
  8096.  
  8097. 2025
  8098. 01:16:37,240 --> 01:16:39,240
  8099. 加密的傳輸
  8100.  
  8101. 2026
  8102. 01:16:39,240 --> 01:16:42,240
  8103. 所以這邊再舉個例子
  8104.  
  8105. 2027
  8106. 01:16:42,240 --> 01:16:44,240
  8107. 就是說這邊開始會有一些些
  8108.  
  8109. 2028
  8110. 01:16:44,240 --> 01:16:46,240
  8111. 數學細節我們不會去提
  8112.  
  8113. 2029
  8114. 01:16:46,240 --> 01:16:47,240
  8115. 但是最重要的是
  8116.  
  8117. 2030
  8118. 01:16:47,240 --> 01:16:48,240
  8119. 希望大家可以藉由
  8120.  
  8121. 2031
  8122. 01:16:48,240 --> 01:16:49,240
  8123. 類似圖像記憶的方式
  8124.  
  8125. 2032
  8126. 01:16:49,240 --> 01:16:51,240
  8127. 只要知道結構就好
  8128.  
  8129. 2033
  8130. 01:16:51,240 --> 01:16:52,240
  8131. 結構會是說
  8132.  
  8133. 2034
  8134. 01:16:52,240 --> 01:16:55,240
  8135. 各自這個A跟B雙方
  8136.  
  8137. 2035
  8138. 01:16:55,240 --> 01:16:57,240
  8139. 會有一些需要的演算法
  8140.  
  8141. 2036
  8142. 01:16:57,240 --> 01:16:59,240
  8143. 需要的公開的參數
  8144.  
  8145. 2037
  8146. 01:16:59,240 --> 01:17:01,240
  8147. 那A跟B
  8148.  
  8149. 2038
  8150. 01:17:01,240 --> 01:17:04,240
  8151. 先會有產生他們的私鑰
  8152.  
  8153. 2039
  8154. 01:17:04,240 --> 01:17:05,240
  8155. 在這裡SA跟XB
  8156.  
  8157. 2040
  8158. 01:17:05,240 --> 01:17:07,240
  8159. 就相當於圖裡面的SA跟XB
  8160.  
  8161. 2041
  8162. 01:17:07,240 --> 01:17:11,240
  8163. 藉由這個私鑰去產生公鑰
  8164.  
  8165. 2042
  8166. 01:17:11,240 --> 01:17:13,240
  8167. 這邊用的是一個指數
  8168.  
  8169. 2043
  8170. 01:17:13,240 --> 01:17:15,240
  8171. 然後再取Mode的這個做法
  8172.  
  8173. 2044
  8174. 01:17:15,240 --> 01:17:17,240
  8175. 所以A跟B兩方都是
  8176.  
  8177. 2045
  8178. 01:17:17,240 --> 01:17:18,240
  8179. 由SA產生PA
  8180.  
  8181. 2046
  8182. 01:17:18,240 --> 01:17:20,240
  8183. 由XB產生PB
  8184.  
  8185. 2047
  8186. 01:17:20,240 --> 01:17:22,240
  8187. 做好之後把公鑰交換
  8188.  
  8189. 2048
  8190. 01:17:22,240 --> 01:17:23,240
  8191. 我們剛剛提過了
  8192.  
  8193. 2049
  8194. 01:17:23,240 --> 01:17:25,240
  8195. 因為私鑰絕對不會交出去
  8196.  
  8197. 2050
  8198. 01:17:25,240 --> 01:17:27,240
  8199. 所以你能交換的只有公鑰
  8200.  
  8201. 2051
  8202. 01:17:27,240 --> 01:17:28,240
  8203. 把公鑰交換了之後
  8204.  
  8205. 2052
  8206. 01:17:28,240 --> 01:17:30,240
  8207. 得到A得到B的公鑰
  8208.  
  8209. 2053
  8210. 01:17:30,240 --> 01:17:31,240
  8211. B得到A的公鑰
  8212.  
  8213. 2054
  8214. 01:17:31,240 --> 01:17:33,240
  8215. 再來就是下一步我們講
  8216.  
  8217. 2055
  8218. 01:17:33,240 --> 01:17:35,240
  8219. 就是因為神奇的數學的原因
  8220.  
  8221. 2056
  8222. 01:17:35,240 --> 01:17:37,240
  8223. 所以會造成他們
  8224.  
  8225. 2057
  8226. 01:17:37,240 --> 01:17:38,240
  8227. 做同樣的運算
  8228.  
  8229. 2058
  8230. 01:17:38,240 --> 01:17:41,240
  8231. 所得到的這一把金鑰
  8232.  
  8233. 2059
  8234. 01:17:41,240 --> 01:17:42,240
  8235. 是相同的
  8236.  
  8237. 2060
  8238. 01:17:42,240 --> 01:17:44,240
  8239. 一模一樣的
  8240.  
  8241. 2061
  8242. 01:17:44,240 --> 01:17:47,240
  8243. 這個數學大部分都是離散數學
  8244.  
  8245. 2062
  8246. 01:17:47,240 --> 01:17:49,240
  8247. 大部分都是離散數學
  8248.  
  8249. 2063
  8250. 01:17:49,240 --> 01:17:52,240
  8251. 像這一種就是
  8252.  
  8253. 2064
  8254. 01:17:52,240 --> 01:17:54,240
  8255. 前面也講過說
  8256.  
  8257. 2065
  8258. 01:17:54,240 --> 01:17:56,240
  8259. 大部分的非對稱式的演算法
  8260.  
  8261. 2066
  8262. 01:17:56,240 --> 01:17:58,240
  8263. 都是有這樣子的Backbone在
  8264.  
  8265. 2067
  8266. 01:17:58,240 --> 01:18:00,240
  8267. 就是基本都能做金鑰交換的協定
  8268.  
  8269. 2068
  8270. 01:18:00,240 --> 01:18:03,240
  8271. 並且我們也提過
  8272.  
  8273. 2069
  8274. 01:18:03,240 --> 01:18:05,240
  8275. 它的重點是在於說
  8276.  
  8277. 2070
  8278. 01:18:05,240 --> 01:18:07,240
  8279. 你有公鑰的時候
  8280.  
  8281. 2071
  8282. 01:18:07,240 --> 01:18:10,240
  8283. 基本是沒有辦法推回私鑰
  8284.  
  8285. 2072
  8286. 01:18:11,240 --> 01:18:13,240
  8287. 那之所以為什麼沒有辦法
  8288.  
  8289. 2073
  8290. 01:18:13,240 --> 01:18:15,240
  8291. 推回私鑰的原因是在於說
  8292.  
  8293. 2074
  8294. 01:18:15,240 --> 01:18:20,240
  8295. 它一定是用到了某個數學難題
  8296.  
  8297. 2075
  8298. 01:18:20,240 --> 01:18:23,240
  8299. 所以以離散對數而言
  8300.  
  8301. 2076
  8302. 01:18:23,240 --> 01:18:25,240
  8303. 以Diffie-Hellman而言
  8304.  
  8305. 2077
  8306. 01:18:25,240 --> 01:18:28,240
  8307. 它所用到的這個難題叫做
  8308.  
  8309. 2078
  8310. 01:18:28,240 --> 01:18:30,240
  8311. 叫做離散對數
  8312.  
  8313. 2079
  8314. 01:18:30,240 --> 01:18:32,240
  8315. 那它的具體來講是怎麼樣呢
  8316.  
  8317. 2080
  8318. 01:18:32,240 --> 01:18:34,240
  8319. 就是說我們這邊看很簡單的數字裡
  8320.  
  8321. 2081
  8322. 01:18:34,240 --> 01:18:35,240
  8323. 我們用很小的數字
  8324.  
  8325. 2082
  8326. 01:18:35,240 --> 01:18:36,240
  8327. 我們用一個質數
  8328.  
  8329. 2083
  8330. 01:18:36,240 --> 01:18:38,240
  8331. 有一個質數353
  8332.  
  8333. 2084
  8334. 01:18:38,240 --> 01:18:40,240
  8335. 有一個質數的原根
  8336.  
  8337. 2085
  8338. 01:18:40,240 --> 01:18:44,240
  8339. 這個是離散數學裡面會有
  8340.  
  8341. 2086
  8342. 01:18:44,240 --> 01:18:46,240
  8343. 那簡單的來講就是
  8344.  
  8345. 2087
  8346. 01:18:46,240 --> 01:18:48,240
  8347. 我們如果把
  8348.  
  8349. 2088
  8350. 01:18:48,240 --> 01:18:50,240
  8351. 我們現在有一個原根3
  8352.  
  8353. 2089
  8354. 01:18:50,240 --> 01:18:52,240
  8355. 我們把3的一次方
  8356.  
  8357. 2090
  8358. 01:18:52,240 --> 01:18:53,240
  8359. 兩次方三次方
  8360.  
  8361. 2091
  8362. 01:18:53,240 --> 01:18:56,240
  8363. 一路到353次方
  8364.  
  8365. 2092
  8366. 01:18:56,240 --> 01:19:00,240
  8367. 3的一次方到353次方
  8368.  
  8369. 2093
  8370. 01:19:00,240 --> 01:19:03,240
  8371. 然後都去Mod 353
  8372.  
  8373. 2094
  8374. 01:19:03,240 --> 01:19:06,240
  8375. 它會以某種排列
  8376.  
  8377. 2095
  8378. 01:19:06,240 --> 01:19:09,240
  8379. 完成1到353這個數字
  8380.  
  8381. 2096
  8382. 01:19:09,240 --> 01:19:13,240
  8383. 並且只會各出現一次
  8384.  
  8385. 2097
  8386. 01:19:13,240 --> 01:19:15,240
  8387. 用比較簡單的例子
  8388.  
  8389. 2098
  8390. 01:19:15,240 --> 01:19:17,240
  8391. 假設有一個質數11
  8392.  
  8393. 2099
  8394. 01:19:17,240 --> 01:19:19,240
  8395. 它有一個原根2
  8396.  
  8397. 2100
  8398. 01:19:19,240 --> 01:19:22,240
  8399. 2的一次方Mod 11
  8400.  
  8401. 2101
  8402. 01:19:22,240 --> 01:19:24,240
  8403. 然後2的二次方Mod 11
  8404.  
  8405. 2102
  8406. 01:19:24,240 --> 01:19:26,240
  8407. 那一路這樣往上疊加到
  8408.  
  8409. 2103
  8410. 01:19:26,240 --> 01:19:30,240
  8411. 2的11次方Mod 11
  8412.  
  8413. 2104
  8414. 01:19:30,240 --> 01:19:31,240
  8415. 你得到的那個數字
  8416.  
  8417. 2105
  8418. 01:19:31,240 --> 01:19:35,240
  8419. 它會以某種排列完成1到11
  8420.  
  8421. 2106
  8422. 01:19:35,240 --> 01:19:37,240
  8423. 這就是原根
  8424.  
  8425. 2107
  8426. 01:19:37,240 --> 01:19:39,240
  8427. 所以它的整個難題是建立在說
  8428.  
  8429. 2108
  8430. 01:19:39,240 --> 01:19:41,240
  8431. 接下來我們看
  8432.  
  8433. 2109
  8434. 01:19:41,240 --> 01:19:44,240
  8435. A選了私藥97
  8436.  
  8437. 2110
  8438. 01:19:44,240 --> 01:19:46,240
  8439. B選了私藥233
  8440.  
  8441. 2111
  8442. 01:19:46,240 --> 01:19:49,240
  8443. 這都是在合法的範圍裡面
  8444.  
  8445. 2112
  8446. 01:19:49,240 --> 01:19:50,240
  8447. 因為要小於Q
  8448.  
  8449. 2113
  8450. 01:19:50,240 --> 01:19:51,240
  8451. 小於353
  8452.  
  8453. 2114
  8454. 01:19:51,240 --> 01:19:54,240
  8455. 那再來就是做公藥的這個過程
  8456.  
  8457. 2115
  8458. 01:19:54,240 --> 01:19:56,240
  8459. 他們分別去取次方
  8460.  
  8461. 2116
  8462. 01:19:56,240 --> 01:19:57,240
  8463. 像我們剛剛提的
  8464.  
  8465. 2117
  8466. 01:19:57,240 --> 01:19:59,240
  8467. 把3的取97次方之後
  8468.  
  8469. 2118
  8470. 01:19:59,240 --> 01:20:02,240
  8471. Mod 353得到40
  8472.  
  8473. 2119
  8474. 01:20:02,240 --> 01:20:04,240
  8475. 那B也去做它的公藥
  8476.  
  8477. 2120
  8478. 01:20:04,240 --> 01:20:07,240
  8479. 它把算計算233次方之後
  8480.  
  8481. 2121
  8482. 01:20:07,240 --> 01:20:10,240
  8483. 去Mod 353得到248
  8484.  
  8485. 2122
  8486. 01:20:10,240 --> 01:20:12,240
  8487. 然後最後一步很神奇的
  8488.  
  8489. 2123
  8490. 01:20:12,240 --> 01:20:14,240
  8491. 因為數學的原因
  8492.  
  8493. 2124
  8494. 01:20:14,240 --> 01:20:17,240
  8495. 你把公藥再乘上私藥的次方
  8496.  
  8497. 2125
  8498. 01:20:17,240 --> 01:20:18,240
  8499. 再去做Mod
  8500.  
  8501. 2126
  8502. 01:20:18,240 --> 01:20:20,240
  8503. 這兩個會是完全一樣的
  8504.  
  8505. 2127
  8506. 01:20:20,240 --> 01:20:22,240
  8507. 得到的會是160
  8508.  
  8509. 2128
  8510. 01:20:22,240 --> 01:20:24,240
  8511. 這個事情的困難的點是在於說
  8512.  
  8513. 2129
  8514. 01:20:24,240 --> 01:20:26,240
  8515. 我們要從私藥去計算公藥
  8516.  
  8517. 2130
  8518. 01:20:26,240 --> 01:20:29,240
  8519. 相對很容易
  8520.  
  8521. 2131
  8522. 01:20:29,240 --> 01:20:32,240
  8523. 我們這次是單純的把算術算完
  8524.  
  8525. 2132
  8526. 01:20:32,240 --> 01:20:33,240
  8527. 然後去做Mod而已
  8528.  
  8529. 2133
  8530. 01:20:33,240 --> 01:20:34,240
  8531. 這個容易
  8532.  
  8533. 2134
  8534. 01:20:34,240 --> 01:20:35,240
  8535. 但是難是難在說
  8536.  
  8537. 2135
  8538. 01:20:35,240 --> 01:20:37,240
  8539. 我今天告訴你40
  8540.  
  8541. 2136
  8542. 01:20:37,240 --> 01:20:39,240
  8543. 你要怎麼樣能夠知道
  8544.  
  8545. 2137
  8546. 01:20:39,240 --> 01:20:41,240
  8547. 是3的97次方Mod 353的
  8548.  
  8549. 2138
  8550. 01:20:41,240 --> 01:20:43,240
  8551. 這個非常非常的困難
  8552.  
  8553. 2139
  8554. 01:20:43,240 --> 01:20:45,240
  8555. 所以這是離散對數的難題
  8556.  
  8557. 2140
  8558. 01:20:45,240 --> 01:20:47,240
  8559. 是類似這樣的意思
  8560.  
  8561. 2141
  8562. 01:20:47,240 --> 01:20:50,240
  8563. 那大概有個感覺就可以了
  8564.  
  8565. 2142
  8566. 01:20:50,240 --> 01:20:51,240
  8567. 那另外來講的話
  8568.  
  8569. 2143
  8570. 01:20:51,240 --> 01:20:53,240
  8571. 這邊是橢圓曲線的版本
  8572.  
  8573. 2144
  8574. 01:20:53,240 --> 01:20:54,240
  8575. 我們前面講過橢圓曲線
  8576.  
  8577. 2145
  8578. 01:20:54,240 --> 01:20:56,240
  8579. 它也能夠做加解密
  8580.  
  8581. 2146
  8582. 01:20:56,240 --> 01:20:57,240
  8583. 也能夠做千張
  8584.  
  8585. 2147
  8586. 01:20:57,240 --> 01:20:59,240
  8587. 那也能夠做經驗交換
  8588.  
  8589. 2148
  8590. 01:20:59,240 --> 01:21:00,240
  8591. 這邊就是
  8592.  
  8593. 2149
  8594. 01:21:00,240 --> 01:21:02,240
  8595. Elliptic Curve版的Diffie-Hellman
  8596.  
  8597. 2150
  8598. 01:21:02,240 --> 01:21:04,240
  8599. 那它的細節也不用管
  8600.  
  8601. 2151
  8602. 01:21:04,240 --> 01:21:05,240
  8603. 它的結構一樣
  8604.  
  8605. 2152
  8606. 01:21:05,240 --> 01:21:06,240
  8607. 我會有公開的參數
  8608.  
  8609. 2153
  8610. 01:21:06,240 --> 01:21:10,240
  8611. A跟B先有他們的各自的私藥
  8612.  
  8613. 2154
  8614. 01:21:10,240 --> 01:21:12,240
  8615. 從私藥生出公藥
  8616.  
  8617. 2155
  8618. 01:21:12,240 --> 01:21:13,240
  8619. 然後把公藥做交換
  8620.  
  8621. 2156
  8622. 01:21:13,240 --> 01:21:15,240
  8623. 最後神奇的數學得到他們
  8624.  
  8625. 2157
  8626. 01:21:15,240 --> 01:21:17,240
  8627. 有一把共同的金鑰
  8628.  
  8629. 2158
  8630. 01:21:17,240 --> 01:21:21,240
  8631. 一樣的
  8632.  
  8633. 2159
  8634. 01:21:21,240 --> 01:21:24,240
  8635. 那所以有想要知道細節的話
  8636.  
  8637. 2160
  8638. 01:21:24,240 --> 01:21:25,240
  8639. 或者是也可以
  8640.  
  8641. 2161
  8642. 01:21:25,240 --> 01:21:26,240
  8643. 有很多資料可以查詢
  8644.  
  8645. 2162
  8646. 01:21:26,240 --> 01:21:28,240
  8647. 或是要討論也都可以
  8648.  
  8649. 2163
  8650. 01:21:28,240 --> 01:21:32,240
  8651. 那在關於這個Share Secret的部分
  8652.  
  8653. 2164
  8654. 01:21:32,240 --> 01:21:34,240
  8655. 我們先暫時就談到這
  8656.  
  8657. 2165
  8658. 01:21:34,240 --> 01:21:35,240
  8659. 那接下來的話
  8660.  
  8661. 2166
  8662. 01:21:35,240 --> 01:21:37,240
  8663. 要進到的是Case Study
  8664.  
  8665. 2167
  8666. 01:21:37,240 --> 01:21:39,240
  8667. 就是基本上是幫大家能夠複習一下
  8668.  
  8669. 2168
  8670. 01:21:39,240 --> 01:21:41,240
  8671. 我們今天所提的所有東西
  8672.  
  8673. 2169
  8674. 01:21:41,240 --> 01:21:43,240
  8675. 我們這邊用一個簡單的
  8676.  
  8677. 2170
  8678. 01:21:43,240 --> 01:21:45,240
  8679. 簡單的生活中的範例
  8680.  
  8681. 2171
  8682. 01:21:45,240 --> 01:21:46,240
  8683. 我們假設呢
  8684.  
  8685. 2172
  8686. 01:21:46,240 --> 01:21:50,240
  8687. 假設今天我們手機的iOS要更新
  8688.  
  8689. 2173
  8690. 01:21:50,240 --> 01:21:52,240
  8691. 那所以我們手機的iOS
  8692.  
  8693. 2174
  8694. 01:21:52,240 --> 01:21:53,240
  8695. 要更新的時候呢
  8696.  
  8697. 2175
  8698. 01:21:53,240 --> 01:21:54,240
  8699. 是從我們那是
  8700.  
  8701. 2176
  8702. 01:21:54,240 --> 01:21:56,240
  8703. 由Apple送這個File來
  8704.  
  8705. 2177
  8706. 01:21:56,240 --> 01:21:58,240
  8707. 所以這邊呢
  8708.  
  8709. 2178
  8710. 01:21:58,240 --> 01:22:00,240
  8711. 我們要先做幾點假設
  8712.  
  8713. 2179
  8714. 01:22:00,240 --> 01:22:01,240
  8715. 就是說第一個
  8716.  
  8717. 2180
  8718. 01:22:01,240 --> 01:22:02,240
  8719. 我們認定呢
  8720.  
  8721. 2181
  8722. 01:22:02,240 --> 01:22:04,240
  8723. 我們認定Apple不希望iOS File
  8724.  
  8725. 2182
  8726. 01:22:04,240 --> 01:22:06,240
  8727. 輕易的外洩
  8728.  
  8729. 2183
  8730. 01:22:06,240 --> 01:22:08,240
  8731. 它是指的是保密性
  8732.  
  8733. 2184
  8734. 01:22:08,240 --> 01:22:10,240
  8735. 那我們這邊隱含的就是說
  8736.  
  8737. 2185
  8738. 01:22:10,240 --> 01:22:12,240
  8739. 我們假定它是有加密過的File
  8740.  
  8741. 2186
  8742. 01:22:12,240 --> 01:22:14,240
  8743. 加密過的iOS File傳過來
  8744.  
  8745. 2187
  8746. 01:22:14,240 --> 01:22:16,240
  8747. 那當然呢
  8748.  
  8749. 2188
  8750. 01:22:16,240 --> 01:22:18,240
  8751. iOS File我們知道它的檔案
  8752.  
  8753. 2189
  8754. 01:22:18,240 --> 01:22:19,240
  8755. 非常的龐大
  8756.  
  8757. 2190
  8758. 01:22:19,240 --> 01:22:21,240
  8759. 所以就像我們一直在講的呢
  8760.  
  8761. 2191
  8762. 01:22:21,240 --> 01:22:22,240
  8763. 只要是這種加密的傳輸呢
  8764.  
  8765. 2192
  8766. 01:22:22,240 --> 01:22:24,240
  8767. 我們推薦使用的是對稱式的
  8768.  
  8769. 2193
  8770. 01:22:24,240 --> 01:22:26,240
  8771. 這個加密的演算法
  8772.  
  8773. 2194
  8774. 01:22:26,240 --> 01:22:27,240
  8775. 比較不會吃力
  8776.  
  8777. 2195
  8778. 01:22:27,240 --> 01:22:30,240
  8779. 那所以為了你要能夠用對稱式的
  8780.  
  8781. 2196
  8782. 01:22:30,240 --> 01:22:31,240
  8783. 加密演算法
  8784.  
  8785. 2197
  8786. 01:22:31,240 --> 01:22:33,240
  8787. 那你就會需要有
  8788.  
  8789. 2198
  8790. 01:22:33,240 --> 01:22:35,240
  8791. 你就會需要有那把對稱的Key
  8792.  
  8793. 2199
  8794. 01:22:35,240 --> 01:22:37,240
  8795. 所以沒有一開始
  8796.  
  8797. 2200
  8798. 01:22:37,240 --> 01:22:39,240
  8799. 當然我們跟Apple可能沒有對稱的
  8800.  
  8801. 2201
  8802. 01:22:39,240 --> 01:22:40,240
  8803. 那把Key的時候
  8804.  
  8805. 2202
  8806. 01:22:40,240 --> 01:22:41,240
  8807. 我們會做什麼
  8808.  
  8809. 2203
  8810. 01:22:41,240 --> 01:22:42,240
  8811. 我們就可能可以用
  8812.  
  8813. 2204
  8814. 01:22:42,240 --> 01:22:43,240
  8815. 剛剛所提到的Share Secret
  8816.  
  8817. 2205
  8818. 01:22:43,240 --> 01:22:45,240
  8819. 去做一把Share Key出來
  8820.  
  8821. 2206
  8822. 01:22:45,240 --> 01:22:49,240
  8823. 所以剛剛怎麼樣提到做Share Key呢
  8824.  
  8825. 2207
  8826. 01:22:49,240 --> 01:22:51,240
  8827. 我們都是交換Public Key
  8828.  
  8829. 2208
  8830. 01:22:51,240 --> 01:22:53,240
  8831. 我們這樣一路倒著回去
  8832.  
  8833. 2209
  8834. 01:22:53,240 --> 01:22:54,240
  8835. 我們要做Share Key
  8836.  
  8837. 2210
  8838. 01:22:54,240 --> 01:22:56,240
  8839. 我們必須要交換Public Key
  8840.  
  8841. 2211
  8842. 01:22:56,240 --> 01:22:57,240
  8843. 就是表示我們各自有
  8844.  
  8845. 2212
  8846. 01:22:57,240 --> 01:22:58,240
  8847. 我們各自的公要跟私要
  8848.  
  8849. 2213
  8850. 01:22:58,240 --> 01:23:01,240
  8851. 並且我們拿公要出去跟別人交換
  8852.  
  8853. 2214
  8854. 01:23:01,240 --> 01:23:03,240
  8855. 然後再經過神奇的數學運算
  8856.  
  8857. 2215
  8858. 01:23:03,240 --> 01:23:05,240
  8859. 得到同樣一把共同的金鑰
  8860.  
  8861. 2216
  8862. 01:23:05,240 --> 01:23:06,240
  8863. 問題又來了
  8864.  
  8865. 2217
  8866. 01:23:06,240 --> 01:23:07,240
  8867. 這一把公要
  8868.  
  8869. 2218
  8870. 01:23:07,240 --> 01:23:09,240
  8871. 怎麼樣知道能夠信
  8872.  
  8873. 2219
  8874. 01:23:09,240 --> 01:23:12,240
  8875. 所以我們需要有那一把公要
  8876.  
  8877. 2220
  8878. 01:23:12,240 --> 01:23:15,240
  8879. 跟那個公要持有人的身份
  8880.  
  8881. 2221
  8882. 01:23:15,240 --> 01:23:17,240
  8883. 我們需要把這件事情綁定在一起
  8884.  
  8885. 2222
  8886. 01:23:17,240 --> 01:23:18,240
  8887. 那就是我們照我們剛剛講的
  8888.  
  8889. 2223
  8890. 01:23:18,240 --> 01:23:20,240
  8891. 用憑證
  8892.  
  8893. 2224
  8894. 01:23:20,240 --> 01:23:21,240
  8895. 有憑證的機構
  8896.  
  8897. 2225
  8898. 01:23:21,240 --> 01:23:24,240
  8899. 可以來幫我們做這件事情
  8900.  
  8901. 2226
  8902. 01:23:24,240 --> 01:23:26,240
  8903. 所以這裡面至少會需要什麼呢
  8904.  
  8905. 2227
  8906. 01:23:26,240 --> 01:23:27,240
  8907. 至少會需要說
  8908.  
  8909. 2228
  8910. 01:23:27,240 --> 01:23:30,240
  8911. Apple有一個由CA
  8912.  
  8913. 2229
  8914. 01:23:30,240 --> 01:23:34,240
  8915. 由憑證機構所簽發的憑證
  8916.  
  8917. 2230
  8918. 01:23:34,240 --> 01:23:36,240
  8919. 那我們要更新的User
  8920.  
  8921. 2231
  8922. 01:23:36,240 --> 01:23:40,240
  8923. 我們可以用CA的公要
  8924.  
  8925. 2232
  8926. 01:23:40,240 --> 01:23:41,240
  8927. 去Verify
  8928.  
  8929. 2233
  8930. 01:23:41,240 --> 01:23:44,240
  8931. 去確認這個憑證
  8932.  
  8933. 2234
  8934. 01:23:44,240 --> 01:23:47,240
  8935. 以得到正確的Apple的Public Key
  8936.  
  8937. 2235
  8938. 01:23:47,240 --> 01:23:48,240
  8939. 得到Apple的Public Key
  8940.  
  8941. 2236
  8942. 01:23:48,240 --> 01:23:50,240
  8943. 我們的Public Key之後
  8944.  
  8945. 2237
  8946. 01:23:50,240 --> 01:23:51,240
  8947. 就可以做金鑰交換
  8948.  
  8949. 2238
  8950. 01:23:51,240 --> 01:23:53,240
  8951. 就可以得到
  8952.  
  8953. 2239
  8954. 01:23:53,240 --> 01:23:55,240
  8955. 就可以得到共同的一把金鑰
  8956.  
  8957. 2240
  8958. 01:23:55,240 --> 01:23:57,240
  8959. 再來用這把共同的金鑰做加密
  8960.  
  8961. 2241
  8962. 01:23:57,240 --> 01:24:01,240
  8963. 所以這樣一路倒著回去是這樣
  8964.  
  8965. 2242
  8966. 01:24:01,240 --> 01:24:02,240
  8967. 那再來是到
  8968.  
  8969. 2243
  8970. 01:24:02,240 --> 01:24:04,240
  8971. 收到了之後會需要什麼
  8972.  
  8973. 2244
  8974. 01:24:04,240 --> 01:24:05,240
  8975. 收到了之後呢
  8976.  
  8977. 2245
  8978. 01:24:05,240 --> 01:24:07,240
  8979. 我們會想要知道幾件事情
  8980.  
  8981. 2246
  8982. 01:24:07,240 --> 01:24:09,240
  8983. 我們想要知道說
  8984.  
  8985. 2247
  8986. 01:24:09,240 --> 01:24:11,240
  8987. 這個File是Apple送過來的
  8988.  
  8989. 2248
  8990. 01:24:11,240 --> 01:24:14,240
  8991. 而且不是由別人所送過來的
  8992.  
  8993. 2249
  8994. 01:24:14,240 --> 01:24:15,240
  8995. 並且呢
  8996.  
  8997. 2250
  8998. 01:24:15,240 --> 01:24:17,240
  8999. 並且這個
  9000.  
  9001. 2251
  9002. 01:24:17,240 --> 01:24:19,240
  9003. 我們收到的File的內容
  9004.  
  9005. 2252
  9006. 01:24:19,240 --> 01:24:20,240
  9007. 經過竄改
  9008.  
  9009. 2253
  9010. 01:24:20,240 --> 01:24:22,240
  9011. 跟Apple原本想傳的那個東西是一樣的
  9012.  
  9013. 2254
  9014. 01:24:22,240 --> 01:24:24,240
  9015. 所以有這兩個條件呢
  9016.  
  9017. 2255
  9018. 01:24:24,240 --> 01:24:27,240
  9019. 我們會要用到的是數位簽章
  9020.  
  9021. 2256
  9022. 01:24:27,240 --> 01:24:28,240
  9023. 數位簽章能夠幫我們確認
  9024.  
  9025. 2257
  9026. 01:24:28,240 --> 01:24:31,240
  9027. 只有擁有那個私鑰的人能夠簽
  9028.  
  9029. 2258
  9030. 01:24:31,240 --> 01:24:33,240
  9031. 大家都可以確認
  9032.  
  9033. 2259
  9034. 01:24:33,240 --> 01:24:35,240
  9035. 那並且因為你簽的東西
  9036.  
  9037. 2260
  9038. 01:24:35,240 --> 01:24:38,240
  9039. 也包含了這個內容的摘要
  9040.  
  9041. 2261
  9042. 01:24:38,240 --> 01:24:40,240
  9043. 所以內容經過竄改的時候
  9044.  
  9045. 2262
  9046. 01:24:40,240 --> 01:24:46,240
  9047. 簽名就會變得不一樣
  9048.  
  9049. 2263
  9050. 01:24:46,240 --> 01:24:48,240
  9051. 好那
  9052.  
  9053. 2264
  9054. 01:24:48,240 --> 01:24:49,240
  9055. 再來的話
  9056.  
  9057. 2265
  9058. 01:24:49,240 --> 01:24:51,240
  9059. 再來的話我們就畫幾個簡單的圖
  9060.  
  9061. 2266
  9062. 01:24:51,240 --> 01:24:54,240
  9063. 所以剛剛講了這麼多呢
  9064.  
  9065. 2267
  9066. 01:24:54,240 --> 01:24:55,240
  9067. 我們把整件事情
  9068.  
  9069. 2268
  9070. 01:24:55,240 --> 01:24:57,240
  9071. 整個要完成iOS的更新
  9072.  
  9073. 2269
  9074. 01:24:57,240 --> 01:24:58,240
  9075. 我們把它分成三個步驟
  9076.  
  9077. 2270
  9078. 01:24:58,240 --> 01:24:59,240
  9079. 我們前面提過
  9080.  
  9081. 2271
  9082. 01:24:59,240 --> 01:25:02,240
  9083. 我們需要得到正確的Apple的Public Key
  9084.  
  9085. 2272
  9086. 01:25:02,240 --> 01:25:04,240
  9087. 這個怎麼做
  9088.  
  9089. 2273
  9090. 01:25:04,240 --> 01:25:05,240
  9091. 我們會用到憑證
  9092.  
  9093. 2274
  9094. 01:25:05,240 --> 01:25:07,240
  9095. 跟我們要想辦法
  9096.  
  9097. 2275
  9098. 01:25:07,240 --> 01:25:08,240
  9099. 得到這個Apple的Public Key
  9100.  
  9101. 2276
  9102. 01:25:08,240 --> 01:25:09,240
  9103. 正確的Public Key之後
  9104.  
  9105. 2277
  9106. 01:25:09,240 --> 01:25:11,240
  9107. 我們就可以跑這個
  9108.  
  9109. 2278
  9110. 01:25:11,240 --> 01:25:12,240
  9111. 金鑰交換的協定
  9112.  
  9113. 2279
  9114. 01:25:12,240 --> 01:25:14,240
  9115. 得到一把共同的金鑰
  9116.  
  9117. 2280
  9118. 01:25:14,240 --> 01:25:16,240
  9119. 再來是
  9120.  
  9121. 2281
  9122. 01:25:16,240 --> 01:25:17,240
  9123. 再來是收到了
  9124.  
  9125. 2282
  9126. 01:25:17,240 --> 01:25:19,240
  9127. 收到了加密過後的這個File之後
  9128.  
  9129. 2283
  9130. 01:25:19,240 --> 01:25:20,240
  9131. 我們要確認它的來源
  9132.  
  9133. 2284
  9134. 01:25:20,240 --> 01:25:23,240
  9135. 跟確認它的內容有沒有經過竄改
  9136.  
  9137. 2285
  9138. 01:25:23,240 --> 01:25:24,240
  9139. 會用數位簽章
  9140.  
  9141. 2286
  9142. 01:25:24,240 --> 01:25:26,240
  9143. 所以
  9144.  
  9145. 2287
  9146. 01:25:26,240 --> 01:25:28,240
  9147. 所以首先是第一步
  9148.  
  9149. 2288
  9150. 01:25:28,240 --> 01:25:30,240
  9151. 是要取得正確的Public Key
  9152.  
  9153. 2289
  9154. 01:25:30,240 --> 01:25:31,240
  9155. 我會做什麼事情呢
  9156.  
  9157. 2290
  9158. 01:25:31,240 --> 01:25:32,240
  9159. 大概會是這樣
  9160.  
  9161. 2291
  9162. 01:25:32,240 --> 01:25:34,240
  9163. A 把它的Public Key
  9164.  
  9165. 2292
  9166. 01:25:34,240 --> 01:25:38,240
  9167. 它自己拿去找這個CA去做註冊
  9168.  
  9169. 2293
  9170. 01:25:38,240 --> 01:25:41,240
  9171. 那註冊通過CA確認你是Apple
  9172.  
  9173. 2294
  9174. 01:25:41,240 --> 01:25:43,240
  9175. 那你的Public Key也對了
  9176.  
  9177. 2295
  9178. 01:25:43,240 --> 01:25:45,240
  9179. 它就頒發證書給你
  9180.  
  9181. 2296
  9182. 01:25:45,240 --> 01:25:46,240
  9183. 這個證書就會有
  9184.  
  9185. 2297
  9186. 01:25:46,240 --> 01:25:48,240
  9187. 這個Apple的ID
  9188.  
  9189. 2298
  9190. 01:25:48,240 --> 01:25:50,240
  9191. 跟Apple的Public Key
  9192.  
  9193. 2299
  9194. 01:25:50,240 --> 01:25:52,240
  9195. 然後並且是由
  9196.  
  9197. 2300
  9198. 01:25:52,240 --> 01:25:55,240
  9199. 是由這個CA的私鑰所簽發的
  9200.  
  9201. 2301
  9202. 01:25:55,240 --> 01:25:57,240
  9203. 那得到了
  9204.  
  9205. 2302
  9206. 01:25:57,240 --> 01:25:59,240
  9207. 得到了這個憑證之後呢
  9208.  
  9209. 2303
  9210. 01:25:59,240 --> 01:26:02,240
  9211. Apple也就可以把這個憑證交給Bob
  9212.  
  9213. 2304
  9214. 01:26:02,240 --> 01:26:04,240
  9215. 那Bob可以去確認這個憑證
  9216.  
  9217. 2305
  9218. 01:26:04,240 --> 01:26:07,240
  9219. 他可以用這個CA的公鑰
  9220.  
  9221. 2306
  9222. 01:26:07,240 --> 01:26:09,240
  9223. 因為我們不會懷疑它的公鑰
  9224.  
  9225. 2307
  9226. 01:26:09,240 --> 01:26:10,240
  9227. 然後去對這個
  9228.  
  9229. 2308
  9230. 01:26:10,240 --> 01:26:11,240
  9231. 去確認這個憑證
  9232.  
  9233. 2309
  9234. 01:26:11,240 --> 01:26:13,240
  9235. 我們就得到正確的Apple ID
  9236.  
  9237. 2310
  9238. 01:26:13,240 --> 01:26:14,240
  9239. 跟Public Key
  9240.  
  9241. 2311
  9242. 01:26:14,240 --> 01:26:16,240
  9243. 我們就得到正確的Public Key
  9244.  
  9245. 2312
  9246. 01:26:16,240 --> 01:26:19,240
  9247. 那下一步的話
  9248.  
  9249. 2313
  9250. 01:26:19,240 --> 01:26:22,240
  9251. 再來就是一樣用這個金鑰交換協定
  9252.  
  9253. 2314
  9254. 01:26:22,240 --> 01:26:24,240
  9255. 就是很神奇的呢
  9256.  
  9257. 2315
  9258. 01:26:24,240 --> 01:26:27,240
  9259. 我們就有SAP、SB、PB之後
  9260.  
  9261. 2316
  9262. 01:26:27,240 --> 01:26:28,240
  9263. 把PA跟PB交換
  9264.  
  9265. 2317
  9266. 01:26:28,240 --> 01:26:30,240
  9267. 就得到了一把對稱的
  9268.  
  9269. 2318
  9270. 01:26:30,240 --> 01:26:32,240
  9271. 然後並且是一樣的這個
  9272.  
  9273. 2319
  9274. 01:26:32,240 --> 01:26:34,240
  9275. 完全一模一樣的這一把
  9276.  
  9277. 2320
  9278. 01:26:34,240 --> 01:26:36,240
  9279. 共同金鑰機
  9280.  
  9281. 2321
  9282. 01:26:36,240 --> 01:26:37,240
  9283. 前面再補充一點
  9284.  
  9285. 2322
  9286. 01:26:37,240 --> 01:26:38,240
  9287. 就是說這邊指的是
  9288.  
  9289. 2323
  9290. 01:26:38,240 --> 01:26:41,240
  9291. 這邊指的是取得了正確的
  9292.  
  9293. 2324
  9294. 01:26:41,240 --> 01:26:42,240
  9295. Apple的Public Key
  9296.  
  9297. 2325
  9298. 01:26:42,240 --> 01:26:43,240
  9299. 但是等於說反過來
  9300.  
  9301. 2326
  9302. 01:26:43,240 --> 01:26:44,240
  9303. Bob也可以做這件事
  9304.  
  9305. 2327
  9306. 01:26:44,240 --> 01:26:47,240
  9307. 也可以去得到他的這個憑證
  9308.  
  9309. 2328
  9310. 01:26:47,240 --> 01:26:49,240
  9311. 然後把他的公鑰跟憑證
  9312.  
  9313. 2329
  9314. 01:26:49,240 --> 01:26:51,240
  9315. 也一併交給Apple
  9316.  
  9317. 2330
  9318. 01:26:51,240 --> 01:26:53,240
  9319. 所以這是雙向
  9320.  
  9321. 2331
  9322. 01:26:53,240 --> 01:26:55,240
  9323. 那所以到這邊已經有了一把
  9324.  
  9325. 2332
  9326. 01:26:55,240 --> 01:26:56,240
  9327. 共同的金鑰機
  9328.  
  9329. 2333
  9330. 01:26:56,240 --> 01:26:59,240
  9331. 可以用來做對稱式的加密
  9332.  
  9333. 2334
  9334. 01:26:59,240 --> 01:27:01,240
  9335. 加密了過後
  9336.  
  9337. 2335
  9338. 01:27:01,240 --> 01:27:03,240
  9339. 我們把iOS File經過加密之後
  9340.  
  9341. 2336
  9342. 01:27:03,240 --> 01:27:05,240
  9343. 變成這個問號的框框
  9344.  
  9345. 2337
  9346. 01:27:05,240 --> 01:27:08,240
  9347. 我們把這個Sign過的這一個
  9348.  
  9349. 2338
  9350. 01:27:08,240 --> 01:27:11,240
  9351. 我們要做Sign這一段
  9352.  
  9353. 2339
  9354. 01:27:11,240 --> 01:27:13,240
  9355. 我們把加密過的這個File
  9356.  
  9357. 2340
  9358. 01:27:13,240 --> 01:27:15,240
  9359. 進Hash得到摘要
  9360.  
  9361. 2341
  9362. 01:27:15,240 --> 01:27:18,240
  9363. 然後我們用這個私鑰
  9364.  
  9365. 2342
  9366. 01:27:18,240 --> 01:27:20,240
  9367. 用Apple用他自己的私鑰
  9368.  
  9369. 2343
  9370. 01:27:20,240 --> 01:27:23,240
  9371. 去對這個Hash的Digest
  9372.  
  9373. 2344
  9374. 01:27:23,240 --> 01:27:24,240
  9375. 去做簽章
  9376.  
  9377. 2345
  9378. 01:27:24,240 --> 01:27:28,240
  9379. 那把這個簽章跟這個File
  9380.  
  9381. 2346
  9382. 01:27:28,240 --> 01:27:30,240
  9383. 都傳到Bob手上的時候
  9384.  
  9385. 2347
  9386. 01:27:30,240 --> 01:27:32,240
  9387. 那Bob也可以把這個
  9388.  
  9389. 2348
  9390. 01:27:32,240 --> 01:27:33,240
  9391. 加密過的問號的框框
  9392.  
  9393. 2349
  9394. 01:27:33,240 --> 01:27:34,240
  9395. 進到Hash
  9396.  
  9397. 2350
  9398. 01:27:34,240 --> 01:27:37,240
  9399. 然後再來用Apple的公鑰
  9400.  
  9401. 2351
  9402. 01:27:37,240 --> 01:27:38,240
  9403. 因為他有正確的公鑰
  9404.  
  9405. 2352
  9406. 01:27:38,240 --> 01:27:40,240
  9407. 然後去Verify
  9408.  
  9409. 2353
  9410. 01:27:40,240 --> 01:27:41,240
  9411. Verify這個Signature
  9412.  
  9413. 2354
  9414. 01:27:41,240 --> 01:27:44,240
  9415. 然後得到比對是不是一樣的
  9416.  
  9417. 2355
  9418. 01:27:44,240 --> 01:27:45,240
  9419. 是的話就表示
  9420.  
  9421. 2356
  9422. 01:27:45,240 --> 01:27:47,240
  9423. 這個File確實是正確的
  9424.  
  9425. 2357
  9426. 01:27:47,240 --> 01:27:48,240
  9427. 沒有被修改
  9428.  
  9429. 2358
  9430. 01:27:48,240 --> 01:27:50,240
  9431. 並且這個簽章是由Apple的
  9432.  
  9433. 2359
  9434. 01:27:50,240 --> 01:27:52,240
  9435. 這個Private Key所簽的
  9436.  
  9437. 2360
  9438. 01:27:52,240 --> 01:27:58,240
  9439. 好,到這邊這樣的流程有問題嗎
  9440.  
  9441. 2361
  9442. 01:27:58,240 --> 01:28:00,240
  9443. 這樣基本上我們就跑完了
  9444.  
  9445. 2362
  9446. 01:28:00,240 --> 01:28:02,240
  9447. 剛剛我們前面講到的情境
  9448.  
  9449. 2363
  9450. 01:28:02,240 --> 01:28:03,240
  9451. 跟假設
  9452.  
  9453. 2364
  9454. 01:28:03,240 --> 01:28:09,240
  9455. 好,那很快的就在最後
  9456.  
  9457. 2365
  9458. 01:28:09,240 --> 01:28:10,240
  9459. 再帶一下結論
  9460.  
  9461. 2366
  9462. 01:28:10,240 --> 01:28:14,240
  9463. 那整個要講這堂課的目的來講
  9464.  
  9465. 2367
  9466. 01:28:14,240 --> 01:28:17,240
  9467. 最主要還是希望大家能夠了解
  9468.  
  9469. 2368
  9470. 01:28:17,240 --> 01:28:19,240
  9471. 了解說到底Security在做什麼
  9472.  
  9473. 2369
  9474. 01:28:19,240 --> 01:28:23,240
  9475. 那首先要再來回過頭來講的是
  9476.  
  9477. 2370
  9478. 01:28:23,240 --> 01:28:25,240
  9479. 我們剛剛有一張表
  9480.  
  9481. 2371
  9482. 01:28:25,240 --> 01:28:28,240
  9483. 看到的是有我們今天學過的
  9484.  
  9485. 2372
  9486. 01:28:28,240 --> 01:28:31,240
  9487. 今天學過的四個安全的目標
  9488.  
  9489. 2373
  9490. 01:28:31,240 --> 01:28:33,240
  9491. 然後再配上一個Key Scheme
  9492.  
  9493. 2374
  9494. 01:28:33,240 --> 01:28:35,240
  9495. 那張圖如果各位還有印象的話
  9496.  
  9497. 2375
  9498. 01:28:35,240 --> 01:28:38,240
  9499. 那現在這張表是一個更完整的補充
  9500.  
  9501. 2376
  9502. 01:28:38,240 --> 01:28:40,240
  9503. 就是說到底總共來講
  9504.  
  9505. 2377
  9506. 01:28:40,240 --> 01:28:42,240
  9507. 有哪一些這個密碼學相關的功能
  9508.  
  9509. 2378
  9510. 01:28:42,240 --> 01:28:45,240
  9511. 所以前面有所謂的Block Cipher
  9512.  
  9513. 2379
  9514. 01:28:45,240 --> 01:28:46,240
  9515. 跟Block Cipher Mode
  9516.  
  9517. 2380
  9518. 01:28:46,240 --> 01:28:47,240
  9519. 這個其實都講的是加密
  9520.  
  9521. 2381
  9522. 01:28:47,240 --> 01:28:49,240
  9523. 虛塊的加密
  9524.  
  9525. 2382
  9526. 01:28:49,240 --> 01:28:52,240
  9527. 就是說以固定的長度為單位去做加密
  9528.  
  9529. 2383
  9530. 01:28:52,240 --> 01:28:54,240
  9531. 以128-bit為單位
  9532.  
  9533. 2384
  9534. 01:28:54,240 --> 01:28:56,240
  9535. 或以256-bit為單位去做加密
  9536.  
  9537. 2385
  9538. 01:28:56,240 --> 01:28:59,240
  9539. 跟加密的不同的這個工作模式
  9540.  
  9541. 2386
  9542. 01:28:59,240 --> 01:29:01,240
  9543. 這個有需要的話再補充就好
  9544.  
  9545. 2387
  9546. 01:29:01,240 --> 01:29:03,240
  9547. 那並且也有做數位簽章
  9548.  
  9549. 2388
  9550. 01:29:03,240 --> 01:29:06,240
  9551. 那再來是跟Key有關的
  9552.  
  9553. 2389
  9554. 01:29:06,240 --> 01:29:08,240
  9555. 有像是KDF是說
  9556.  
  9557. 2390
  9558. 01:29:08,240 --> 01:29:11,240
  9559. 如何用一把Key衍生出多個Key
  9560.  
  9561. 2391
  9562. 01:29:11,240 --> 01:29:12,240
  9563. 這個很重要
  9564.  
  9565. 2392
  9566. 01:29:12,240 --> 01:29:15,240
  9567. 因為我們不希望一把Key太常被重複利用
  9568.  
  9569. 2393
  9570. 01:29:15,240 --> 01:29:17,240
  9571. 它的安全性自然就會降低
  9572.  
  9573. 2394
  9574. 01:29:17,240 --> 01:29:18,240
  9575. 所以如何用一把Key
  9576.  
  9577. 2395
  9578. 01:29:18,240 --> 01:29:21,240
  9579. 健康的去生出很多把也可以使用的Key
  9580.  
  9581. 2396
  9582. 01:29:21,240 --> 01:29:23,240
  9583. 這是KDF在做的事情
  9584.  
  9585. 2397
  9586. 01:29:23,240 --> 01:29:25,240
  9587. 那也會包含像Key Management的一個
  9588.  
  9589. 2398
  9590. 01:29:25,240 --> 01:29:28,240
  9591. 這個演算法來講比較像是組合技
  9592.  
  9593. 2399
  9594. 01:29:28,240 --> 01:29:32,240
  9595. 就是說它包含有像生成交換儲存使用等等
  9596.  
  9597. 2400
  9598. 01:29:32,240 --> 01:29:34,240
  9599. 這樣一整套
  9600.  
  9601. 2401
  9602. 01:29:34,240 --> 01:29:37,240
  9603. 那另外也有我們前面提過的
  9604.  
  9605. 2402
  9606. 01:29:37,240 --> 01:29:38,240
  9607. 這個Message Authentication
  9608.  
  9609. 2403
  9610. 01:29:38,240 --> 01:29:40,240
  9611. 就是訊息認證碼這種的
  9612.  
  9613. 2404
  9614. 01:29:40,240 --> 01:29:42,240
  9615. 那或者是
  9616.  
  9617. 2405
  9618. 01:29:42,240 --> 01:29:45,240
  9619. 我們也講過非常重要的
  9620.  
  9621. 2406
  9622. 01:29:45,240 --> 01:29:48,240
  9623. 叫做亂數產生
  9624.  
  9625. 2407
  9626. 01:29:48,240 --> 01:29:50,240
  9627. 那注意這邊講的這個亂數產生
  9628.  
  9629. 2408
  9630. 01:29:50,240 --> 01:29:53,240
  9631. 指的都是用函數產生的那一種
  9632.  
  9633. 2409
  9634. 01:29:53,240 --> 01:29:55,240
  9635. 就是叫Pseudo Random
  9636.  
  9637. 2410
  9638. 01:29:55,240 --> 01:29:56,240
  9639. 或是在這邊
  9640.  
  9641. 2411
  9642. 01:29:56,240 --> 01:29:59,240
  9643. 這個DRBG叫做Deterministic Random Bit Generator
  9644.  
  9645. 2412
  9646. 01:29:59,240 --> 01:30:01,240
  9647. 就是說它是
  9648.  
  9649. 2413
  9650. 01:30:01,240 --> 01:30:03,240
  9651. 基本上來講它就是可以重現的
  9652.  
  9653. 2414
  9654. 01:30:03,240 --> 01:30:04,240
  9655. 它並不是真隨機的
  9656.  
  9657. 2415
  9658. 01:30:04,240 --> 01:30:05,240
  9659. 就是我們
  9660.  
  9661. 2416
  9662. 01:30:05,240 --> 01:30:07,240
  9663. 就像我們寫程式的時候會用的那種
  9664.  
  9665. 2417
  9666. 01:30:07,240 --> 01:30:09,240
  9667. 比方說我們要Call一個Random的Function
  9668.  
  9669. 2418
  9670. 01:30:09,240 --> 01:30:11,240
  9671. 然後我們去給它一個Seed
  9672.  
  9673. 2419
  9674. 01:30:11,240 --> 01:30:13,240
  9675. 那這種Random的函數
  9676.  
  9677. 2420
  9678. 01:30:13,240 --> 01:30:15,240
  9679. 都會是偽隨機的函數
  9680.  
  9681. 2421
  9682. 01:30:15,240 --> 01:30:18,240
  9683. 那再來的話還有像Hashing
  9684.  
  9685. 2422
  9686. 01:30:18,240 --> 01:30:19,240
  9687. Secure Hashing
  9688.  
  9689. 2423
  9690. 01:30:19,240 --> 01:30:21,240
  9691. 那我們前面提過的
  9692.  
  9693. 2424
  9694. 01:30:21,240 --> 01:30:23,240
  9695. 就是如何確保資料完整性
  9696.  
  9697. 2425
  9698. 01:30:23,240 --> 01:30:25,240
  9699. 我們會用Hash Function
  9700.  
  9701. 2426
  9702. 01:30:25,240 --> 01:30:26,240
  9703. 主要使用Shark
  9704.  
  9705. 2427
  9706. 01:30:26,240 --> 01:30:28,240
  9707. 那再來也是其他的組合技
  9708.  
  9709. 2428
  9710. 01:30:28,240 --> 01:30:29,240
  9711. 包含說你
  9712.  
  9713. 2429
  9714. 01:30:29,240 --> 01:30:30,240
  9715. 因為你的這個
  9716.  
  9717. 2430
  9718. 01:30:30,240 --> 01:30:31,240
  9719. 橢圓曲線的密碼學
  9720.  
  9721. 2431
  9722. 01:30:31,240 --> 01:30:33,240
  9723. 它能夠負擔很多功能
  9724.  
  9725. 2432
  9726. 01:30:33,240 --> 01:30:35,240
  9727. 所以通常在Implement的時候
  9728.  
  9729. 2433
  9730. 01:30:35,240 --> 01:30:37,240
  9731. 我們會真正會做到的事情
  9732.  
  9733. 2434
  9734. 01:30:37,240 --> 01:30:38,240
  9735. 是比較像是去
  9736.  
  9737. 2435
  9738. 01:30:38,240 --> 01:30:39,240
  9739. 做一個
  9740.  
  9741. 2436
  9742. 01:30:39,240 --> 01:30:41,240
  9743. 專門來運算橢圓曲線的
  9744.  
  9745. 2437
  9746. 01:30:41,240 --> 01:30:43,240
  9747. 數學的一個加速器
  9748.  
  9749. 2438
  9750. 01:30:43,240 --> 01:30:44,240
  9751. 那至於說
  9752.  
  9753. 2439
  9754. 01:30:44,240 --> 01:30:46,240
  9755. 你有那個橢圓曲線的算法
  9756.  
  9757. 2440
  9758. 01:30:46,240 --> 01:30:47,240
  9759. 你有可以去
  9760.  
  9761. 2441
  9762. 01:30:47,240 --> 01:30:49,240
  9763. 算這個橢圓曲線的點相乘
  9764.  
  9765. 2442
  9766. 01:30:49,240 --> 01:30:51,240
  9767. 點相加這種的
  9768.  
  9769. 2443
  9770. 01:30:51,240 --> 01:30:53,240
  9771. 那再來要怎麼樣做到像是
  9772.  
  9773. 2444
  9774. 01:30:53,240 --> 01:30:54,240
  9775. 橢圓曲線千張
  9776.  
  9777. 2445
  9778. 01:30:54,240 --> 01:30:56,240
  9779. 或是橢圓曲線的金鑰交換
  9780.  
  9781. 2446
  9782. 01:30:56,240 --> 01:30:58,240
  9783. 那就是再把它組合起來
  9784.  
  9785. 2447
  9786. 01:30:58,240 --> 01:31:00,240
  9787. 所以也會有個別的組件
  9788.  
  9789. 2448
  9790. 01:31:00,240 --> 01:31:01,240
  9791. 這樣子
  9792.  
  9793. 2449
  9794. 01:31:01,240 --> 01:31:03,240
  9795. 所以這樣子的表格
  9796.  
  9797. 2450
  9798. 01:31:03,240 --> 01:31:05,240
  9799. 大概就是實際上
  9800.  
  9801. 2451
  9802. 01:31:05,240 --> 01:31:07,240
  9803. 在演算法認證的時候
  9804.  
  9805. 2452
  9806. 01:31:07,240 --> 01:31:09,240
  9807. 會要去做的事情
  9808.  
  9809. 2453
  9810. 01:31:09,240 --> 01:31:11,240
  9811. 那
  9812.  
  9813. 2454
  9814. 01:31:11,240 --> 01:31:13,240
  9815. 對,所以
  9816.  
  9817. 2455
  9818. 01:31:13,240 --> 01:31:15,240
  9819. 快要總結了
  9820.  
  9821. 2456
  9822. 01:31:15,240 --> 01:31:17,240
  9823. 那
  9824.  
  9825. 2457
  9826. 01:31:17,240 --> 01:31:19,240
  9827. 所以到底Path
  9828.  
  9829. 2458
  9830. 01:31:19,240 --> 01:31:20,240
  9831. 或是Leewang跟Samba
  9832.  
  9833. 2459
  9834. 01:31:20,240 --> 01:31:22,240
  9835. 到底跟這個有什麼樣的關係
  9836.  
  9837. 2460
  9838. 01:31:22,240 --> 01:31:24,240
  9839. 所以這邊我們回顧一下
  9840.  
  9841. 2461
  9842. 01:31:24,240 --> 01:31:25,240
  9843. 用一張很簡單的圖
  9844.  
  9845. 2462
  9846. 01:31:25,240 --> 01:31:27,240
  9847. 回顧一下今天所提的內容
  9848.  
  9849. 2463
  9850. 01:31:27,240 --> 01:31:28,240
  9851. 我們就有提到說
  9852.  
  9853. 2464
  9854. 01:31:28,240 --> 01:31:29,240
  9855. 有不同的這個
  9856.  
  9857. 2465
  9858. 01:31:29,240 --> 01:31:30,240
  9859. 不同的安全的目標嘛
  9860.  
  9861. 2466
  9862. 01:31:30,240 --> 01:31:32,240
  9863. 然後跟有各式各樣的做法
  9864.  
  9865. 2467
  9866. 01:31:32,240 --> 01:31:34,240
  9867. 那可以從這張圖上面
  9868.  
  9869. 2468
  9870. 01:31:34,240 --> 01:31:35,240
  9871. 看到的是說
  9872.  
  9873. 2469
  9874. 01:31:35,240 --> 01:31:37,240
  9875. 大部分我們要
  9876.  
  9877. 2470
  9878. 01:31:37,240 --> 01:31:39,240
  9879. 為了要達到安全的目標
  9880.  
  9881. 2471
  9882. 01:31:39,240 --> 01:31:41,240
  9883. 我們都會需要用到
  9884.  
  9885. 2472
  9886. 01:31:41,240 --> 01:31:43,240
  9887. 我們都會需要用到的是有
  9888.  
  9889. 2473
  9890. 01:31:43,240 --> 01:31:45,240
  9891. 有這個算法
  9892.  
  9893. 2474
  9894. 01:31:45,240 --> 01:31:47,240
  9895. 就是密碼學的運算
  9896.  
  9897. 2475
  9898. 01:31:47,240 --> 01:31:49,240
  9899. 跟金鑰
  9900.  
  9901. 2476
  9902. 01:31:49,240 --> 01:31:50,240
  9903. 那前面我們也
  9904.  
  9905. 2477
  9906. 01:31:50,240 --> 01:31:52,240
  9907. 很多次提到就是說
  9908.  
  9909. 2478
  9910. 01:31:52,240 --> 01:31:53,240
  9911. 整個系統的安全
  9912.  
  9913. 2479
  9914. 01:31:53,240 --> 01:31:55,240
  9915. 會建立在金鑰上面
  9916.  
  9917. 2480
  9918. 01:31:55,240 --> 01:31:56,240
  9919. 金鑰是我們假設
  9920.  
  9921. 2481
  9922. 01:31:56,240 --> 01:31:58,240
  9923. 絕對不能外洩的
  9924.  
  9925. 2482
  9926. 01:31:58,240 --> 01:31:59,240
  9927. 那
  9928.  
  9929. 2483
  9930. 01:31:59,240 --> 01:32:00,240
  9931. 再來呢
  9932.  
  9933. 2484
  9934. 01:32:00,240 --> 01:32:01,240
  9935. 再來
  9936.  
  9937. 2485
  9938. 01:32:01,240 --> 01:32:02,240
  9939. 所以因為
  9940.  
  9941. 2486
  9942. 01:32:02,240 --> 01:32:03,240
  9943. 因為這些運算
  9944.  
  9945. 2487
  9946. 01:32:03,240 --> 01:32:04,240
  9947. 或運作裡面
  9948.  
  9949. 2488
  9950. 01:32:04,240 --> 01:32:05,240
  9951. 安全的運作裡面
  9952.  
  9953. 2489
  9954. 01:32:05,240 --> 01:32:07,240
  9955. 大部分都會牽涉到
  9956.  
  9957. 2490
  9958. 01:32:07,240 --> 01:32:09,240
  9959. 演算法或是金鑰
  9960.  
  9961. 2491
  9962. 01:32:09,240 --> 01:32:10,240
  9963. 那並且
  9964.  
  9965. 2492
  9966. 01:32:10,240 --> 01:32:13,240
  9967. 並且安全性是建立在金鑰上面
  9968.  
  9969. 2493
  9970. 01:32:13,240 --> 01:32:15,240
  9971. 而並非演算法
  9972.  
  9973. 2494
  9974. 01:32:15,240 --> 01:32:17,240
  9975. 我這邊指的並非演算法的意思是說
  9976.  
  9977. 2495
  9978. 01:32:17,240 --> 01:32:18,240
  9979. 因為我們要能夠
  9980.  
  9981. 2496
  9982. 01:32:18,240 --> 01:32:19,240
  9983. 互相做溝通的時候
  9984.  
  9985. 2497
  9986. 01:32:19,240 --> 01:32:20,240
  9987. 我們用的演算法
  9988.  
  9989. 2498
  9990. 01:32:20,240 --> 01:32:21,240
  9991. 會是統一的規格
  9992.  
  9993. 2499
  9994. 01:32:21,240 --> 01:32:23,240
  9995. 或是會是某一種
  9996.  
  9997. 2500
  9998. 01:32:23,240 --> 01:32:25,240
  9999. 大家都可以接受的標準
  10000.  
  10001. 2501
  10002. 01:32:25,240 --> 01:32:26,240
  10003. 才能夠互相溝通
  10004.  
  10005. 2502
  10006. 01:32:26,240 --> 01:32:27,240
  10007. 這應該可以理解
  10008.  
  10009. 2503
  10010. 01:32:27,240 --> 01:32:28,240
  10011. 也因此
  10012.  
  10013. 2504
  10014. 01:32:28,240 --> 01:32:29,240
  10015. 我們必須要能夠
  10016.  
  10017. 2505
  10018. 01:32:29,240 --> 01:32:31,240
  10019. 我們必須要假設
  10020.  
  10021. 2506
  10022. 01:32:31,240 --> 01:32:32,240
  10023. 攻擊你的這些駭客
  10024.  
  10025. 2507
  10026. 01:32:32,240 --> 01:32:34,240
  10027. 他也相當的熟悉你的系統
  10028.  
  10029. 2508
  10030. 01:32:34,240 --> 01:32:35,240
  10031. 熟悉你的演算法
  10032.  
  10033. 2509
  10034. 01:32:35,240 --> 01:32:37,240
  10035. 唯一不知道的只有金鑰
  10036.  
  10037. 2510
  10038. 01:32:37,240 --> 01:32:39,240
  10039. 這個大家可以接受嗎
  10040.  
  10041. 2511
  10042. 01:32:39,240 --> 01:32:40,240
  10043. 可以
  10044.  
  10045. 2512
  10046. 01:32:40,240 --> 01:32:41,240
  10047. 那
  10048.  
  10049. 2513
  10050. 01:32:41,240 --> 01:32:42,240
  10051. 那
  10052.  
  10053. 2514
  10054. 01:32:42,240 --> 01:32:43,240
  10055. 所以接下來呢
  10056.  
  10057. 2515
  10058. 01:32:43,240 --> 01:32:44,240
  10059. 就是說
  10060.  
  10061. 2516
  10062. 01:32:44,240 --> 01:32:45,240
  10063. 整個整個
  10064.  
  10065. 2517
  10066. 01:32:45,240 --> 01:32:47,240
  10067. 既然整個安全性都建立在金鑰上面
  10068.  
  10069. 2518
  10070. 01:32:47,240 --> 01:32:49,240
  10071. 那保護這把金鑰
  10072.  
  10073. 2519
  10074. 01:32:49,240 --> 01:32:50,240
  10075. 當然相當的重要
  10076.  
  10077. 2520
  10078. 01:32:50,240 --> 01:32:52,240
  10079. 所以我們把剛剛的流程
  10080.  
  10081. 2521
  10082. 01:32:52,240 --> 01:32:53,240
  10083. 再經過簡化
  10084.  
  10085. 2522
  10086. 01:32:53,240 --> 01:32:55,240
  10087. 剛剛的我們大概都只看到
  10088.  
  10089. 2523
  10090. 01:32:55,240 --> 01:32:56,240
  10091. 有Data
  10092.  
  10093. 2524
  10094. 01:32:56,240 --> 01:32:57,240
  10095. 然後有Crypto Engine
  10096.  
  10097. 2525
  10098. 01:32:57,240 --> 01:32:59,240
  10099. 就是像AES或是ECC
  10100.  
  10101. 2526
  10102. 01:32:59,240 --> 01:33:00,240
  10103. 這種這種block
  10104.  
  10105. 2527
  10106. 01:33:00,240 --> 01:33:01,240
  10107. 這種operation
  10108.  
  10109. 2528
  10110. 01:33:01,240 --> 01:33:03,240
  10111. 然後得到了Cypher
  10112.  
  10113. 2529
  10114. 01:33:03,240 --> 01:33:04,240
  10115. 或是得到密文
  10116.  
  10117. 2530
  10118. 01:33:04,240 --> 01:33:05,240
  10119. 或是他的output
  10120.  
  10121. 2531
  10122. 01:33:05,240 --> 01:33:07,240
  10123. 剛剛我們大概都只在看這一段
  10124.  
  10125. 2532
  10126. 01:33:07,240 --> 01:33:09,240
  10127. 那現在因為有Key加入了
  10128.  
  10129. 2533
  10130. 01:33:09,240 --> 01:33:11,240
  10131. 那我們我們前面也會包含
  10132.  
  10133. 2534
  10134. 01:33:11,240 --> 01:33:13,240
  10135. 有Key的產生
  10136.  
  10137. 2535
  10138. 01:33:13,240 --> 01:33:14,240
  10139. 跟Key的儲存
  10140.  
  10141. 2536
  10142. 01:33:14,240 --> 01:33:15,240
  10143. 這個很自然
  10144.  
  10145. 2537
  10146. 01:33:15,240 --> 01:33:17,240
  10147. 我們先產生了一把Key
  10148.  
  10149. 2538
  10150. 01:33:17,240 --> 01:33:18,240
  10151. 然後存
  10152.  
  10153. 2539
  10154. 01:33:18,240 --> 01:33:20,240
  10155. 把它妥善的存好
  10156.  
  10157. 2540
  10158. 01:33:20,240 --> 01:33:21,240
  10159. 需要的時候
  10160.  
  10161. 2541
  10162. 01:33:21,240 --> 01:33:23,240
  10163. 需要的時候把它叫來使用
  10164.  
  10165. 2542
  10166. 01:33:23,240 --> 01:33:24,240
  10167. 在Crypto Engine裡面
  10168.  
  10169. 2543
  10170. 01:33:24,240 --> 01:33:26,240
  10171. 然後就可以把這個Data
  10172.  
  10173. 2544
  10174. 01:33:26,240 --> 01:33:27,240
  10175. 進到Crypto Engine
  10176.  
  10177. 2545
  10178. 01:33:27,240 --> 01:33:28,240
  10179. 得到Cypher
  10180.  
  10181. 2546
  10182. 01:33:28,240 --> 01:33:29,240
  10183. 那
  10184.  
  10185. 2547
  10186. 01:33:29,240 --> 01:33:31,240
  10187. 所以當然跟Key最重要的
  10188.  
  10189. 2548
  10190. 01:33:31,240 --> 01:33:33,240
  10191. 就是這三步了
  10192.  
  10193. 2549
  10194. 01:33:33,240 --> 01:33:35,240
  10195. 那我們這三步等於說是
  10196.  
  10197. 2550
  10198. 01:33:35,240 --> 01:33:37,240
  10199. 基本上是錨定整個裝置
  10200.  
  10201. 2551
  10202. 01:33:37,240 --> 01:33:39,240
  10203. 或是整個晶片的安全
  10204.  
  10205. 2552
  10206. 01:33:39,240 --> 01:33:41,240
  10207. 所以我們把一般把這樣子的
  10208.  
  10209. 2553
  10210. 01:33:41,240 --> 01:33:42,240
  10211. 這樣子的
  10212.  
  10213. 2554
  10214. 01:33:42,240 --> 01:33:44,240
  10215. 負責這樣子的功能的
  10216.  
  10217. 2555
  10218. 01:33:44,240 --> 01:33:46,240
  10219. 這個Unit
  10220.  
  10221. 2556
  10222. 01:33:46,240 --> 01:33:47,240
  10223. 叫做Rule of Trust
  10224.  
  10225. 2557
  10226. 01:33:47,240 --> 01:33:48,240
  10227. 叫做信任根
  10228.  
  10229. 2558
  10230. 01:33:48,240 --> 01:33:51,240
  10231. 到這邊可以接受的話
  10232.  
  10233. 2559
  10234. 01:33:51,240 --> 01:33:52,240
  10235. 那接下來
  10236.  
  10237. 2560
  10238. 01:33:52,240 --> 01:33:54,240
  10239. 剩下的問題就很簡單了
  10240.  
  10241. 2561
  10242. 01:33:54,240 --> 01:33:56,240
  10243. 就像前面看到的
  10244.  
  10245. 2562
  10246. 01:33:56,240 --> 01:33:57,240
  10247. 第一二三
  10248.  
  10249. 2563
  10250. 01:33:57,240 --> 01:33:59,240
  10251. 我們現在就是問這三個問題說
  10252.  
  10253. 2564
  10254. 01:33:59,240 --> 01:34:02,240
  10255. 怎麼樣能夠產生Secret Key
  10256.  
  10257. 2565
  10258. 01:34:02,240 --> 01:34:04,240
  10259. 第二個是怎麼樣能夠儲存Secret Key
  10260.  
  10261. 2566
  10262. 01:34:04,240 --> 01:34:06,240
  10263. 第三個是怎麼樣
  10264.  
  10265. 2567
  10266. 01:34:06,240 --> 01:34:08,240
  10267. 怎麼樣安全的使用這些Key
  10268.  
  10269. 2568
  10270. 01:34:08,240 --> 01:34:10,240
  10271. 用來做密碼學的運算
  10272.  
  10273. 2569
  10274. 01:34:10,240 --> 01:34:12,240
  10275. 那這三個問題
  10276.  
  10277. 2570
  10278. 01:34:12,240 --> 01:34:13,240
  10279. 分別都有它的簡答
  10280.  
  10281. 2571
  10282. 01:34:13,240 --> 01:34:15,240
  10283. 就是說怎麼樣產生Key
  10284.  
  10285. 2572
  10286. 01:34:15,240 --> 01:34:16,240
  10287. 我們用自成變異
  10288.  
  10289. 2573
  10290. 01:34:16,240 --> 01:34:18,240
  10291. 我們常常講的晶片指紋
  10292.  
  10293. 2574
  10294. 01:34:18,240 --> 01:34:20,240
  10295. 到這邊大家應該可以開始感受到
  10296.  
  10297. 2575
  10298. 01:34:20,240 --> 01:34:21,240
  10299. 接下來要說什麼
  10300.  
  10301. 2576
  10302. 01:34:21,240 --> 01:34:23,240
  10303. 那我們要怎麼樣能夠安全的儲存Key
  10304.  
  10305. 2577
  10306. 01:34:23,240 --> 01:34:25,240
  10307. 我們把這個Rule of Trust
  10308.  
  10309. 2578
  10310. 01:34:25,240 --> 01:34:26,240
  10311. 讓它配備有
  10312.  
  10313. 2579
  10314. 01:34:26,240 --> 01:34:29,240
  10315. 配備有靜態跟動態的Entropy
  10316.  
  10317. 2580
  10318. 01:34:29,240 --> 01:34:32,240
  10319. 就是配備有靜態跟動態的商源
  10320.  
  10321. 2581
  10322. 01:34:32,240 --> 01:34:34,240
  10323. 那再來最後一個是
  10324.  
  10325. 2582
  10326. 01:34:34,240 --> 01:34:35,240
  10327. 我們要怎麼樣
  10328.  
  10329. 2583
  10330. 01:34:35,240 --> 01:34:36,240
  10331. 我們要怎麼樣
  10332.  
  10333. 2584
  10334. 01:34:36,240 --> 01:34:38,240
  10335. 能夠安全的讓Key
  10336.  
  10337. 2585
  10338. 01:34:38,240 --> 01:34:40,240
  10339. 用在這個密碼學的運作裡面
  10340.  
  10341. 2586
  10342. 01:34:41,240 --> 01:34:44,240
  10343. 那就是我們把這個Rule of Trust的單元
  10344.  
  10345. 2587
  10346. 01:34:44,240 --> 01:34:45,240
  10347. 我們再給它配備
  10348.  
  10349. 2588
  10350. 01:34:45,240 --> 01:34:47,240
  10351. 密碼學演算法
  10352.  
  10353. 2589
  10354. 01:34:47,240 --> 01:34:49,240
  10355. 的目的在於說
  10356.  
  10357. 2590
  10358. 01:34:49,240 --> 01:34:51,240
  10359. 如果今天所有安全功能
  10360.  
  10361. 2591
  10362. 01:34:51,240 --> 01:34:53,240
  10363. 都執行在一個固定的邊界裡面
  10364.  
  10365. 2592
  10366. 01:34:53,240 --> 01:34:56,240
  10367. 它就不會有比方說
  10368.  
  10369. 2593
  10370. 01:34:56,240 --> 01:34:59,240
  10371. Key或是未加密的重要資料
  10372.  
  10373. 2594
  10374. 01:34:59,240 --> 01:35:01,240
  10375. 在Bus上面流傳
  10376.  
  10377. 2595
  10378. 01:35:01,240 --> 01:35:02,240
  10379. 這樣子的狀況
  10380.  
  10381. 2596
  10382. 01:35:02,240 --> 01:35:05,240
  10383. 它可以安全的鎖在一個邊界裡面
  10384.  
  10385. 2597
  10386. 01:35:05,240 --> 01:35:08,240
  10387. 那這三個問題的答案
  10388.  
  10389. 2598
  10390. 01:35:08,240 --> 01:35:09,240
  10391. 對應過來就是
  10392.  
  10393. 2599
  10394. 01:35:09,240 --> 01:35:11,240
  10395. 怎麼樣產生Key NeoPub
  10396.  
  10397. 2600
  10398. 01:35:11,240 --> 01:35:13,240
  10399. 怎麼樣安全的儲存Key用PubRT
  10400.  
  10401. 2601
  10402. 01:35:13,240 --> 01:35:14,240
  10403. 我們前面講過PubRT
  10404.  
  10405. 2602
  10406. 01:35:14,240 --> 01:35:17,240
  10407. 有Dynamic跟Static的Entropy
  10408.  
  10409. 2603
  10410. 01:35:17,240 --> 01:35:19,240
  10411. 就是說你這邊有Secure的OTP
  10412.  
  10413. 2604
  10414. 01:35:19,240 --> 01:35:21,240
  10415. 跟你另外有TRNG
  10416.  
  10417. 2605
  10418. 01:35:21,240 --> 01:35:23,240
  10419. 可以產生真隨機的亂數給你使用
  10420.  
  10421. 2606
  10422. 01:35:23,240 --> 01:35:25,240
  10423. 怎麼樣安全的用Key
  10424.  
  10425. 2607
  10426. 01:35:25,240 --> 01:35:27,240
  10427. 在這個密碼學的運作裡面
  10428.  
  10429. 2608
  10430. 01:35:27,240 --> 01:35:29,240
  10431. 我們把這個PubRT的單元
  10432.  
  10433. 2609
  10434. 01:35:29,240 --> 01:35:32,240
  10435. 外面再掛上其他的演算法
  10436.  
  10437. 2610
  10438. 01:35:32,240 --> 01:35:33,240
  10439. 所有安全功能
  10440.  
  10441. 2611
  10442. 01:35:33,240 --> 01:35:35,240
  10443. 都會執行在這個邊界裡面
  10444.  
  10445. 2612
  10446. 01:35:35,240 --> 01:35:36,240
  10447. 然後你這個邊界
  10448.  
  10449. 2613
  10450. 01:35:36,240 --> 01:35:38,240
  10451. 它另外採集到Bus上面去
  10452.  
  10453. 2614
  10454. 01:35:38,240 --> 01:35:41,240
  10455. 所以不會有任何禁藥
  10456.  
  10457. 2615
  10458. 01:35:41,240 --> 01:35:44,240
  10459. 什麼資料在外面流通這樣的問題
  10460.  
  10461. 2616
  10462. 01:35:44,240 --> 01:35:46,240
  10463. 所以三個問題對應三個答案
  10464.  
  10465. 2617
  10466. 01:35:46,240 --> 01:35:47,240
  10467. 這個我想
  10468.  
  10469. 2618
  10470. 01:35:47,240 --> 01:35:49,240
  10471. 今天如果大家能夠帶走這個
  10472.  
  10473. 2619
  10474. 01:35:49,240 --> 01:35:50,240
  10475. 多少會有點幫助
  10476.  
  10477. 2620
  10478. 01:35:50,240 --> 01:35:52,240
  10479. 今天的內容大概就到這邊
  10480.  
  10481. 2621
  10482. 01:35:52,240 --> 01:35:53,240
  10483. 謝謝大家
  10484.  
  10485. 2622
  10486. 01:35:53,240 --> 01:35:54,240
  10487. 謝謝大家
  10488.  
  10489.  
Add Comment
Please, Sign In to add comment