密碼學中領域是離不開數學的,正所謂數學乃科學之母是一點也錯不了的,
從進位制、到網路傳遞都是經過數學的計算後,才真正得以正確的達成電腦的目的,
上個章節只能說是暖暖身,抖抖手腳,今天開始的分享才是真正講起沒有啥人聽的懂的話。
密碼學中領域是離不開數學的,正所謂數學乃科學之母是一點也錯不了的,
從進位制、到網路傳遞都是經過數學的計算後,才真正得以正確的達成電腦的目的,
上個章節只能說是暖暖身,抖抖手腳,今天開始的分享才是真正講起沒有啥人聽的懂的話。
在基本的密碼系統之下,大致上分為:Code(密碼)、Substitution(替換)、Transposition(換置、重排)、
Polyalphabetic Substitution Cipher(多套字母替換)、Running Key(金鑰)、one-time pads(一次性密碼)
code:指的是將一串明文的被經過處理的文字串,以簡單的換置、替換…方法維持了基本的完整性及機密性。
Transposition:將原本的字串重新的排列將順序重新排列,有多重的方法去確保了明文的內容有效性。詳見下圖
我們將this is an example of transposition排列到下列表格中
T | H | I | S | I |
S | A | N | E | X |
A | M | P | L | E |
O | F | T | R | A |
N | S | P | O | S |
I | T | I | O | N |
橫的來看,還是原來的字串,但是將字串改變成為直的運作TSAONI HAMFST INPTPI SELROO IXEASN
以這樣的方式將原本的型態都是以明文做傳遞,以打散重排(Rearranging)的方式來保障字串原本的意義。
Substitution:以取代的方式將文字做順序的位移,當文字的變成另一個文字時就保護了真正的明文意義,
但這種方法只要以frequency analysis(語言特性分析)即可破解,例如英文中常見的組合er、qu則容易算出之間的文字差距,
因此容易被解開。
以上例為例:
1. | 2. | 3. | 4. | 5. | 6. | 7. | 8. | 9. | 10. | 11. | 12. | 13. | 14. | 15. | 16. | 17. | 18. | 19. | 20. | 21. | 22. | 23. | 24. | 25. | 26. | |
原 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
重排 | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C |
this is an example of substitution經過重排後移4個字元,則變成了wklv lv hadpos ri vxevwlwxlrq,可以說是用了最基本的加密方式來達成隱碼的作用。
Polyalphabetic Substitution:以Substitution為基礎的一組多重重排的運算法,也就是說,除了以一種的重排理論來運作以外,還以不同的重排方法來加深加密的難度
在此以Frequency analysis就較難從中解出真正的文字意義了。
下列以四組重排字表來示範,以上面的例子做重排,第一個字為T重排為T,第二個字為H重排為K,第三個字為I重排為O,第四個字為S重排為B以此類推。
| 1. | 2. | 3. | 4. | 5. | 6. | 7. | 8. | 9. | 10. | 11. | 12. | 13. | 14. | 15. | 16. | 17. | 18. | 19. | 20. | 21. | 22. | 23. | 24. | 25. | 26. |
1 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
2 | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C |
3 | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F |
4 | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I |
Running Key:與特定的字表加密將其順序打亂,並重新選字排列,與Polyalphabetic substitution雷同,但是,其複雜程度又與重排再難上許多
將欲加密的文字選定一個字多,並將其順序依照字碼的字重新選字,例如明文為 Jason so handsome,Key為man我們先將字串轉換為字碼再從字表選字
下表為字表
1. | 2. | 3. | 4. | 5. | 6. | 7. | 8. | 9. | 10. | 11. | 12. | 13. | 14. | 15. | 16. | 17. | 18. | 19. | 20. | 21. | 22. | 23. | 24. | 25. | 26. |
G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F |
下表為字串內容及字碼(字碼大於26則必須減去26),算好後字串就成了Chlhu lh ougklhty
字 | J | A | S | O | N | S | O | H | A | N | D | S | O | M | E |
字碼 | 10 | 1 | 19 | 15 | 14 | 19 | 15 | 8 | 1 | 14 | 4 | 19 | 15 | 13 | 5 |
字 | M | A | N | M | A | N | M | A | N | M | A | N | M | A | N |
字碼 | 13 | 1 | 14 | 13 | 1 | 14 | 13 | 1 | 14 | 13 | 1 | 14 | 13 | 1 | 14 |
AND | 23 | 2 | 33 | 28 | 15 | 33 | 28 | 9 | 15 | 27 | 5 | 33 | 28 | 14 | 19 |
選字 | C | H | L | H | U | L | H | O | U | G | K | L | H | T | Y |
另外一種running key又稱為share book,意指雙方有一本相同的書,我們只需要傳輸第本書的第幾頁
第幾個字,這種方法即使密碼被取走了,沒有密碼書,還是解不開。
OTP:是目前最夯的一種密碼使用法,符合Some thing you have的精神,比起單純的some thing you know來說,強多了
OTP使用不管是傳送端、接收端都有很特殊的Key值,每一個key也只能使用一次,是一種只能不容易破解的演算法
它有幾個優點,不管是任種一種OTP在產生Key時是真正的random,沒有key會被重覆的使用,所有的pad安全的
即使是被惡意的拔開,也是無法被再次的使用了。
所有的密碼系統都離不開上列幾種,每種密碼系統特性在現在都還是看的到其踨影,下一段再跟大家一起來討論密碼學的部份囉!
Anything keeps Availability.
Anywhere keeps Integrity.
Anytime keeps Confidentiality.
keep A.I.C. = Information Security