musubi
← リリース一覧

v0.2.0 · 2026-04-28

織り

/ ori

赤い糸の編み方を増やした「織り」リリース。多重結びと迷い糸を導入。

HIGHLIGHTS

主な変更

  • 01

    多重結び(chain encoder)

    全ての文字が必ず隣を参照するのではなく、アンカーを根とするランダム木で関係を結ぶ。赤い糸が文字から文字へと蛇行するように暗号文が編まれる。

  • 02

    迷い糸(noise injection)

    平文に含まれないダミー文字を暗号文に織り込む。鍵を持つ受信者だけが「本物の糸」を辿って正しい平文に到達できる一方、鍵がなければ平文の長さすら見えない。

  • 03

    形式を保ったままの拡張

    FORMAT_VERSION は 1 のまま。v0.1 で作った暗号文は v0.2 でそのまま復号でき、v0.2 の noise なし出力は v0.1 デコーダでも復号可能。

ADDED

追加された機能

  • musubi_core::encrypt_chain — ランダム生成木の chain encoder
  • musubi_core::encrypt_woven — chain + noise のフルセット
  • Ciphertext::ext / CiphertextExt::plaintext_indices — 後方互換な v0.2 拡張フィールド
  • musubi encrypt --strategy <canonical|chain>
  • musubi encrypt --noise <N>
  • musubi encrypt --seed <u64>
  • musubi-wasm: encryptWoven(plaintext, keyJson, anchor?, noise?, seed?)
  • WebUI 「織りモード」アコーディオン(多重結び + 迷い糸の本数)
  • SPEC.md §5.3 / §6.5 / §6.6 / §7.1

CHANGED

変更点

  • musubi_core::decrypt が ext.plaintext_indices を自動判別し、平文順に並べ直して返すように。v0.1 互換の暗号文は変更なしで復号。

COMPATIBILITY

互換性

  • ·FORMAT_VERSION = 1 据え置き
  • ·v0.1 の暗号文 → v0.2 でそのまま復号可
  • ·v0.2 noise なし出力 → v0.1 デコーダでも復号可
  • ·v0.2 noise あり出力 → ext を理解する v0.2 デコーダ必須

MERGED PULL REQUESTS

含まれた PR