同形暗号化とブロックチェーン

同形暗号化技術とブロックチェーン技術の組み合わせは、プライバシー保護のための新しいアイデアを提供します

より多くのブロックチェーンテクノロジーとアプリケーション分類:

ブロックチェーンアプリケーションブロックチェーン    開発

イーサネットスクエア|ファブリック| BCOS |暗号化|コンセンサスアルゴリズム|ビットコインその他のチェーン

トークンエコノミー従来の財務シナリオ|分散型ファイナンス|偽造防止トレーサビリティ|データ共有|信頼できる預金

 

前書き

人々はプライバシー保護にますます注意を払っています、そして同形暗号化技術はプライバシー保護のための技術的な考えを提供するでしょう。いくつかの点で、現在のインターネット製品にはプライバシーがまったくありません。たとえば、WeChatで私的なことについて話すとき、サードパーティに知られたくないものと、WeChatで知らないものがあります。しかし、Tencentは、以前のFacebookの情報漏えいと同様に、すべてのソーシャルプラットフォームにプライバシー漏えいのリスクがあり、人々を常に恐れさせることを知っている必要があります。このようなメカニズムには大きな欠点があります。次に、同形暗号化技術を使用すると、通信で両方の当事者によって送信されたコンテンツが文字化けしたコードの形式でデータベースに保存され、キーを持っている2つの当事者だけがそれを表示する権利を持ちます。これにより、プライバシーとセキュリティの問題が解消されませんか?

ブロックチェーンは分散型システムであり、ブロックチェーン上のトランザクションは、コンセンサスによってネットワーク全体で検証される必要があります。つまり、情報はネットワーク全体に開示される必要があります。実際、BitcoinやEthereumなどのシステムでのトランザクションはプレーンテキストで保存されます。ブロックチェーンにコマースやその他の形式を適用すると、チェーン全体のユーザーは特定の情報を知りたくなくなります。同形暗号化アルゴリズムは、私たちに良い方向性を与えてくれます。ホモモルフィック暗号化の概念

ホモモルフィック暗号化(ホモモルフィック暗号化)は、暗号化テキストを処理して暗号化されたままの結果を取得できるようにする特殊な暗号化方法です。つまり、暗号化テキストを直接処理し、プレーンテキストを処理してから暗号化して同じ結果を取得します。代数的観点から、それは同形性です。

同形暗号化アルゴリズムの分類

a)f(A)+ f(B)= f(A + B)が満たされる場合、この暗号化関数を加法同形性と呼びます。

b)f(A)×f(B)= f(A×B)が満たされる場合、この暗号化関数を乗法同形と呼びます。

注意:

暗号化関数fが加算同形性のみを満たす場合、加算および減算操作のみを実行できます。

暗号化関数fが乗算同形性のみを満たす場合、乗算および除算操作のみを実行できます。

c)アルゴリズムが満たすことができる場合:加算同形性および乗算同形性次に、これを完全ホモモルフィックアルゴリズムと呼びます。

言い換えれば、暗号化関数が加法ホモモルフィズムと乗算ホモモルフィズムの両方を満たす場合、それは完全ホモモルフィック暗号化と呼ばれます。

ブロックでの同形暗号化の適用

ブロックチェーンでのプライバシー保護テクノロジーの適用はまだ初期段階です。fiscobcosチェーンの同形暗号化のプロセス:チェーン上のすべてのデータはpaillierライブラリを呼び出すことで暗号化でき、チェーン上の暗号テキストデータはpaillierを呼び出すことでプリコンパイルできますコントラクトは、暗号テキストの同形加算操作を実装します。暗号テキストがビジネスレイヤーに返された後、paillierライブラリを呼び出して実行結果を取得することにより、復号化できます。具体的なプロセスを次の図に示します。

 

同形暗号化とブロックチェーン

同形暗号化の計算を必要とするアプリケーションシナリオがいくつかあります。たとえば、アライアンスチェーンでは、ビジネスシナリオごとに異なるプライバシー保護戦略が必要です。金融機関間の調整など、プライバシーが守られている企業では、資産データを暗号化する必要があります。FISCO BCOSでは、ユーザーは同形暗号化ライブラリを呼び出してデータを暗号化できます。コンセンサスノードがトランザクションを実行すると、同形暗号化プリコンパイル済みコントラクトが呼び出され、暗号テキスト計算の結果が取得されます。

