diff --git a/doc/headers.png b/doc/headers.png index acd60a9..811dd41 100644 Binary files a/doc/headers.png and b/doc/headers.png differ diff --git a/doc/headers.svg b/doc/headers.svg index dca326c..747c2c1 100644 --- a/doc/headers.svg +++ b/doc/headers.svg @@ -25,8 +25,8 @@ inkscape:document-units="mm" showgrid="false" inkscape:zoom="0.97008941" - inkscape:cx="393.26272" - inkscape:cy="339.144" + inkscape:cx="606.64511" + inkscape:cy="183.48824" inkscape:window-width="1920" inkscape:window-height="979" inkscape:window-x="0" @@ -35,6 +35,55 @@ inkscape:current-layer="layer1" /> + + + + + + + + + + markerUnits="strokeWidth"> + + + + + + + DMB + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.114336" + x="101.1319" + y="37.78397">DMB Header + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#000000;fill-opacity:1;stroke-width:0.114336" + x="79.416077" + y="38.022964">Header Device / Cake + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#000000;fill-opacity:1;stroke-width:0.114336" + x="79.551674" + y="26.311594">Device / Cake + width="11.878597" + height="3.3014317" + x="99.510727" + y="23.627577" /> Header + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.114336" + x="100.46987" + y="26.022245">Header + width="54.107815" + height="3.3014317" + x="111.38932" + y="23.627577" /> Encrypted Slices + IVs + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.114336" + x="125.95051" + y="26.022245">Encrypted Slices + IVs + width="8.4535437" + height="3.3014317" + x="116.35735" + y="35.389301" /> VMB - i + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.114336" + x="117.13887" + y="37.78397">VMB 1 + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.0715303" + x="123.13923" + y="38.05751">1 + width="7.4049692" + height="3.3014317" + x="124.81089" + y="35.389301" /> PositionEncryptedMap + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke-width:0.0515166" + x="128.07616" + y="38.241295" + id="tspan3533">PosMap 1 + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.0715303" + x="130.77708" + y="38.05751">1 . . . + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#000000;fill-opacity:1;stroke-width:0.114336" + x="148.88869" + y="37.786961">. . . + width="8.4535437" + height="3.3014317" + x="132.21587" + y="35.389301" /> VMB + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.114336" + x="132.99739" + y="37.78397">VMB 2 + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.0715303" + x="138.99774" + y="38.05751">2 + width="7.4049692" + height="3.3014317" + x="140.6694" + y="35.389301" /> PositionEncryptedMap + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke-width:0.0515166" + x="143.93466" + y="38.241295" + id="tspan3557">PosMap 2 + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.0715303" + x="146.6356" + y="38.05751">2 + width="8.4535437" + height="3.3014317" + x="153.5229" + y="35.389301" /> VMB + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.114336" + x="153.86592" + y="37.78397">VMB 15 + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.0715303" + x="159.86627" + y="38.05751">15 + width="7.4049692" + height="3.3014317" + x="161.97644" + y="35.389301" /> PositionEncryptedMap + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke-width:0.0515166" + x="165.06908" + y="38.241295" + id="tspan3579">PosMap 15 - - + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.0715303" + x="167.44533" + y="38.05751">15 DMB + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#000000;fill-opacity:1;stroke-width:0.114336" + x="23.8612" + y="51.430645">DMB + width="6.2939172" + height="3.3014317" + x="37.210278" + y="48.327049" /> salt + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.114336" + x="37.914795" + y="50.721706">salt + width="5.1412163" + height="3.3014317" + x="43.504189" + y="48.327049" /> IV + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.114336" + x="44.400536" + y="50.721706">IV 1 + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.0715303" + x="46.844017" + y="50.995247">1 . . . + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#000000;fill-opacity:1;stroke-width:0.114336" + x="67.118164" + y="50.604176">. . . + width="7.6910572" + height="3.3014317" + x="48.645401" + y="48.327049" /> ctxt + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.114336" + x="49.541748" + y="50.721706">ctxt 1 + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.0715303" + x="54.612343" + y="50.995247">1 + width="5.1412163" + height="3.3014317" + x="71.025093" + y="48.327049" /> IV + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.114336" + x="71.443924" + y="50.721706">IV 15 + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.0715303" + x="73.887398" + y="50.995247">15 + width="7.6910572" + height="3.3014317" + x="76.166306" + y="48.327049" /> ctxt + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.114336" + x="76.468208" + y="50.721706">ctxt 15 - - + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.0715303" + x="81.538795" + y="50.995247">15 + width="10.342962" + height="3.3014317" + x="56.33646" + y="48.327049" /> HMAC + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.114336" + x="57.232807" + y="50.721706">HMAC 1 + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.0715303" + x="65.344185" + y="50.995247">1 + width="10.342962" + height="3.3014317" + x="83.857384" + y="48.327049" /> HMAC + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.114336" + x="84.000908" + y="50.721706">HMAC 15 + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.0715303" + x="92.019646" + y="50.995247">15 Password + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#0000ff;fill-opacity:1;stroke-width:0.0730871" + x="16.049675" + y="59.717865">Password Argon2 + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#73573d;fill-opacity:1;stroke-width:0.0860482" + x="28.257122" + y="59.714306">Argon2 + inkscape:original-d="m 35.486183,59.165108 c 0.834938,-1.65e-4 1.652429,-1.65e-4 2.478486,0" /> KEK + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#0000ff;fill-opacity:1;stroke-width:0.0730871" + x="39.598129" + y="59.717865">KEK AES-GCM + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#73573d;fill-opacity:1;stroke-width:0.0860482" + x="52.07925" + y="59.714306">AES-GCM - - VMBkey + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#0000ff;fill-opacity:1;stroke-width:0.0730871" + x="53.854095" + y="68.516869">VMBkey 1 + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#0000ff;fill-opacity:1;stroke-width:0.0458034" + x="60.56881" + y="68.901016">1 VMB + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#000000;fill-opacity:1;stroke-width:0.114336" + x="102.67889" + y="62.957134">VMB + width="5.1412163" + height="3.3014317" + x="111.28563" + y="60.253075" /> IV + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.114336" + x="111.70446" + y="62.647743">IV ' + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.0367119" + x="114.29426" + y="61.251755">VMB + width="27.720697" + height="3.3014317" + x="116.42685" + y="60.253075" /> ctxt + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#ffffff;fill-opacity:1;stroke-width:0.114336" + x="126.16698" + y="62.647743">ctxt i - ' - i - - - AES-CTR + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#73573d;fill-opacity:1;stroke-width:0.0860482" + x="124.18272" + y="68.370621">AES-CTR 1 + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#0000ff;fill-opacity:1;stroke-width:0.0458034" + x="43.059658" + y="59.994183">1 1 + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#0000ff;fill-opacity:1;stroke-width:0.0458034" + x="24.17594" + y="60.00576">1 VEK + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#0000ff;fill-opacity:1;stroke-width:0.0730871" + x="112.01524" + y="75.379318">VEK i - VMBkey + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#0000ff;fill-opacity:1;stroke-width:0.0730871" + x="118.36942" + y="75.379318">VMBkey i - -1 + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#0000ff;fill-opacity:1;stroke-width:0.059371" + x="125.35459" + y="75.859352">1 NumSlices + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#0000ff;fill-opacity:1;stroke-width:0.0730871" + x="128.56786" + y="75.379318">NumSlices i - Metadata + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#0000ff;fill-opacity:1;stroke-width:0.0730871" + x="140.27013" + y="75.379318">Metadata i - | + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#0000ff;fill-opacity:1;stroke-width:0.125698" + x="116.6582" + y="75.472832">| | + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#0000ff;fill-opacity:1;stroke-width:0.125698" + x="117.05938" + y="75.472832">| | + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#0000ff;fill-opacity:1;stroke-width:0.125698" + x="126.77406" + y="75.472832">| | + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#0000ff;fill-opacity:1;stroke-width:0.125698" + x="127.17527" + y="75.472832">| | + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#0000ff;fill-opacity:1;stroke-width:0.125698" + x="138.64989" + y="75.472832">| | + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#0000ff;fill-opacity:1;stroke-width:0.125698" + x="139.05106" + y="75.472832">| AES-CTR + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#73573d;fill-opacity:1;stroke-width:0.0860482" + x="174.72504" + y="31.750393">AES-CTR Data I/O + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';fill:#0000ff;fill-opacity:1;stroke-width:0.0730871" + x="176.21927" + y="38.588539">Data I/O + width="186.71991" + height="64.571312" + x="12.887215" + y="18.499176" /> + 2 + 2 + 2 + 2 + 2 + 2 + VMB + + + IV + POS + + ctxt + 2 + 2 + POS + + AES-CTR + + + + + + PSI + 1 + PSI + 2 + | + | + PSI + NumSlices + 2 + . . . + | + | + | + | + EncryptedPosition Map + 2