摘要:非對稱加密算法的安全性往往需要基于數(shù)學(xué)問題來保障,目前主要有基于大數(shù)質(zhì)因子分解離散對數(shù)橢圓曲線等經(jīng)典數(shù)學(xué)難題進(jìn)行保護(hù)。消息認(rèn)證碼基于對稱加密,可以用于對消息完整性進(jìn)行保護(hù)。
Hash 算法與數(shù)字摘要
Hash (哈?;蛏⒘校┧惴ㄋ軐⑷我忾L度的二進(jìn)制明文串映射為較短的(通常是固定長度的)二進(jìn)制串(Hash值),并且不同的明文很難映射為相同的Hash值。
Hash 定義Hash (哈希或散列): 能將任意長度的二進(jìn)制明文串映射為較短的(通常是固定長度的)二進(jìn)制串(Hash值),并且不同的明文很難映射為相同的 Hash 值。
Hash 值在應(yīng)用中又常被稱為指紋或摘要(digest)。Hash 算法的核心思想也經(jīng)常被應(yīng)用到基于內(nèi)容的編址或命名算法中
一個優(yōu)秀的Hash算法將能實(shí)現(xiàn)如下功能:
正想快速: 給定明文和 Hash 算法,在有限時間和有限資源內(nèi)能計(jì)算得到Hash值
逆向困難: 給定(若干)Hash值,在有限時間內(nèi)很難(基本不可能)逆推出明文
輸入敏感: 原始輸入信息發(fā)生任何改變,新產(chǎn)生的 Hash 值都應(yīng)該出現(xiàn)很大不同
沖突避免: 很難找到兩端內(nèi)容不同的明文,使得它們的 Hash 值一致(發(fā)生碰撞)、
沖突避免:有時候又稱為“抗碰撞性”,分為:
弱抗碰撞性: 如果給定明文前提下,無法找到與之碰撞的其他明文,則算法具有“弱碰撞性”
強(qiáng)抗碰撞性: 如果無法找到任意兩個發(fā)生 Hash 碰撞的明文,則算法具有“強(qiáng)抗碰撞性”
常見算法目前常見的 Hash 算法包括 MD5 和 SHA系列算法,MD5算法和SHA1已經(jīng)被破解,一般推薦使用SHA2-256或更安全的算法
性能Hash算法分為:
計(jì)算敏感型(一般都是): 意味著計(jì)算資源是瓶頸,主頻越高的 CPU 運(yùn)行Hash 算法的速度也越快。因此可以通過硬件加速來提升Hash計(jì)算的吞吐量。
非計(jì)算敏感型: 例如 scrypt 算法,計(jì)算過程需要大量的內(nèi)存資源,節(jié)點(diǎn)不能通過簡單地增加更多的 CPU 來獲得 Hash 性能的提升。這樣的Hash算法經(jīng)常用于在 避免算力攻擊的場景
數(shù)字摘要數(shù)字摘要:對數(shù)字內(nèi)容進(jìn)行Hash運(yùn)算,獲取唯一的摘要值來指代原始完整的數(shù)字內(nèi)容。數(shù)字摘要是 Hash算法最重要的一個用途。利用Hash函數(shù)的抗碰撞性特點(diǎn),數(shù)字摘要可以解決確保內(nèi)容未被篡改過的問題。
Hash攻擊與防護(hù)Hash 算法并不是一種加密算法,不能用于對信息的保護(hù)。但Hash算法常用于對口令的保存上。例如用戶登錄網(wǎng)站,網(wǎng)站后臺保存口令的Hash值,每次登錄進(jìn)行比對即可,即便數(shù)據(jù)庫泄露,也無法從 Hash值還原口令,只能進(jìn)行窮舉。
Hash攻擊: 由于有時用戶設(shè)置口令的強(qiáng)度不夠,只是一些常見的簡單字符串,如password,123456等。有人專門搜集了這些常見口令,計(jì)算對應(yīng)的Hash值,制作成字典。這樣通過Hash值可以快速反查到原始口令。這一類以空間換時間的攻擊方法包括字典攻擊和彩虹表攻擊(只保存一條Hash鏈的首尾值,相對字典攻擊可以節(jié)省存儲空間)等。
Hash攻擊防范方法:為了防范這一類攻擊,一般采用加鹽(salt)的方法。保存的不是口令明文的 Hash值,而是口令明文再加上一段隨機(jī)字符串(即“鹽”)之后的Hash值。Hash結(jié)果和“鹽”分別存放在不同的地方,這樣只要不是兩者同時泄露,攻擊者就很難破解了。
加解密算法加解密算法是密碼學(xué)的核心技術(shù),可分為兩大基本類型:
加解密系統(tǒng)基本組成現(xiàn)代加解密系統(tǒng)的典型組件一般包括: 加解密算法、加密密鑰、解密密鑰。其中,加解密算法自身是固定不變的,并且一般是公開可見的。密鑰則是關(guān)鍵的信息,需要安全地保存起來,甚至通過特殊硬件進(jìn)行保護(hù)。對同一種算法,密鑰需要按照特定算法每次加密前隨機(jī)生成,長度越長,則加密強(qiáng)度越大。加解密基本過程如下:
根據(jù)加解密過程中使用的密鑰是否相同,算法可以分為對稱加密和非對稱加密,兩種模式適用于不同的需求,恰好形成互補(bǔ),某些時候可以組合使用,形成混合加密機(jī)制。
密碼學(xué)實(shí)現(xiàn)的安全往往是通過算法所依賴的數(shù)學(xué)問題來提供,而并非通過對算法的實(shí)現(xiàn)過程進(jìn)行保密。
對稱加密算法對稱加密算法,加密和解密過程的密鑰是相同的。
優(yōu)點(diǎn):加解密效率(速度快,空間占用小)和加密強(qiáng)度都很高。
缺點(diǎn):參與方都需要提前持有密鑰,一旦有人泄露則安全性被破壞,另外如何在不安全通道中提前分發(fā)密鑰也是個問題,需要借助Diffie-Hellman協(xié)議或非對稱加密方式來實(shí)現(xiàn)。
對稱密碼從實(shí)現(xiàn)原理上可以分為兩種:
分組密碼: 將明文切分為定長數(shù)據(jù)塊作為基本加密單位,應(yīng)用最為廣泛。分組對稱加密代表算法包括 DES、3DES、AES、IDEA等
序列密碼: 每次只對一個字節(jié)或字符進(jìn)行加密處理,且密碼不斷變化,只用在一些特定領(lǐng)域,如:數(shù)字媒介的加密等。序列密碼,又稱流密碼,每次通過偽隨機(jī)數(shù)生成器來生成偽隨機(jī)密鑰串。
對稱加密算法適用于大量數(shù)據(jù)的加解密過程;不能用于簽名場景;并且往往需要提前分發(fā)好密鑰;
非對稱加密算法非對稱加密可以很好的解決對稱加密中提前分發(fā)密鑰的問題。非對稱加密中,私鑰一般需要通過隨機(jī)數(shù)算法生成,公鑰可以根據(jù)私鑰生成。公鑰一般公開,他人可獲取的;私鑰一般是個人持有,他人不能獲取
非對稱加密算法:
優(yōu)點(diǎn): 是公私鑰分開,不安全通道也可使用。
缺點(diǎn):是處理速度(特別是生成密鑰和解密過程)往往比較慢,一般比對稱加解密算法慢2~3個數(shù)量級;同時加密強(qiáng)度也往往不如對稱加密算法。
非對稱加密算法的安全性往往需要基于數(shù)學(xué)問題來保障,目前主要有基于大數(shù)質(zhì)因子分解、離散對數(shù)、橢圓曲線等經(jīng)典數(shù)學(xué)難題進(jìn)行保護(hù)。代表算法包括: RSA、ElGamal、橢圓曲線(ECC)、SM2等系列算法。目前普遍認(rèn)為RSA類算法可能在不遠(yuǎn)的將來被破解,一般推薦可采用安全強(qiáng)度更高的橢圓曲線系列算法。
選擇明文攻擊在非對稱加密中,由于公鑰是公開可以獲取的,因此任何人都可以給定明文,獲取對應(yīng)的密文,這就帶來選擇明文攻擊的風(fēng)險。 在已知明文攻擊、已知密文攻擊、選擇明文攻擊中,最有威脅的為選擇明文攻擊。
已知明文攻擊: 得到了一些給定的明文和對應(yīng)的密文
已知密文攻擊: 只知道密文,只能通過統(tǒng)計(jì)特性分析其中有什么規(guī)律了
選擇明文攻擊:通過公鑰加密一些常用語,截取發(fā)送方的密文和公鑰加密后的密文對比獲取信息。
為了規(guī)避選擇明文攻擊這種風(fēng)險,現(xiàn)有的非對稱加密算法都引入了一定的保護(hù)機(jī)制。對同樣的明文使用同樣密鑰進(jìn)行多次加密,得到的結(jié)果完全不同,這就避免了選擇明文攻擊的破壞。實(shí)現(xiàn)上有多種思路:
對明文先進(jìn)行變形,添加隨機(jī)的字符串或標(biāo)記,再對添加后結(jié)果進(jìn)行處理。
先用隨機(jī)生成的臨時密鑰對明文進(jìn)行對稱加密,然后再對對稱密鑰進(jìn)行加密,即混合利用多種加密機(jī)制。
混合加密機(jī)制混合加密機(jī)制同時結(jié)合了對稱加密和非對稱加密的優(yōu)點(diǎn)。先用計(jì)算復(fù)雜度高的非對稱加密協(xié)商出一個臨時的對稱加密密鑰(也稱為會話密鑰)然后雙方通過對稱加密算法傳遞的大量數(shù)據(jù)進(jìn)行快速的加解密處理。
HTTPS 在傳統(tǒng)的HTTP層和TCP層之間通過引入 Transport Layer Security/Secure Socket Layer(TLS/SSL)加密層來實(shí)現(xiàn)可靠的傳輸
HTTPS 為典型應(yīng)用案例:
該過程的主要功能:在防止中間人竊聽和篡改的前提下完成會話密鑰的協(xié)商。
離散對數(shù)與Diffie-Hellman 密鑰交換協(xié)議Diffie-Hellman(DH)密鑰交換協(xié)議是一個經(jīng)典協(xié)議,使用該協(xié)議可以在不安全信道完成對稱密鑰的協(xié)商,以便后續(xù)通信采用對稱加密。
DH的缺點(diǎn):
阻塞性攻擊:沒有提供雙方身份的任何信息. 它是計(jì)算密集性的,因此容易遭受阻塞性攻擊,即對手請求大量的密鑰.受攻擊者花費(fèi)了相對多的計(jì)算資源來求解無用的冪系數(shù)而不是在做真正的工作.
容易遭受中間人的攻擊
消息認(rèn)證與數(shù)字簽名消息認(rèn)證碼和數(shù)字簽名技術(shù)通過對消息的摘要進(jìn)行加密,可用于消息放篡改和身份證明問題。
消息認(rèn)證碼消息認(rèn)證碼: 全稱是“基于Hash的消息認(rèn)證碼”。消息認(rèn)證碼基于對稱加密,可以用于對消息完整性進(jìn)行保護(hù)。
基本過程: 對某個消息利用提前共享的對稱密鑰和Hash算法進(jìn)行加密處理,得到HMAC值。該HMAC值持有方可以證明自己擁有共享的對稱密鑰,并且也可以利用HMAC確保消息內(nèi)容未被篡改。
消息認(rèn)證碼一般用于證明身份的場景, 主要問題是需要共享密鑰
數(shù)字簽名數(shù)字簽名基于非對稱加密,既可以用于證實(shí)某數(shù)字內(nèi)容的完整性,又同時可以確認(rèn)來源。
典型的場景: A通過信道發(fā)給B一個文件(一份信息),B如何獲知收到的文件即為A發(fā)出的原始版本?A可以先對文件內(nèi)容進(jìn)行摘要,然后用自己的私鑰對摘要進(jìn)行加密(簽名),之后同時將文件和簽名發(fā)給B。B收到文件和簽名后,用A的公鑰來解密簽名,得到數(shù)字摘要,與收到文件進(jìn)行摘要后的結(jié)果進(jìn)行比對。如果一致,說明該文件確實(shí)是A發(fā)的(別人無法擁有A的私鑰),并且文件內(nèi)容沒有被修改過(摘要結(jié)果一致)
知名的數(shù)字簽名算法包括DSA 和 安全強(qiáng)度更高的ECSDA等。
除普通的數(shù)字簽名應(yīng)用場景外,針對一些特定的安全需求,產(chǎn)生了一些特殊數(shù)字簽名技術(shù):
盲簽名: 簽名者需要在無法看到原始內(nèi)容的前提下對信息進(jìn)行簽名。盲簽名可以實(shí)現(xiàn)對所簽名內(nèi)容的保護(hù),防止簽名者看到原始內(nèi)容。另一方面,盲簽名還可以實(shí)現(xiàn)防止追蹤,簽名者無法將簽名內(nèi)容和簽名結(jié)果進(jìn)行對應(yīng)。
多重簽名:即n個簽名者中,收集到至少m個(n>=m>=1)的簽名,即認(rèn)為合法。其中,n是提供的公鑰高數(shù),m是需要匹配公鑰的最少的簽名個數(shù)
群簽名:即某個群組內(nèi)一個成員可以代表群組進(jìn)行匿名簽名。簽名可以驗(yàn)證來自于該群組,卻無法準(zhǔn)確追蹤到簽名的是哪個成員
環(huán)簽名: 環(huán)簽名是一種簡化的群簽名。簽名者首先選定一個臨時的簽名者集合,集合中包括簽名者自身。然后簽名者利用自己的私鑰和簽名集合中其他人的公鑰就可以獨(dú)立地產(chǎn)生簽名,而無需他人的幫助。簽名者集合中的其他成員可能并不知道自己被包含在最終的簽名中 。環(huán)簽名在保護(hù)匿名性方面有很多的用途。
安全性數(shù)字簽名算法自身的安全性由數(shù)學(xué)問題進(jìn)行保障,但在使用上,系統(tǒng)的安全性也十分關(guān)鍵。目前常見的數(shù)字簽名算法往往需要選取合適的隨機(jī)數(shù)作為配置參數(shù),配置參數(shù)不合理的使用或泄露都會造成安全漏洞,需要進(jìn)行安全保護(hù)。
數(shù)字證書對于非對稱加密算法和數(shù)字簽名來說,很重要的一點(diǎn)就是公鑰的分發(fā)。但在傳輸過程中,公鑰有沒有可能是偽造的呢?傳輸過程中有沒有可能被篡改?一旦公鑰出了問題,則整個建立在其上的安全體系的安全性將不復(fù)存在。
數(shù)字證書機(jī)制: 可以證明所記錄信息的合法性,比如證明某個公鑰是某個實(shí)體(如組織或個人)的,并且確保一旦內(nèi)容被篡改能被探測出來,從而實(shí)現(xiàn)對用戶公鑰的安全分發(fā)。
根據(jù)保護(hù)公鑰的用途,可以分為:
加密數(shù)字證書:用于保護(hù)用于加密信息的公鑰
簽名驗(yàn)證數(shù)字證書:用于保護(hù)用于進(jìn)行解密簽名進(jìn)行身份驗(yàn)證的公鑰
一般情況下,證書需要由證書認(rèn)證機(jī)構(gòu)來進(jìn)行簽發(fā)和背書
證書規(guī)范一般來說,一個數(shù)字證書內(nèi)容可能包括基本數(shù)據(jù)(版本、序列號)、所簽名對象信息(簽名算法類型、簽發(fā)者信息、有效期、被簽發(fā)人、簽發(fā)的公開密鑰)、CA的數(shù)字簽名,等等。目前使用最廣泛的標(biāo)準(zhǔn)為ITU和ISO聯(lián)合制定的X.509的 v3 版本規(guī)范
證書的頒發(fā)者還需要對證書內(nèi)容利用自己的私鑰添加簽名,以防止別人對證書內(nèi)容進(jìn)行篡改。
X.509規(guī)范中一般推薦使用PEM格式來存儲證書相關(guān)的文件。證書文件的文件名后綴一般為.crt或.cer,對應(yīng)私鑰文件的文件名后綴一般為.key,證書請求文件的文件名后綴為.csr。有的時候也統(tǒng)一用.pem作為文件名后綴。此外還有DER格式,是采用二進(jìn)制對證書進(jìn)行保存,可以與PEM格式互相轉(zhuǎn)換。
證書信任鏈證書中記錄了大量信息,其中最重要的包括“簽發(fā)的公開密鑰”和“CA數(shù)字簽名”兩個信息。因此,只要使用CA的公鑰再次對著個證書進(jìn)行簽名比對,就能證明某個實(shí)體的公鑰是否是合法的。
那么怎么證明用來驗(yàn)證對實(shí)體證書進(jìn)行簽名的CA公鑰自身是否合法呢?
可以通過上層的CA頒發(fā)的證書來進(jìn)行認(rèn)證
某些根CA可以通過預(yù)先分發(fā)證書來實(shí)現(xiàn)信任基礎(chǔ)
證書作為公鑰信任的基礎(chǔ),對其生命周期進(jìn)行安全管理十分關(guān)鍵。
PKI 體系在非對稱加密中,公鑰可以通過證書機(jī)制來進(jìn)行保護(hù),但證書的生成、分發(fā)、撤銷等過程并沒有在X.509規(guī)范中進(jìn)行定義。安全地管理和分發(fā)證書可以遵循PKI(Public Key Infrastructure)體系來完成。PKI體系核心解決的是證書生命周期相關(guān)的認(rèn)證和管理問題。PKI是建立在公私鑰基礎(chǔ)上實(shí)現(xiàn)安全可靠傳遞消息和身份確認(rèn)的一個通用框架,并不代表某個特定的密碼學(xué)技術(shù)和流程。
PKI 基本組件PKI至少包括如下核心組件:
CA(Certification Authority): 負(fù)責(zé)證書的頒發(fā)和作廢,接收來自RA的請求,是最核心的部分。(主要完成對證書信息的維護(hù))
RA(Registration Authority): 對用戶身份進(jìn)行驗(yàn)證,校驗(yàn)數(shù)據(jù)合法性,負(fù)責(zé)登記,審核過了就發(fā)給CA
證書數(shù)據(jù)庫: 存放證書,多采用X.500系列標(biāo)準(zhǔn)格式??梢耘浜螸DAP目錄服務(wù)管理用戶信息
操作流程: 用戶通過RA登記申請證書,提供身份和認(rèn)證信息等;CA審核后完成證書的制造,頒發(fā)給用戶。用戶如果需要撤銷證書則需要再次向CA發(fā)出申請。
證書的簽發(fā)CA對用戶簽發(fā)證書實(shí)際上是對某個用戶公鑰,使用CA的私鑰對其進(jìn)行簽名。這樣任何人都可以用CA的公鑰對該證書進(jìn)行合法性驗(yàn)證。驗(yàn)證成功則認(rèn)可該證書中所提供的用戶公鑰內(nèi)容,實(shí)現(xiàn)用戶公鑰的安全分發(fā)。
用戶證書的簽發(fā)可以有兩種方式:
由CA直接來生成證書(內(nèi)含公鑰)和對應(yīng)的私鑰發(fā)給用戶
由用戶自己生成公鑰和私鑰,然后由CA來對公鑰內(nèi)容進(jìn)行簽名(這種方式整個過程中,用戶可以保持私鑰信息的私密性,不會被其他方獲知包括CA方)
證書的撤銷證書超過有效期后會作廢,用戶也可以主動向CA申請撤銷某證書文件。
CA 無法強(qiáng)制收回已經(jīng)頒發(fā)出去的數(shù)字證書,因此為了實(shí)現(xiàn)證書的作廢,往往還需要維護(hù)一個撤銷證書列表,用于記錄已經(jīng)撤銷的證書序號。(所以第三方驗(yàn)證某個證書時,第一步就是檢查該證書是否在撤銷列表中,如果存在則無法驗(yàn)證通過。如果不在則繼續(xù)后續(xù)驗(yàn)證)
Merkle 樹結(jié)構(gòu)Merkle(默克爾)樹:又叫哈希樹,是一種典型的二叉樹結(jié)構(gòu),由一個根節(jié)點(diǎn)、一組中間節(jié)點(diǎn)和一組葉節(jié)點(diǎn)組成。區(qū)塊鏈出現(xiàn)之前,廣泛用于文件系統(tǒng)和P2P系統(tǒng)中。
主要特點(diǎn):
最下面的葉節(jié)點(diǎn)包含存儲數(shù)據(jù)或其哈希值
非葉子幾點(diǎn)(包括中間節(jié)點(diǎn)和根節(jié)點(diǎn))都是它的兩個孩子節(jié)點(diǎn)內(nèi)容的哈希值
默克爾樹逐層記錄哈希值的特點(diǎn),讓它具有了一些獨(dú)特的性質(zhì)。例如,底層數(shù)據(jù)的任何變動,都會傳遞到其父節(jié)點(diǎn),一層層沿著路徑一直到樹根。這意味著樹根的值實(shí)際上代表了對底層所有數(shù)據(jù)的“數(shù)字摘要”
默克爾樹的應(yīng)用場景有如下:
快速比較大量數(shù)據(jù):對每組數(shù)據(jù)排序后構(gòu)建默克爾樹結(jié)構(gòu)。當(dāng)兩個默克爾樹根相同時,則意味著兩組數(shù)據(jù)必然相同。否則,必然存在不同。(由于Hash計(jì)算的過程可以十分迅速,預(yù)處理可以在短時間內(nèi)完成。利用默克爾樹結(jié)構(gòu)能帶來巨大的比較性能優(yōu)勢)
快速定位修改: 一旦發(fā)現(xiàn)某個節(jié)點(diǎn)如Root的數(shù)值發(fā)生變化,沿著Root->N4->N1,即可快速定位到實(shí)際發(fā)生改變的數(shù)據(jù)塊D1
零知識證明: 如何向他人證明擁有某組數(shù)據(jù)(D0...D3)中包括給定某個內(nèi)容D0而不暴露其他任何內(nèi)容。方法:通過構(gòu)造如上圖所示的一個默克爾樹,公布N1、N5、Root。D0擁有者通過驗(yàn)證生成的Root是否跟提供的值一致,即可很容易檢測D0包括D1、D2、D3的存在。整個過程無法獲知其他內(nèi)容。
布隆過濾器布隆過濾器: 是一種基于Hash的高效查找結(jié)構(gòu),能夠快速(常數(shù)時間內(nèi))回答“某個原始是否在一個集合內(nèi)”的問題。
應(yīng)用場景:布隆過濾器因?yàn)槠涓咝源罅繎?yīng)用于網(wǎng)絡(luò)和安全領(lǐng)域,例如信息檢索、垃圾郵件規(guī)則、注冊管理等
基于Hash的查找基于Hash的快速查找算法: Hash可以將任意內(nèi)容映射到一個固定長度的字符串,而且不同內(nèi)容映射到相同串的概率很小。因此,可構(gòu)成以個很好的“內(nèi)容——》索引”的生成關(guān)系。(內(nèi)容Hash后為索引通過索引可在數(shù)組中快速的查找當(dāng)前內(nèi)容)
基于Hash的快速查找算法的缺點(diǎn):當(dāng)映射后的值限制在一定范圍(如總數(shù)組的大?。﹥?nèi)時,會發(fā)現(xiàn) Hash 沖突的概率會變高,而且范 圍越小,沖突概率越大。很多時候,存儲系統(tǒng)的大小又不能無限擴(kuò)展,這就造成算法效率的下降。為了提高空間利用率,后來人們基于Hash算法思想設(shè)計(jì)出了布隆過濾器結(jié)構(gòu)。
更高效的布隆過濾器布隆過濾器: 采用多個Hash函數(shù)來提高空間利用率。對于同一個給定輸入來說,多個Hash函數(shù)計(jì)算出多個地址,分別在位串的這些地址上標(biāo)記為1。進(jìn)行查找時,進(jìn)行同樣的計(jì)算過程,并查看對應(yīng)原始,如果都為1,則說明較大概率是存在該輸入。
優(yōu)點(diǎn):大大提高了空間利用率,可以使用較少的空間來表示較大集合的存在關(guān)系。
總結(jié): 無論是Hash算法,還是布隆過濾器,基本思想都是基于內(nèi)容的編址。Hash函數(shù)存在沖突,布隆過濾器也存在沖突。這就造成了兩種方法都存在誤報的情況,但絕對不會漏報。
同態(tài)加密 同態(tài)加密同態(tài)加密: 是一種特殊的加密方法,允許對密文進(jìn)行處理得到任然是加密的結(jié)果。即對密文直接進(jìn)行處理,跟對明文進(jìn)行處理后再對處理結(jié)果加密,得到的結(jié)果相同。
優(yōu)點(diǎn):同態(tài)加密可以保證實(shí)現(xiàn)處理者無法訪問到數(shù)據(jù)自身的信息
同態(tài)加密的兩個應(yīng)用場景:
同態(tài)加密在云計(jì)算和大數(shù)據(jù)時代意義十分重大。從安全角度講,用戶還不敢將敏感信息直接放到第三方云上進(jìn)行處理。如果有了比較實(shí)用的同態(tài)加密技術(shù),則可以放心實(shí)用各種云服務(wù),同時各種數(shù)據(jù)分析過程也不會泄露用戶隱私
對于區(qū)塊鏈技術(shù),實(shí)用同態(tài)加密技術(shù),運(yùn)行在區(qū)塊鏈上的只能合約可以處理密文,而無法獲知真實(shí)數(shù)據(jù),極大地提高了隱私安全性。
目前全同態(tài)的加密方案主要包括“基于理想個的方案”、“基于整數(shù)上近似GCD問題的方案”、“基于帶擾動學(xué)習(xí)問題的方案”。已知的同態(tài)加密技術(shù)往往需要較高的計(jì)算時間或存儲成本,相比傳統(tǒng)加密算法的性能和強(qiáng)度還有差距。
函數(shù)加密同態(tài)加密保護(hù)的是數(shù)據(jù)本身,而函數(shù)加密保護(hù)的是處理函數(shù)本身,即讓第三方看不到處理過程的前提下,對數(shù)據(jù)進(jìn)行處理。
其他問題 零知識證明零知識證明: 證明者在不想驗(yàn)證者提供任何額外信息的前提下,使驗(yàn)證者相信某個論斷是正確的。
零知識證明至少要滿足三個條件:
完整性: 真實(shí)的證明可以讓驗(yàn)證者成功驗(yàn)證
可靠性: 虛假的證明無法讓驗(yàn)證者保證通過驗(yàn)證,但允許存在小概率例外
零知識: 如果得到證明,無法從證明過程中獲知除了所證明信息之外的任何信息
量子密碼學(xué)量子密碼學(xué):隨著量子計(jì)算和量子通信的研究而受到越來越多的關(guān)注,將會對已有的密碼學(xué)安全機(jī)制產(chǎn)生較大的影響。
社交工程學(xué)即便存在理論上完美的技術(shù),也不存在完美的系統(tǒng)!
個人理解:系統(tǒng)中有人的組成部分并不是堅(jiān)不可破的,因?yàn)槿藥в猩鐣傩?,通過社會學(xué)攻擊可以輕易的攻破理論上完美的系統(tǒng)。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/24127.html
摘要:區(qū)塊鏈最早出現(xiàn)在比特幣開元項(xiàng)目中。了不起的社會學(xué)實(shí)驗(yàn)比特幣的誕生年化名中本聰?shù)娜税l(fā)布比特幣白皮書,并在年公開了實(shí)現(xiàn)代碼比特幣的意義和價值比特幣首次真正從實(shí)踐意義上實(shí)現(xiàn)了安全可靠的去中心化數(shù)字貨幣機(jī)制。 區(qū)塊鏈最早出現(xiàn)在比特幣開元項(xiàng)目中。比特幣在誕生和發(fā)展過程中,借鑒了來自數(shù)字貨幣、密碼學(xué)、博弈論、分布式系統(tǒng)、控制論等多個領(lǐng)域的技術(shù)成果,作為核心支撐結(jié)構(gòu)的區(qū)塊鏈技術(shù)大放異彩。 從實(shí)體貨幣...
摘要:關(guān)鍵步驟完成對一批交易的共識新區(qū)塊添加到區(qū)塊鏈結(jié)構(gòu)上,被大家認(rèn)可,確保未來無法被篡改比特幣的這種基于算力尋找串的共識機(jī)制稱為工作量證明。 定義與原理 定義 維基上給出定義: 一種分布式數(shù)據(jù)庫技術(shù),通過維護(hù)數(shù)據(jù)塊的鏈?zhǔn)浇Y(jié)構(gòu),可以維持增長的、不可篡改的數(shù)據(jù)記錄 基本原理 區(qū)塊鏈包括三個概念: 交易: 一次對賬本的操作,導(dǎo)致賬本狀態(tài)的一次改變,如添加一條轉(zhuǎn)賬記錄 區(qū)塊: 記錄一段時間內(nèi)發(fā)生...
摘要:側(cè)鏈側(cè)鏈協(xié)議允許資產(chǎn)在比特幣區(qū)塊鏈和其他區(qū)塊鏈之間互轉(zhuǎn)。實(shí)現(xiàn)了比特幣區(qū)塊鏈的擴(kuò)展證明在比特幣系統(tǒng)中驗(yàn)證交易時,涉及交易合法性檢查雙重花費(fèi)檢查腳本檢查等。 比特幣項(xiàng)目簡介 比特幣是基于區(qū)塊鏈技術(shù)的一種數(shù)字貨幣實(shí)現(xiàn),比特幣網(wǎng)絡(luò)是歷史上首個經(jīng)過大規(guī)模、長時間檢查的數(shù)字貨幣系統(tǒng) 比特幣網(wǎng)絡(luò)在功能上具有如下特點(diǎn): 去中心化: 意味著沒有任何獨(dú)立個體可以對網(wǎng)絡(luò)中的交易進(jìn)行破壞,任何交易請求都需要...
摘要:基于以太坊項(xiàng)目,以太坊團(tuán)隊(duì)目前運(yùn)營了一個公開的區(qū)塊鏈平臺以太坊網(wǎng)絡(luò)。主要特點(diǎn)以太坊區(qū)塊鏈底層也是一個類似比特幣網(wǎng)絡(luò)的網(wǎng)絡(luò)平臺,智能合約運(yùn)行在網(wǎng)絡(luò)中的以太坊虛擬機(jī)里。以太坊采用交易作為執(zhí)行操作的最小單位。 以太坊將比特幣針對數(shù)字交易的功能進(jìn)一步進(jìn)行了拓展,面向更為復(fù)雜和靈活的應(yīng)用場景,支持了智能合約這一重要特性。 以太坊項(xiàng)目簡介 以太坊:項(xiàng)目最初的目標(biāo)是打造以個智能合約的平臺,該平臺支持...
摘要:區(qū)塊鏈系統(tǒng)首先是一個分布式系統(tǒng),分布式系統(tǒng)的核心問題包括一致性共識一致性問題一致性問題是分布式領(lǐng)域最為基礎(chǔ)也是最重要的問題。算法與算法問題是指分布式系統(tǒng)中存在故障,但不存在惡意節(jié)點(diǎn)的場景即可能消息丟失或重復(fù),但無錯誤消息下的共識達(dá)成問題。 區(qū)塊鏈系統(tǒng)首先是一個分布式系統(tǒng),分布式系統(tǒng)的核心問題包括一致性、共識 一致性問題 一致性問題是分布式領(lǐng)域最為基礎(chǔ)也是最重要的問題。如果分布式系統(tǒng)能實(shí)...
閱讀 2594·2021-09-02 15:40
閱讀 1592·2019-08-30 15:54
閱讀 1114·2019-08-30 12:48
閱讀 3429·2019-08-29 17:23
閱讀 1067·2019-08-28 18:04
閱讀 3688·2019-08-26 13:54
閱讀 634·2019-08-26 11:40
閱讀 2431·2019-08-26 10:15