プライバシーモジュールのコードは、公式のコンパイル済み契約に実装されており、契約で呼び出すことができます。

// PaillierPrecompiled.sol
pragma solidity ^0.4.24;
contract PaillierPrecompiled{
    function paillierAdd(string cipher1, string cipher2) public constant returns(string);
}

同形暗号化を使用して1+ 1を計算すると、コンソールは次の結果を出力します。

# 在console目录下启动控制台
bash start.sh
 
# 调用合约
call PaillierPrecompiled.sol 0x5003 paillierAdd "0100E97E06A781DAAE6DBC9C094FC963D73B340D99FD934782A5D629E094D3B051FBBEA26F46BB681EB5314AE98A6A63805834E26BD0154243581DD77709C5DB15357DBEC34F8D8B9D5892FDF5F5FC56B1474CF58D6AC23AA867E34653B469058DCDBDC283D493711022131FBCBCFAC639919A7C0FE45EECDBD43FA543492D3058737F567626318282C2C35027B05E901F45CB3B71479FC49FD08B3F81C82326DEF28739D6A7D090F93D1B5058CDA89134AB103DB49EA51FF14310179FF9B3284BC6C3B6BA3BB0FCB35FEA6AF1453A4AAEB3EB82E9B99875BEA89CD970905B40E6E5FC906F0959769865FF29A83CD23ACC0C832A0DE30D0C691335A7ABE2EA0782778E14DAACACD60767862D5E285E8FB7B6D62C9AABE1BE751DD68001F492D6FD4C46583B25FF1806A954E8DB5ED935C5A2CA6816C4EDB48D4A41D146E09EF1CA5AFECC38F38E4147D9C6D07429F058266CC879AF8AA88510E85608756585C8D78400DFFA32244B99DC1A533780CAEA07578AF340C3C4ABED09355A006FCE99F22BE113F5317256198ACB6CA9D8501EDF42A11CFCCF677755D081E48249B9345FA8C2F73E6CB37CB17C2A5A1EA4DC44949A63E8DA45F3DCE827654688312F399873E897CDD413C84DC0891884BEF8ECBC99F48CBB3DA2D04B40CDCB03A6CD8FDC11277A5AA5F73DB6B828AB24978480604D0143A0A5020EE985A88EEC73FD9DF205E5CD5C54C06ADD092E839B91F28887C9BF7775275552E1B673997A792683B784827078CC7BF7121318B0565739588268372EDD320B1BB2FEE8D873222C00AF93D07C0572BF3E089806EA7E3C8D334973B4BE61E31E389CB919FCEE834E1D9EBA624DE324D85425BCCDF8C3F8F3A94E33A307CAAE5922E46FFE96A521ECB6E7D681E7CF6A1900EEF0DDF23ADEC6EFA8842110FF1F266AEDA7B501DBC94D20817DD43D9EB056E3DA4DA977E85A53207F2C229F9302EB5029B5C31EE40FC7E25591CDC6B4AD206BDFB50C5F7D2DA2D6B8AB7A6B575C20FDD12A37EBECF27D60B651842DED09776218613F72628C1A3540252895A192DF51A1B7479EFC45A4B489FC" "0100E97E06A781DAAE6DBC9C094FC963D73B340D99FD934782A5D629E094D3B051FBBEA26F46BB681EB5314AE98A6A63805834E26BD0154243581DD77709C5DB15357DBEC34F8D8B9D5892FDF5F5FC56B1474CF58D6AC23AA867E34653B469058DCDBDC283D493711022131FBCBCFAC639919A7C0FE45EECDBD43FA543492D3058737F567626318282C2C35027B05E901F45CB3B71479FC49FD08B3F81C82326DEF28739D6A7D090F93D1B5058CDA89134AB103DB49EA51FF14310179FF9B3284BC6C3B6BA3BB0FCB35FEA6AF1453A4AAEB3EB82E9B99875BEA89CD970905B40E6E5FC906F0959769865FF29A83CD23ACC0C832A0DE30D0C691335A7ABE2EA07827736DDD4C285AB8C5F53DA58502BD2E312C939139E591C83D009C763836B05676CEDE46C9BFEBA7AF6242739F1E27A0AABB13F37CFF2DFEE5D14D52A660FDD012748025F9915585123FD263E211C594A0EDB7AFDA1240A2C340C44C3568FA47AB2CC00459DF31828C56CAC0284B5D0D3BC3D6F37969FACED77B03107B88F60A73E1F9FEBE6152FB00BDAECA9954AC28D4D9599FE234AF2E52748DBEB65570F2B99A638C275235494189B887FAEA39FE12CB1BAE9AE085E353D4DC01863052FE141D87D98E78C46FFD0F634D498E4E4B2F87B60D505F8401DCCC1BC0D9E32B8C5AF6A6257DB61DDD166CC17E712626218C16D00C24042D928028972816919C1CD9E1AB2F3135D798BE795D79013C3BDE507811E05D88050E7DF1BD3ED0EB7405BA21E854551A7EBD6351E0B9300428C77B1FA532DB9C5D9A0D4BB9F7E96BAFA259D419D75398141801B148C3EF9AE437A424E4E781238964C10EE39260DD0058392CD83C1DFEDAE2D557E5E7D643608B1BB0327AB92550A66F6D636F9F638A5077D721E6BD9344851E3FE288984F120C05A62DD9E283498B5AD680E91E0CBAD3093598B54E8A6964EB406068BB765945B182CD5EBC8910F2DE80C902751EEB77FCB583784DD852E4B6FF2CC1EBA44A5F750B2AD11240F7B95D87055F3CC5A837FA682117ACA1787CF107C9D4B111C8B9FBB78553452E351A8F0E3C50F536CA3304C"
 
