2016年1月1日 星期五

公鑰加密及數位簽章

key work: public key cryptography
A.shared secret
以共同祕密(shared secret)對資訊做加減的運算.其中Shared secret中key的長度,
在現在一般在講的128bit encryption,就是指其shared secret的長度(128bit 約38數字, log10 2=0.3).而除此外,就如古早的替換加密,也可能以統計來反解譯.因此, 現代的會以[分塊加密,block ciphers].
  一'將長訊息細分為10~15 byte的字元,二'不光只是加上shared secret而是根據固定的規則將每塊訊息經多次(十次)轉換. ex,將公鑰的前半部加到訊息的後半部, 再將結果反轉 ,最後再把公鑰的後半部加到訊息的前半部.
ex: AES(advanced Encryption Standard)
B.Diffie-Hellman Key exchange(paint –mixing trick)
而其中對於shared secret中key要放在那才能不被其它人得知.
因此,在真實實務上用上一個"離散指數(discrete exponentiation)及還原則是離散對數(discrete logarithm). . 由於並沒有已知方法可以讓電腦有效地計算離散對數.
1.A及B 選個人數字.
   A= 8 ; B =9
2. A 及 B 針對二個公開數字達成共識. 分別,時鐘尺寸(11)及基數(2)
3. A及B 各自利用次方記號 及 時鐘算法, 將個人數字和公共數字混合. 創造一個公共個人數字(PPN,public -private number)
PPN=基數^個人數字(時鐘尺寸)
A=2^8 (11) =3. B=2^ 9(11) =6.
4.A和B 個拿對方的PPN,再與自己個人數混合.
   shared secret = another PPN ^個人數(時間吋尺)
   A=6^8 (11) 4 ; B=3^9(11)=4

數位簽章:
任何數位內容理應可被拷貝,但是數位簽章卻可以做到.
這個矛盾在於數位簽章依賴一個只有簽章者知道的祕密及被簽章的訊息,
這個簽章者是用一個祕密(所稱的鎖)來簽章他的每個訊自,但是不同的訊息會有不同的簽章. 因此, 雖然任何人可以拷貝簽章,但是卻無法被移轉到另一個訊息上.
因此,無法完成偽造.
1.首先利用乘法來簽名(multiplicative padlock trick)
  A.準備一把鎖及鑰匙,
     鎖,是由小於時鐘尺吋(11)的任一數位做為數字鎖.
     鑰匙,則由....時尺吋及鎖所算出.(為2)
  B, 5 (訊息) x 6(鎖) mod(時鐘尺吋) = 8
  C.  8 (簽名) x 2(鑰匙) mod (時鐘尺吋) = 5
  *因為個人鎖是不會讓別人知的,但對於時鐘尺吋及鑰匙會公開.
2.取冪次
ex:RSA

沒有留言:

張貼留言