crypt05.pptVIP

  • 1
  • 0
  • 约6.69千字
  • 约 36页
  • 2016-09-21 发布于江西
  • 举报
crypt05

嘉南大學資管系/Hsieh,Ai-Jia 單向赫序函數 前言 赫序函數的攻擊法 信息摘要MD5 信息摘要MD4 安全赫序函數(SHA) 前言 對任意長度的明文m,經由赫序函數h可產生固定長度的赫序值h(m) 赫序值在對明文鑑定或是數位簽名上都是非常必要的工具 赫序值(函數值)可視為對明文的一種”指紋” (Finger print)或是”摘要”(Digest)。所以對赫序值的數位簽名就可視為對此明文的數位簽名,因此亦可提高數位簽名的效率 使用在數位簽名上的赫序函數必須滿足: (1)赫序函數必須對任意長度的明文,產生固定長度的赫序函數值 (2)對任意的明文m,赫序值h(m)可借由軟體或硬體很容易的得到 (3)對任意的赫序值x,要找到一個明文m與之對應,即x=h(m)在計算上是不可行的 (4)對一個明文m1,要找到另一個不同的明文m2 ,而且具有相同的赫序值h(m1)=h(m2),在計算上是不可行的 (5)要找到任意一對不同的明文(m1,m2) ,而且具有相同的赫序值h(m1)=h(m2), 計算上是不可行的 (1)和(2)是單向赫序函數的特性 (3)和(4)是對使用赫序值的數位簽名方法所做的安全性保障,否則攻擊者可以由已知的明文及相關數位簽名來任意偽造對其他明文的數位簽名 (5)防止所謂”生日攻擊法”的攻擊 弱赫序函數(Weak Hash Function):滿足條件(1)~(4) 強赫序函數(Strong Hash Function):滿足條件(1)~(5) Rabin 簡單的赫序函數:(1978) 將明文M分成固定長度64 bit的明文塊(Block),令為m1,m2,...,mN,使用DES對每一明文塊陸續加密: 令h0=初始值 ... hi=Emi(hi-1) or f(mi,hi-1) G=hN=赫序值   (G是一個64 bits的赫序值) 赫序函數的攻擊法 生日攻擊法 表面看,使用簽名密匙簽署64位元長的赫序值似乎足夠安全,因為攻擊者若意圖偽造明文M的簽名,他必需試著找到另一個對應的明文M?,而且具有h(M)= h(M?)的特性,如此,偽造者可以用矇混的手法要求簽署人簽署明文M?,以達偽造目的 到底要尋找多少明文,才能找到這個對應的M?? 即,若一個函數可能n個函數值,且已知一函數值 h(x),我們任意選k個任意數做為函數的輸入值 問:到底k必須要多大才能保證至少找到一個輸入值y,且h(x)=h(y)的機率大於1/2? 討論1 對任意y,能夠滿足h(x)=h(y)的機率是1/n 所以, h(x) ?h(y)的機率是1-1/n k個都沒有一個滿足h(x)=h(y)的機率是 (1-1/n)k 至少有一個y,滿足h(x)=h(y)的機率是 1-(1-1/n)k 令a=1/n,依二項式定理: (1-a)k=1-ka+k(k-1)*a2 /2-… n??(即a?0),(1-a)k ? 1-ka 所以, 1-(1-1/n)k ?1-(1-ka)=ka=k/n 1/2 則 kn/2 即64位元,偽造者至少需提供嘗試263對明文才能有大於1/2的成功機率,但事實不是如此,用生日攻擊法只需232 討論2 生日似非而是(Birthday paradox) 到底k要多大,才能在k個人中,能至少找到二個人有同天生日的機率大於1/2? k個人的生日排列總數是365k k個人都不同生日的排列數N=P(365,k)=365!/(365-k)! 機率為Q(365,k)=365!/(365-k)!/365k k個人中,能至少找到二個人有同一天生日的機率 Pr(365,k)=1-Q(365,k) k=23 pr(365,23)=0.5073 1/2 k=100 pr(365,100)=0.9999 k?1.18n0.5 = 1.18 * 3650.5 = 22.54 ?23人 若針對k人中的某一人,其它的人跟它生日同一天的機率很小 但若不限某特定生日,任何二人生日同一天,機率就很大 生日似非而是 Pr(n,k)=n個元素中任意選出k個(可重覆選),此k個中至少二個相同的機率 選出的所有可能:nk k個都不同的排列數N=n!/k! k個都不同的機率Q(n,k)=(n!/k!)/nk Pr(n,k)=1-Q(n,k)=1-n!/(k!nk) =1-n*(n-1)*…*(n-k+1)/nk =1-(n-1)/n*…*(n-k+1)/n =1-(1-1/n)*(1-2/n)*…*(1-(k-1)/n) ?1-e(-1/n) * e(-2/n) … * e(-(k-1)/

文档评论(0)

1亿VIP精品文档

相关文档