# 返回结果
0100E97E06A781DAAE6DBC9C094FC963D73B340D99FD934782A5D629E094D3B051FBBEA26F46BB681EB5314AE98A6A63805834E26BD0154243581DD77709C5DB15357DBEC34F8D8B9D5892FDF5F5FC56B1474CF58D6AC23AA867E34653B469058DCDBDC283D493711022131FBCBCFAC639919A7C0FE45EECDBD43FA543492D3058737F567626318282C2C35027B05E901F45CB3B71479FC49FD08B3F81C82326DEF28739D6A7D090F93D1B5058CDA89134AB103DB49EA51FF14310179FF9B3284BC6C3B6BA3BB0FCB35FEA6AF1453A4AAEB3EB82E9B99875BEA89CD970905B40E6E5FC906F0959769865FF29A83CD23ACC0C832A0DE30D0C691335A7ABE2EA0782774D011D9A668B26E65506EF2E8B3EBA70B882DE36FEC5951B64B9D967EE5E05B1AF62EE569358360C43220A756E7FB610FCBD5A366D077C48342EE3025735D6590531A7E609ADE2608BB4173167F972AB860674DB89769E2D97EE3E308D3CA04802EF8F85BC6BFCD270F1FC6AEA5C09F51E8914273D8BD7833D55D9AF3D0102315880A57D531E30EDD8E777CDE8708AE7DDF83A8C5B48854FD4CD4E7372CED017C0BACD49E409C45F7071113B12494D3955BA1D7618E196A14012B11ADB63B857C9033604575FC7FF1D5833A53ACDE8877311FFE78F0CAEBAA27B0E5ADCDD809AEDCD5C7D2CA7F15E53AB7D62ADF04686E05B1F79CA91AFD2CE120AAD7D0F15C8E7B59968CE13BA10C99B50BE696C22A59109C3E6E5EDBE364FF5717443C175DEE5680908AEF67AF6261644AEEFAD42538A8686481CF0109296D1A2FF030143A0DED95F54CC158BF3A3FCD0B2278BDB6942D6E536CA45E3015B764FF5A94B57D232F86CFC66A29C55B9A78336026FFB6D8882E6F4CE2F8D007C225B6B3DE814FC60EB278B25FB0A1F6B4A34E920CA952BC3F14D121D5438E12634AD951EBD5911B281E3ADEC43410B91DC28B68F9D79D7F203245E87EE1DB3883B0C925C5A9BA157AB2F07ACD9A09F89EF211EED16358E78EDAF091FBA914225BF8A7DCDD2DD12EC0ABBC10E9E5F7DD48239B0A68CBD81637B1C0D7ED1DF89D714DFC6C1B7B6B3

計算されたデータと出力データは、暗号化する前は非常に単純な数値ですが、複雑な暗号テキストに変換する必要があることがわかります。このプロセスにも時間がかかります。同形暗号化アルゴリズムは、実際のアプリケーションでは実際には効率的ではありません。


元のリンク:同形暗号化とブロックチェーン

おすすめ

転載: blog.csdn.net/JonasErosonAtsea/article/details/109236300