日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

变色龙哈希函数-区块链

發布時間:2024/3/12 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 变色龙哈希函数-区块链 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

變色龍哈希調研

1. 調研背景

1.1哈希函數定義

哈希函數是一類具有以下特征的函數:將任意長度輸入的字串可轉換成一個固定長度的字串,通過原始字串可以很容易地算出轉換后的字串,通過轉換后的字串很難還原出原始字串。

1.2哈希函數特征

  • 抗弱碰撞性:對于消息x,找到y≠x且H(x)=H(y)的y在計算上是不可行的。
  • 抗強碰撞性:找到任何滿足H(x)=H(y)的偶對(x,y)在計算上是不可行的。
  • ? ? ? ?已知一個消息x,去找y使得兩者的哈希相等要比隨便找兩個消息x,y使得兩個的哈希相等要更難,可能性更“弱”,所以已知一個消息x,尋找消息y使得兩個哈希值相等叫做“弱碰撞”,找到x,y使得兩個哈希值相等叫做強碰撞

  • 高靈敏度
  • 不可逆
  • ??????

    1.3哈希函數在區塊鏈中的使用

    區塊鏈技術當中,使用了哈希函數來計算當前區塊的父區塊的區塊頭的哈希,并存放在當前區塊中。如下圖所示:

    ?????? ?????? 在上述區塊鏈示意圖中,使用的哈希函數是SHA256。如果我們想要碰撞一個已經確定了的區塊,就要嘗試2256中可能,這是不可行的。這也是區塊鏈不可篡改的密碼學基礎。

    1.4存在的問題

    ?????? 如果使用普通的哈希哈希函數,對于基于區塊鏈的版權保護系統而言,可能會有這樣一種場景:原作者創作了數字作品之后,并沒有將自己的作用上鏈,而是以其他方式公布到了網上,Evil可能在網上或者其他地方看到這個作品,然后在未經作者的應允的情況下,將作品以自己的身份上鏈。如果上鏈成功,此后,當原作者要求改變區塊鏈上該作品的版權的時候,由于區塊鏈的不可篡改性,這時候就難以解決。

    ?????? 因此,我們考慮引入變色龍哈希。

    2. 變色龍哈希概述

    2.1變色龍哈希(Chameleon Hash)的定義

    一個變色龍哈希函數由四個部分組成:cham_hash=(Setup,KeyGen,Hash,Forge)

  • Setup(λ ):輸入安全性參數λ ,輸出公共參數pp;
  • KeyGen(pp):輸入公共參數pp,輸出公私鑰對(HK,CK),HK為公鑰,CK為私鑰,又稱門限;
  • Hash(HK,m,r):輸入公鑰HK,消息m和隨機數r,輸出變色龍的哈希值CH;
  • Forge(CK,m,r,m’):輸入私鑰CK,消息m,隨機數r,消息m’,輸出另一個隨機數r’,滿足CH=Hash(HK,m,r)=Hash(HK, m’,r’)。
  • 2.2變色龍哈希滿足的安全性要求

  • 抗碰撞:不存在一個有效算法在輸入公鑰HK,可以找到(m1,r1)和(m2,r2),其中m1≠m2 ,滿足Hash(HK,m1,r1)= Hash(HK,m2,r2)。
  • 陷門碰撞:存在有效算法,在輸入門限CK后,對于任意的m1,r1,給定m2,可以計算出r2,滿足Hash(HK,m1,r1)= Hash(HK,m2,r2)。
  • 語義安全:對于任意消息m1 m2,Hash(HK,m1,r1)與 Hash(HK,m2,r2)的概率分布是不可區分的,特別的,當r為隨機選擇時,從Hash(HK,m,r)無法得到關于m的任何信息。
  • 2.3變色龍哈希函數分析

    ? ? ? ?相比于傳統哈希函數的難以找到碰撞,變色龍哈??梢匀藶榈脑O一個“弱點”或者“后門”:掌握了這個后門就可以輕松的找到哈希碰撞。

    ?????? 這種設計在一定程度上破壞了哈希函數的兩個碰撞性的特點,同時,也破壞了基于哈希函數的區塊鏈的不可篡改的特性,但是也擴大了區塊鏈的應用場景,而且對于不知道門限的普通用戶來說,想要找到碰撞依然是不可行的,也就是說,變色龍哈希的安全性也是可以保障的,對于持有“后門”的管理人員,如果其隨意篡改區塊,也是可以通過驗證兩個區塊的哈希是否相等來驗證。

    2.4變色龍哈希函數構造

    ? ? ? 同傳統的密碼學算法一樣,變色龍哈希也都是基于數學難題的,比如:

    2.4.1 基于因式分解的變色龍哈希函數的有效構造

    2.4.2基于格的變色龍哈希函數的構造

    2.4.3基于離散對數的變色龍哈希函數的構造

    Hugo Krawczky 和 Tal Rabin 在2000年提出了變色龍哈希方案,具體方案描述如下:

  • Setup(λ):輸入安全性參數λ ,構造滿足安全性參數λ 的大素數p,q,其中p,q滿足p=kq+1,選取乘法循環群Z*P中階為q的元素g,輸出公共參數pp=(p,q,g);
  • KeyGen(pp):輸入公共參數pp,在乘法循環群Z*P中隨機選擇指數x,計算h=gx,最后得到私鑰CK=x,公鑰HK=h;
  • Hash(HK,m,r):輸入公鑰HK,消息m,隨機數r,其中m,r均為Z*P中元素,輸出變色龍哈希值CH=gmhr mod p;
  • Forge(CK,m,r,m’): 輸入私鑰,CH=x,消息m,隨機數r,消息m’,其中m,r, m’,均為Z*P中的元素,根據CH= gmhr= gm’hr’mod p,可得 m+xr = m’+xr’mod q,繼而可計算出r’=(m-m’+xr)x-1 mod p。
  • ? ? ? ? 如果攻擊者在不知道門限的情況下,想要進行碰撞,就必須要求解離散對數𝑙𝑜𝑔𝑔h,而這是不可行的。

    ? ? ? ? 對于其他的變色龍哈希函數,其難度也是基于一定的數學難題的,因此其安全性取決于其對應的數學難題的難易程度。

    ?

    ?

    總結

    以上是生活随笔為你收集整理的变色龙哈希函数-区块链的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。