日本政府が提唱する信頼性のある自由なデータ流通「
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チームの開発がスタート。
進めよう、データ活用、データ流通!