2022-08-15
日本政府が提唱する信頼性のある自由なデータ流通「DFFT」を実現するためのシンプルなライブラリ「DataWithTrust」を作りました。信頼性のあるデータを最新のTLS1.3(SSL)で使用されている技術と、「電子政府推奨暗号リスト」掲載の暗号仕様を使って実現しています。


「DataWithTrust - TrustData.js」

使い方は簡単。分散型ID(did)と秘密鍵(secret)からなる「ユーザ」を生成し、データの中身と合わせて TrustData.encode を呼び出すだけ! import { TrustData } from "https://code4fukui.github.io/DataWithTrust/TrustData.js"; // ユーザー作成 (DIDとシークレット) const user = TrustData.createUser(); console.log(user.did); // 公開してOK! DID = 分散型ID = 公開鍵 console.log(user.secret); // 秘密にしないといけない秘密鍵 // 電子署名付きの信頼性のあるデータを生成 const bin = TrustData.encode("test", user); // 受取時に電子署名を検証 (改竄があれば例外が発生) const res = TrustData.decode(bin); console.log(res.payload); // "test" ブラウザ上や、Deno上ですぐに使えます。

上記は検証可能な電子署名付きデータですが、送り先ユーザのdidを指定することで、その相手にしか複合できない暗号化された TrustData を作成することができます。 import { TrustData } from "https://code4fukui.github.io/DataWithTrust/TrustData.js"; const user1 = TrustData.createUser(); const user2 = TrustData.createUser(); const bin = TrustData.encode("test", user1, user2.did); // 相手のDIDで暗号化 // ユーザ2 const bin2 = TrustData.decode(bin, user2); // 自分の鍵で復号化 console.log(bin2.payload); // "test" 強力な暗号技術が気軽に扱えます。


「DFFT(Data Free Flow with Trust:信頼性のある自由なデータ流通)|デジタル庁」

DFFTは、デジタル庁サイト内にページがあります。オープンデータによって切り開かれた自由なデータ流通にトラスト(信頼性)が加わることで、より広範囲なデジタル活用が進むことになります!


「2022夏季jig.jpインターンシップDチーム1日目 - ⭐jigintern diary⭐」

夏恒例、jigインターン、まずはオンライン1週間インターンからスタート!Denoをバックエンドに使ったウェブアプリ、4チームの開発がスタート。

進めよう、データ活用、データ流通!

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS