mirror of https://github.com/nucypher/nucypher.git
Added some text to go with diagrams for `Character Concepts`
Fixed typo in `Finnegan's wake` demo documentpull/1365/head
parent
131700974f
commit
007b26d2cf
|
@ -50,22 +50,6 @@
|
|||
transform="matrix(-0.3,0,0,-0.3,0.69,0)"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:isstock="true"
|
||||
style="overflow:visible"
|
||||
id="marker5381"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow2Send"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
transform="matrix(-0.3,0,0,-0.3,0.69,0)"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
id="path5383" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Send"
|
||||
orient="auto"
|
||||
|
@ -625,9 +609,9 @@
|
|||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.27242191"
|
||||
inkscape:cx="300.15858"
|
||||
inkscape:cy="539.85536"
|
||||
inkscape:zoom="0.77052552"
|
||||
inkscape:cx="1546.3873"
|
||||
inkscape:cy="728.00567"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
|
@ -1037,19 +1021,19 @@
|
|||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:31.25px;line-height:125%;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="-1057.1515"
|
||||
y="-645.11005"
|
||||
y="-679.11005"
|
||||
id="text9443"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
x="-1057.1515"
|
||||
y="-645.11005"
|
||||
y="-679.11005"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:37.50000381px;line-height:125%;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
|
||||
id="tspan6246">Provide asymmetric</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="-1057.1515"
|
||||
y="-598.23505"
|
||||
y="-632.23505"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:37.50000381px;line-height:125%;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
|
||||
id="tspan4512">encryption key</tspan></text>
|
||||
id="tspan4508">encryption key</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text9886"
|
||||
|
@ -1078,23 +1062,12 @@
|
|||
x="-490.62302"
|
||||
y="-1596.1482"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:37.50000381px;line-height:125%;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
|
||||
id="tspan11784">Issue policy to blockchain </tspan><tspan
|
||||
id="tspan11784">Issue policy for Bob to blockchain </tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="-495.78659"
|
||||
y="-1549.2732"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:37.50000381px;line-height:125%;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
|
||||
id="tspan6267">and escrow policy fee</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="-710.70984"
|
||||
y="-629.20862"
|
||||
id="text4433"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4435"
|
||||
x="-710.70984"
|
||||
y="-629.20862">s</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
|
@ -1360,7 +1333,12 @@
|
|||
sodipodi:role="line"
|
||||
x="-827.84155"
|
||||
y="-773.04553"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:37.50000381px;line-height:125%;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle">Policy</tspan></text>
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:37.50000381px;line-height:125%;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle">Policy</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="-827.84155"
|
||||
y="-726.17053"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:37.50000381px;line-height:125%;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
|
||||
id="tspan4506">for Bob</tspan></text>
|
||||
<rect
|
||||
style="fill:#87e369;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="rect15122"
|
||||
|
@ -1375,13 +1353,6 @@
|
|||
width="80.757088"
|
||||
id="rect15124"
|
||||
style="fill:#0f7fd6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<rect
|
||||
style="fill:#2491c3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="rect15126"
|
||||
width="80.757088"
|
||||
height="80.757088"
|
||||
x="140.45894"
|
||||
y="-837.23962" />
|
||||
<rect
|
||||
y="-937.56036"
|
||||
x="140.45894"
|
||||
|
@ -1424,12 +1395,6 @@
|
|||
id="path5235"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5379"
|
||||
d="m 275.2778,-796.81304 837.0198,0"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker5381)" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker5531)"
|
||||
d="m 275.2778,-897.13378 837.0198,0"
|
||||
|
@ -1442,5 +1407,108 @@
|
|||
id="path5685"
|
||||
d="m 275.2778,-997.45452 837.0198,0"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker5687)" />
|
||||
<g
|
||||
id="g4730"
|
||||
transform="translate(0,11.476379)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text4699"
|
||||
y="-832.78076"
|
||||
x="181.5159"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:97.46507263px;line-height:125%;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
id="tspan4712"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:116.95809937px;line-height:125%;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
|
||||
y="-832.78076"
|
||||
x="181.5159"
|
||||
sodipodi:role="line">.</tspan><tspan
|
||||
id="tspan4714"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:116.95809937px;line-height:125%;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
|
||||
y="-686.58313"
|
||||
x="181.5159"
|
||||
sodipodi:role="line" /></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:97.46507263px;line-height:125%;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="181.5159"
|
||||
y="-802.60657"
|
||||
id="text4718"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
x="181.5159"
|
||||
y="-802.60657"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:116.95809937px;line-height:125%;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
|
||||
id="tspan4720">.</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="181.5159"
|
||||
y="-656.40894"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:116.95809937px;line-height:125%;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
|
||||
id="tspan4722" /></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text4724"
|
||||
y="-772.43237"
|
||||
x="181.5159"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:97.46507263px;line-height:125%;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
id="tspan4726"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:116.95809937px;line-height:125%;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
|
||||
y="-772.43237"
|
||||
x="181.5159"
|
||||
sodipodi:role="line">.</tspan><tspan
|
||||
id="tspan4728"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:116.95809937px;line-height:125%;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
|
||||
y="-626.23474"
|
||||
x="181.5159"
|
||||
sodipodi:role="line" /></text>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="172.41248"
|
||||
y="-1080.3231"
|
||||
id="text4741"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4743"
|
||||
x="172.41248"
|
||||
y="-1080.3231"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:50px;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro'">1</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text4745"
|
||||
y="-979.65259"
|
||||
x="166.68748"
|
||||
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:50px;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro'"
|
||||
y="-979.65259"
|
||||
x="166.68748"
|
||||
id="tspan4747"
|
||||
sodipodi:role="line">2</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="165.98749"
|
||||
y="-879.68182"
|
||||
id="text4749"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4751"
|
||||
x="165.98749"
|
||||
y="-879.68182"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:50px;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro'">3</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text4753"
|
||||
y="-683.79041"
|
||||
x="166.56248"
|
||||
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:50px;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro'"
|
||||
y="-683.79041"
|
||||
x="166.56248"
|
||||
id="tspan4755"
|
||||
sodipodi:role="line">n</tspan></text>
|
||||
</g>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 243 KiB After Width: | Height: | Size: 248 KiB |
|
@ -724,8 +724,8 @@
|
|||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.51436036"
|
||||
inkscape:cx="1165.635"
|
||||
inkscape:cy="746.28444"
|
||||
inkscape:cx="1255.1997"
|
||||
inkscape:cy="581.3168"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
|
@ -793,13 +793,13 @@
|
|||
x="164.96764"
|
||||
y="858.93011" /></flowRegion><flowPara
|
||||
id="flowPara31763" /></flowRoot> <rect
|
||||
ry="64.531189"
|
||||
y="-713.98022"
|
||||
x="276.70865"
|
||||
height="560.61487"
|
||||
width="752.00781"
|
||||
ry="64.517075"
|
||||
y="-713.91888"
|
||||
x="195.11514"
|
||||
height="560.49219"
|
||||
width="833.53998"
|
||||
id="rect34980"
|
||||
style="fill:#d7e3f4;fill-opacity:1;fill-rule:evenodd;stroke:#0044aa;stroke-width:2.32720137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:9.30880395, 2.32720102;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
style="fill:#d7e3f4;fill-opacity:1;fill-rule:evenodd;stroke:#0044aa;stroke-width:2.44984436;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:9.79937588, 2.44984401;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<g
|
||||
transform="matrix(128.59023,0,0,-185.53733,577.9405,422.59505)"
|
||||
id="g4467">
|
||||
|
@ -826,7 +826,7 @@
|
|||
style="font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;font-size:45px;line-height:125%;font-family:'Basis Grotesque';-inkscape-font-specification:'Basis Grotesque, Medium';text-align:start;writing-mode:lr-tb;text-anchor:start">Bob</tspan></text>
|
||||
<g
|
||||
id="g22552"
|
||||
transform="matrix(1.0648771,0,0,1.0648771,1287.3207,-1970.5079)">
|
||||
transform="matrix(1.0648771,0,0,1.0648771,1215.3207,-1970.5079)">
|
||||
<g
|
||||
id="g28-8-6"
|
||||
transform="matrix(1.1935921,0,0,1.1935921,-1039.1496,1252.1078)"
|
||||
|
@ -881,12 +881,12 @@
|
|||
sodipodi:linespacing="125%"
|
||||
id="text22546"
|
||||
y="-423.03558"
|
||||
x="298.82364"
|
||||
x="226.82364"
|
||||
style="font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;font-size:45px;line-height:125%;font-family:'Basis Grotesque';-inkscape-font-specification:'Basis Grotesque, Medium';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;font-size:45px;line-height:125%;font-family:'Basis Grotesque';-inkscape-font-specification:'Basis Grotesque, Medium';text-align:start;writing-mode:lr-tb;text-anchor:start"
|
||||
y="-423.03558"
|
||||
x="298.82364"
|
||||
x="226.82364"
|
||||
id="tspan22548"
|
||||
sodipodi:role="line">Ursula<tspan
|
||||
style="font-size:64.99999762%;baseline-shift:sub"
|
||||
|
@ -1036,25 +1036,63 @@
|
|||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker36038)"
|
||||
d="m 458.6702,-598.24087 185.5321,0"
|
||||
d="m 358.7362,-598.24087 278.85188,0"
|
||||
id="path36036"
|
||||
inkscape:connector-curvature="0" />
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text36336"
|
||||
y="-665.92841"
|
||||
x="549.39075"
|
||||
x="505.44751"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:31.25px;line-height:125%;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:34.99999619px;line-height:125%;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
|
||||
y="-665.92841"
|
||||
x="549.39075"
|
||||
x="505.44751"
|
||||
sodipodi:role="line"
|
||||
id="tspan36344">Verify policy</tspan><tspan
|
||||
id="tspan4483">Verify access</tspan><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:34.99999619px;line-height:125%;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
|
||||
y="-622.17841"
|
||||
x="549.39075"
|
||||
x="505.44751"
|
||||
sodipodi:role="line"
|
||||
id="tspan36348">for Bob</tspan></text>
|
||||
</g>
|
||||
id="tspan4561">policy for Bob</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text4533"
|
||||
y="-6.6898298"
|
||||
x="294.20285"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:31.25px;line-height:125%;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
id="tspan4537"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:34.99999619px;line-height:125%;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
|
||||
y="-6.6898298"
|
||||
x="294.20285"
|
||||
sodipodi:role="line">Send Capsule</tspan><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:34.99999619px;line-height:125%;font-family:'Basis Grotesque Pro';-inkscape-font-specification:'Basis Grotesque Pro, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle"
|
||||
y="37.060165"
|
||||
x="294.20285"
|
||||
sodipodi:role="line"
|
||||
id="tspan4541">to Ursula</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="1207.2115"
|
||||
y="-527.43762"
|
||||
id="text4543"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4545"
|
||||
x="1207.2115"
|
||||
y="-527.43762"></tspan></text>
|
||||
<flowRoot
|
||||
xml:space="preserve"
|
||||
id="flowRoot4547"
|
||||
style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:15px;line-height:125%;letter-spacing:0px;word-spacing:0px"><flowRegion
|
||||
id="flowRegion4549"><rect
|
||||
id="rect4551"
|
||||
width="272.18271"
|
||||
height="184.69542"
|
||||
x="1901.3907"
|
||||
y="162.84857" /></flowRegion><flowPara
|
||||
id="flowPara4553"></flowPara></flowRoot> </g>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 204 KiB After Width: | Height: | Size: 207 KiB |
|
@ -1,74 +1,100 @@
|
|||
Character Concepts
|
||||
==================
|
||||
|
||||
NuCypher's API is written as characters within a cryptological narrative / archetype each fulfilling a particular
|
||||
NuCypher's API is written as characters within a cryptological narrative/archetype each fulfilling a particular
|
||||
role.
|
||||
|
||||
* **Alice**: *"The Data Owner"* - retains full control over the data encrypted for her and determines whom to share the data with
|
||||
* **Enrico**: *"The Encryptor"* - a data source that encrypts data for on behalf of Alice for some encryption key
|
||||
* **Enrico**: *"The Encryptor"* - a data source that encrypts data on behalf of Alice for a configurable encryption key
|
||||
* **Bob**: *"The Data Recipient"* - the data recipient that Alice intends to share data with
|
||||
* **Ursula**: *"The Proxy in PRE"* - the node on the NuCypher network that stands ready to re-encrypt data in exchange for payment in fees and token rewards; they enforce the access policy created by Alice
|
||||
* **Ursula**: *"The Proxy in PRE"* - the node on the NuCypher Network that stands ready to re-encrypt data in exchange for payment in fees and token rewards; they enforce the access policy created by Alice
|
||||
|
||||
.. _Umbral: https://github.com/nucypher/umbral-doc/blob/master/umbral-doc.pdf
|
||||
|
||||
|
||||
Character Functions
|
||||
-------------------
|
||||
|
||||
|
||||
Alice.Grant
|
||||
^^^^^^^^^^^
|
||||
Alice::Grant
|
||||
^^^^^^^^^^^^
|
||||
|
||||
.. image:: ../.static/img/alice_grant.svg
|
||||
:target: ../.static/img/alice_grant.svg
|
||||
|
||||
Alice may have data that she thinks she may want to share this data in the future. She uses NuCypher to create
|
||||
an encryption key for Enrico to use when generating and storing data. Subsequently, Alice can delegate access to the
|
||||
encrypted data to any recipient she sees fit. It is worth noting that the same encryption key can be used by Enrico
|
||||
even though multiple policies can be created for multiple Bobs. Enrico, therefore, only has to encrypt data once using
|
||||
a configurable asymmetric encryption key in order for data to be re-encrypted for all Bobs who have been granted access.
|
||||
Alice may have data that she may want to share. It is conceivable to think that she would want to classify/categorize her data according
|
||||
to how she envisions sharing her data, each with their own set of permissions - within NuCypher this concept is called
|
||||
a `label`. Alice uses this `label` to categorize data and creates an asymmetric encryption key for Enrico based
|
||||
on the `label`. For example, Alice may use different `labels` and therefore different Enricos for health data,
|
||||
personal data, work-related data. Essentially `labels` are a way to categorize data for sharing - you can think of
|
||||
file system folders as being analogous to `labels`. Alice can delegate access permissions to the encrypted data
|
||||
classified under a `label` to any recipient she sees fit.
|
||||
|
||||
The same encryption key can be used by Enrico even though multiple policies for the generated data can be created
|
||||
for multiple Bobs. Enrico, therefore, only has to encrypt data once using a configurable asymmetric encryption
|
||||
key and data can later be re-encrypted for all Bobs who have been granted access.
|
||||
|
||||
When Alice wants to share this information with Bob, she can create a
|
||||
policy in the NuCypher network to grant access to him. In order to grant access to Bob, Alice must:
|
||||
policy in the NuCypher Network to grant access to him. To grant access to Bob, Alice must:
|
||||
|
||||
#. Create a re-encryption key based on the private key of encryption key and Bob's public key
|
||||
#. Create a re-encryption key based on the asymmetric private key and Bob's public key
|
||||
#. Configure the conditions of the policy e.g. *expiration time, m-of-n threshold values*
|
||||
#. Deploy the policy including associated fees to the blockchain
|
||||
#. Deploy `n` policy arrangements, each containing a re-encryption key fragment, `kFrag`, to `n` nodes on the NuCypher Network
|
||||
|
||||
|
||||
Enrico.Encrypt
|
||||
^^^^^^^^^^^^^^
|
||||
Enrico::Encrypt
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
.. image:: ../.static/img/enrico_encrypt.svg
|
||||
:target: ../.static/img/enrico_encrypt.svg
|
||||
|
||||
NuCypher uses the Umbral threshold proxy re-encryption scheme which employs a key encapsulation mechanism (KEM)/ data
|
||||
NuCypher uses the Umbral_ threshold proxy re-encryption scheme which employs a key encapsulation mechanism (KEM)/ data
|
||||
encapsulation mechanism (DEM). In this approach, an ephemeral symmetric key is used to encrypt the data, and the
|
||||
symmetric key is encrypted using an asymmetric encryption key. The encrypted data (the DEM portion) and the
|
||||
encrypted symmetric key (the KEM portion called a `Capsule`) are stored collectively.
|
||||
encrypted symmetric key (the KEM portion called a `capsule`) are stored collectively.
|
||||
|
||||
Even though different blocks of newly generated data may use different symmetric keys, the same asymmetric encryption
|
||||
key provided by Alice is used to encrypt the symmetric key.
|
||||
Even though different blocks of newly generated bulk data may use different symmetric keys, the same asymmetric
|
||||
encryption key provided by Alice is used to encrypt the symmetric key. How and when Enrico uses a new symmetric key
|
||||
is up to the user of the Enrico API.
|
||||
|
||||
|
||||
Bob.Retrieve
|
||||
^^^^^^^^^^^^
|
||||
Bob::Retrieve
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
.. image:: ../.static/img/bob_retrieve.svg
|
||||
:target: ../.static/img/bob_retrieve.svg
|
||||
|
||||
[Lorem ipsum...]
|
||||
When Bob wants to access the data, he must first obtain the encrypted data and `capsule` from encrypted storage.
|
||||
However, this data is currently encrypted and inaccessible to Bob.
|
||||
|
||||
Bob will need to get the `capsule` re-encrypted from being under the encryption key configured by Alice, to
|
||||
instead be encrypted under his public key. Remember that when Alice granted access to Bob, she distributed `n`
|
||||
`kFrags` of a re-encryption key for Bob to `n` Ursulas on the network. Therefore, Bob sends his `capsule` to `n`
|
||||
Ursulas in the NuCypher Network that have a corresponding `kFrag` for that policy. Those Ursulas
|
||||
will use their `kFrag` to perform a partial re-encryption operation on the `capsule` and produce a corresponding
|
||||
ciphertext fragment, `cFrag`. In the same way a `kFrag` is a fragment of a key, a `cFrag` is a fragment of ciphertext.
|
||||
The `cFrag` is returned to Bob, who collects `cFrags` until he obtains a threshold, `m`, number of `cFrags`.
|
||||
Bob attaches `m` received `cFrags` to the original `capsule` to obtain the fully re-encrypted `capsule` that is now
|
||||
encrypted under his public key. Note that the generation of a complete re-encrypted `capsule` is possible from a
|
||||
smaller number of `cFrags` than the number of `kFrags` originally sent out to Ursulas (m-of-n threshold scheme). Bob
|
||||
can now decrypt the `capsule` to obtain the symmetric key originally used to encrypt the bulk data.
|
||||
|
||||
Once Bob has the symmetric key, he can use it to decrypt the bulk data. This process can be repeated as more data is
|
||||
shared with Bob that is associated with `label` for the policy.
|
||||
|
||||
Ultimately, because of the KEM/DEM approach, only the `capsule` needs to be re-encrypted for Bob.
|
||||
Subsequently, the size of the actual bulk data is irrelevant - whether 1KB or 1GB the re-encryption operation only
|
||||
needs to be performed on the fixed size `capsule`, which is simply an encrypted symmetric key.
|
||||
|
||||
|
||||
Ursula.Reencrypt
|
||||
^^^^^^^^^^^^^^^^
|
||||
Ursula::Reencrypt
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. image:: ../.static/img/ursula_reencrypt.svg
|
||||
:target: ../.static/img/ursula_reencrypt.svg
|
||||
|
||||
[Lorem ipsum...]
|
||||
|
||||
|
||||
Alice.Revoke
|
||||
^^^^^^^^^^^^
|
||||
|
||||
[Lorem ipsum...]
|
||||
Having previously received a `kFrag` from Alice when the policy arrangement was issued, Ursula can now partially
|
||||
re-encrypt data for Bob. Ursulas use their `kFrag` on the `capsule` provided by Bob and return a
|
||||
corresponding `cFrag`. Bob will require `m` of these interactions with `m` different Ursulas to obtain a fully
|
||||
re-encrypted `capsule`.
|
||||
|
|
|
@ -22,7 +22,7 @@ without revealing data keys to intermediary entities.
|
|||
+======+===========+==============================================================================================+
|
||||
| 1 | Alice | Alice sets a Policy on the NuCypher network (2-of-3) and grants access to Bob |
|
||||
+------+-----------+----------------------------------------------------------------------------------------------+
|
||||
| 2 | Alice | Label and Alice's key public key provided to Bob |
|
||||
| 2 | Alice | Label and Alice's public key provided to Bob |
|
||||
+------+-----------+----------------------------------------------------------------------------------------------+
|
||||
| 3 | Bob | Bob joins the policy with Label and Alice's public key |
|
||||
+------+-----------+----------------------------------------------------------------------------------------------+
|
||||
|
|
Loading…
Reference in New Issue