皆さんこんにちは
NuCypherについて。分散型ネットワークサービスを提供するときに暗号化を提供するアプリケーション。
分散型のものを考えたときにどのような暗号化が必要かということです。
これを暗号化を利用するアプリケーションを考えると通常公開鍵方式を使うと思います。
ユーザーが互いにやり取りする場合、公開鍵は十分でなく、BGPなどを使ったりしますね、でも二人以上になるとどうなるでしょう。
ここに我々が着目した難しい課題があるわけです。ここでE2Eで暗号化したい。
考えていただきたいのは、いろいろな形でメッセージやLSで暗号化したりする、誰かがこのメッセージを読まないといけない。
このケースではBobとCharlie。それぞれの鍵で復号化する。すでにAliceはオンラインでメッセージを常に暗号化しているわけですね。 Aliceはできるだけ多くの暗号化を数多くの人たちに使いたい。
これは拡張性がない。これをどう解決するか。これまで、すべてのアプリケーションについてE2Eの暗号化を実現するものはなかった。セントラルサーバで一元的に管理するところを信頼する方式をとっていた。
明らかにそれぞれ、Aliceのものを暗号化したり、復号化したりということをしているが、ここがハッカーにたいして脆弱になるわけです。
E2Eの暗号化を解決しながら拡張性を担保するには課題があった
そこでプロキシを利用した再暗号化を行う。
ここで例えば誰か、プロキシをシャットダウンしたり検閲したりが可能になる。完璧なソリューションと言えない。
これを検閲に対して対抗する処理としてプロキシの分散化が考えられます。
これが我々の
鍵の許可を与えると
最終的にデータの変換を行って受領した人が復号する
複数のプロキシを使って分散化したが、ここでUmbralという暗号化を使います。
受領者の方で復号化できる形で暗号化している。
我々のネットワークでは誰でもノードを立てていい。
シビルアタックリスクがあります。小さいチャンスですが、アタッカーではなくて世紀のノードではないということでPoSが必要です。
悪意がある場合にはトークンがスラッシュされるようにしたい。
テストネットのビデオ
テストネットはトークン入ってないけどGithubのコードでテストネットに接続できる。
こちらが使っていただけるアーリーユーザーです。
メディカルが多い、患者が医師と医療機関と共有できるように。患者がデータを持つ。
IoT系のところ、データ、車が出したデータを活用したいとか、ソーシャルデータもユーザーが持っているように、Facebookなどがもって彼らが売るのではなく。
Fully Homomorphic Encryption、遅いが、100倍にしてGPUでやってみた。
継続して研究中
資料
ご覧ください。
開発はDiscordで進めています。