ma: Add illustrations on key generation and improve figure layout
This commit is contained in:
parent
a4559b89ff
commit
dbb94996ba
6 changed files with 859 additions and 17 deletions
1
ma/resources/signature key chain.drawio
Executable file
1
ma/resources/signature key chain.drawio
Executable file
|
|
@ -0,0 +1 @@
|
|||
<mxfile host="app.diagrams.net" modified="2020-05-26T11:09:48.570Z" agent="5.0 (Windows)" etag="gZ4aIkYt2tVu5Nz-wrCS" version="13.1.3" type="device"><diagram id="2fsM1MNnFQr76AkjFRDS" name="Page-1">7VtZc6M4EP41fgzFDX6M7XgytVdqMlUz+7Qlg2xrwuGV8bW/fiWQAAmw8YUzE7tSKWhEy/TXx9dC7hnDcPsJg8X8j9iHQU9X/W3PGPV0ve/o5D8V7DKBptpWJplh5DNZIXhF/0E+kElXyIdLYWASx0GCFqLQi6MIeokgAxjHG3HYNA7EWRdgBiuCVw8EVek35CfzTOpaaiF/hmg25zNrKrsSAj6YqVjOgR9vMlE6xnjqGUMcx0l2FG6HMKDG43bJFI0bruZfDMMoaXPD5OHHJFxMPj+FDwvv++OXz8BQH5iWNQhW7IF7uh0QfQMfrcnhjB5+xSBahihJIOZXyTSlATX3vEIPw4So/g3u+OUJlm+Q1aR2Snbc+MRkC3roAUweYrCZowS+LoBHZRvib0Q2T8KAnGnkcJk5DzGDMZiiIBjGQYxTRYYPoDv16JgEx2+wdMX2XDiZ5pOvIU7gttHCWo4bcXgYhzDB5OlUdoPRZ77NnF3nvrApPCf3j3nJa2wmA8xZZ7nqAk9ywCA9Al6rEd5pHFF0ppkxifTfFXXEwTMM1jBBHihEBTwm+Qv/0bKDEoaZsgYQcbyKfEi/pXoYQ6ppDEIUUBMO4xVG1OfUP+GmCupwOB4/2XWgqupwaNuXAdVURVANrQqqW4OpdS1M7QOYZjB8gUsafu0gItZJpFgSTBrFEZTsz0QgQLOInOLswQfU1MR5gkcmD5Hv01lqcRc9IwATGAyA9zZL5fLcZcconPQycWuJEJu6VYHYrIFYvxbEzjXCVn8nYTt1PejV5uKJa5mWep2wNW8dtm4NppLJqeMvGp+dMRww4cPVo21imopriyXKrppFVTSjX3xc27A7tJN+2E4w8h8ptaPMIADLJfJEb8xugH6F2RWGaoaoar2Saaw9HoNhABK0FuesMw+b4SVGaSzzIUsSNh5k0jKP4wO3B+DZ1SOTADyDSUVvCk7+lKfjZbRhkFnqea5koH3kj+L3O60JIri84ngES5Jk9pQcDAkjZOFCs8qCmiA1ijXoWaODJeesSGz27cbwfFAVvW/pApjaeb7F2zBF7Ys+omh94SNqjKfTlD1c3lu0uoaj8zQoMbp3lwO1GyZBrcF49yy4F7F7GmyfBrV7HtTMRn85g+L3nEFEiowzeidUv7MOXeH25LjWpPRO2b5W16UfmcHJ4+Pdd4qKYvHTvxlI6cloK5zt2FmLzM9XUtOkeNBNOy8GDYXaMiS42hYLokgh+OcfTVSrdVwr6lrBmlpxmXSgHU4HrerQz78eICcJ++ZJot8JzbsNoSutOTh6iaiJIW3Lsdc+pOlaRqlyS3rlJfUrxzTnPnf+14b/9T88/9OrffAILQEOK/jf1+YFxIxbr83zHH1H7kjkLOfWyDX36Pc3Z5fB2L45xs1vvEtFdgTXiJiz7V6Gl9UkILxL2Mvwa+9ccGqocbc7F/QLNNC9d8+NSVuqlrixI4JwOje2FMMssRpJb9fcuPl19p0b1/v9h+bGxnFtMYPCB8t5WhG1PUsR5fJHb3gBdFNblA7VVT1Ps3yrn/6TZBF5+VOur8dkDlmX2m22MOtY2kH0KwSMI7jXBZpWWPPV1+uvsDo3dh0Ba7N/qt9Iyzqm27HT1L1OuZLTvPt8YEh9lxzArUGVt8V1DWodl/+4oFYSs3k6rgcLxpWhdY9j95Mg9t6+zlF0Mr4COyCax4h+4aOS+a2gz99lntsWyIosp2PQq30A+2UBad3iiFz5C/v0PVH3LP/4NZKTCb67n+Criqlq1nmOw/d2OkrfEG+6Hml3W+xvvUd0fSAaHPBzIzqv2F1FdLVT+wQjiIlxPk48N+wavnw8P1wooMlp8auzbHjx2z3j6X8=</diagram></mxfile>
|
||||
BIN
ma/resources/signature_key_chain.pdf
Executable file
BIN
ma/resources/signature_key_chain.pdf
Executable file
Binary file not shown.
1
ma/resources/transmitter scope key illustration.drawio
Executable file
1
ma/resources/transmitter scope key illustration.drawio
Executable file
|
|
@ -0,0 +1 @@
|
|||
<mxfile host="app.diagrams.net" modified="2020-05-26T11:18:02.883Z" agent="5.0 (Windows)" etag="YsSLXK01ZBh7hZ0VPEMf" version="13.1.3" type="device"><diagram id="F6ZKFbFqJY7OJdNG2ES8" name="Page-1">7Vtdc5s4FP01fkyGb/Cj4yTbbZtttt6ZTR4FCKyNjDyy/NVfvxJIgIDETmMHO63byXCvpEvQPefoWigDezzb/EHBfHpHYogHlhFvBvb1wLIc3+A/hWNbOFzTLRwpRXHhMivHBP2A0inHpUsUw4XWkRGCGZrrzohkGYyY5gOUkrXeLSFYv+scpLDlmEQAt73/ophNC2/gGpX/E0TpVN3ZNGTLDKjO0rGYgpisNRfcsFuSMfkrXt9x1x3JyMC9mTImHnA0sG75/0R0ukwJSTEEc7S4jMiMu6MF73KbgBnCYnbF+Kt8PA9u3wzsMSWEFVezzRhikRg16cVvcPtMa/nUFGZsnwGL6J+H+8/On1+Q7z9mEfx78tfnC9PwijgrgJdyPuVcsK2aYJjFI5EnbmUk486rGCymUMQ1uTFlMywvF4ySpzILwpMgjMcEE5qHsmMAgyQqe9ZavCiAYcJb5LzHraRXD2qW08cxDckMMrrlXdZV9lXyp7XEKx+FGDC00sMDmeG0DFfe4Z4gfmPLkHyxPRlH0iWwDT3EgixpBOWoekJ2BLL8RiAGaApZKxC/qD125crz/YrcW8OO1HuYz9ZVyC9ScXEHGaS8z0i18DuVjS2gcP7MxWW0DAVK1lPE4GQOIuFbc+3RwRKSZRbD+GtYOkD0lFLh/bZkGAmk5f4Y0KdvPAxiYqaMS8PVnVbu7UBb4op/nWjLP2IE523NX3zKZ1tByuDmtTiUA1xfz6+jgFLDqel0ANVsIqoOSg0Fr025ClwnNyfaRJr8wfh0fs/5QbKbquWKFrkSE80tQtmUpCQD+Cshc5ml/yBjW7k6gCUjerLhBrGH2vVjnjNXWtcbGTk3tsrI+DM/1I3HulENyi0xyi7Ne0jRLAdv0UdXJqtDmVwYxE4XVgIrtHOs7KtMfH5zCXhJdx25UOYU30nSNsb2FrG34cU7T7xcGoalYebS8cwXcPPzsEmSxIo6F7TYCz33wLBRi/Opw8ZvrSxqIfnQi4bwK26YR1hBvBNYQYLTUgR/T0m4EJoQ6Jpgue5RNOFEl5KClb1pwvA8gSNwYzfWkuCXWkv6xY13XiUIN5p516Dk6FDyhj+DpNd/qW5j75BIOo9i1vM/DJIuOqDkVzJ1zlgKzkKV1KJbq3BH+agYrlAEF89XuYDGu6tcUUjeqk3DTxCvIEMRUBVmATNTzDzAKM1EWD7RIqUvlBzPFilFOMs4zK6Hbeg1q+101KxGR83qHKtkVdvZL25x1oUAh2Rd53/u4A1TQtEPngCA9Wzp+nDIXYtDlon2nsQqoN0XsRT/OzYlY7RSO48TPk+CZMa4ti9Zaz8d+pWq+azO1ug3IysQYvUNlkLeVrcJA6xmxxDDug1jVDfl65aa5wjs9ntnt9Xeazhzdu8uo9R38H05v0d+3/pSxGy9FOEVSvWx9IDPvCI51JsNt634pWL81ob30gbP610bPtzKv1MbFPRPSBus5i6m2ac2WO3KvdSG0W9teCdtcIPetcH+5bRBQf+UtMFt4MLtVRusFibuQLZMQMSWdNfrq/dWiNgfhkbHDk6SQC9qKsQxKGz0TmGzla4PT2H1hKdDYXPYOObi90lhs32erUHhE1rk+6awY/VNYfPDfXs/7t6c90YKvy1ZXSVT48Dgd3Ge1TK+wO3rTgwelnqNAxqFEO1FyTBwHbeLkkEEj0HJoFX/9M1Io4uSrR3Y+2WIUaRnOqRVnvfaleXTxgYdB4jVvMvTxvVUSJdKJIaJiCBSwJGAR9I9Q3Gcy0MXoHRJKM98CyPFQBzYLl6MHfgwj91ItTXcM9XW8VLd3myfwIjCksEHzxctHussElZy7B0Sxs3qLwGKWqj6Ww375n8=</diagram></mxfile>
|
||||
790
ma/resources/transmitter scope key illustration.svg
Executable file
790
ma/resources/transmitter scope key illustration.svg
Executable file
|
|
@ -0,0 +1,790 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:xhtml="http://www.w3.org/1999/xhtml"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
style="background-color: rgb(255, 255, 255);"
|
||||
version="1.1"
|
||||
width="631px"
|
||||
height="562px"
|
||||
viewBox="-0.5 -0.5 631 562"
|
||||
content="<mxfile host="app.diagrams.net" modified="2020-05-26T11:18:14.828Z" agent="5.0 (Windows)" etag="gHkfeKd-s41ABWdfvB-v" version="13.1.3" type="device"><diagram id="F6ZKFbFqJY7OJdNG2ES8" name="Page-1">7Vtdc5s4FP01fkyGb/Cj4yTbbZtttt6ZTR4FCKyNjDyy/NVfvxJIgIDETmMHO63byXCvpEvQPefoWigDezzb/EHBfHpHYogHlhFvBvb1wLIc3+A/hWNbOFzTLRwpRXHhMivHBP2A0inHpUsUw4XWkRGCGZrrzohkGYyY5gOUkrXeLSFYv+scpLDlmEQAt73/ophNC2/gGpX/E0TpVN3ZNGTLDKjO0rGYgpisNRfcsFuSMfkrXt9x1x3JyMC9mTImHnA0sG75/0R0ukwJSTEEc7S4jMiMu6MF73KbgBnCYnbF+Kt8PA9u3wzsMSWEFVezzRhikRg16cVvcPtMa/nUFGZsnwGL6J+H+8/On1+Q7z9mEfx78tfnC9PwijgrgJdyPuVcsK2aYJjFI5EnbmUk486rGCymUMQ1uTFlMywvF4ySpzILwpMgjMcEE5qHsmMAgyQqe9ZavCiAYcJb5LzHraRXD2qW08cxDckMMrrlXdZV9lXyp7XEKx+FGDC00sMDmeG0DFfe4Z4gfmPLkHyxPRlH0iWwDT3EgixpBOWoekJ2BLL8RiAGaApZKxC/qD125crz/YrcW8OO1HuYz9ZVyC9ScXEHGaS8z0i18DuVjS2gcP7MxWW0DAVK1lPE4GQOIuFbc+3RwRKSZRbD+GtYOkD0lFLh/bZkGAmk5f4Y0KdvPAxiYqaMS8PVnVbu7UBb4op/nWjLP2IE523NX3zKZ1tByuDmtTiUA1xfz6+jgFLDqel0ANVsIqoOSg0Fr025ClwnNyfaRJr8wfh0fs/5QbKbquWKFrkSE80tQtmUpCQD+Cshc5ml/yBjW7k6gCUjerLhBrGH2vVjnjNXWtcbGTk3tsrI+DM/1I3HulENyi0xyi7Ne0jRLAdv0UdXJqtDmVwYxE4XVgIrtHOs7KtMfH5zCXhJdx25UOYU30nSNsb2FrG34cU7T7xcGoalYebS8cwXcPPzsEmSxIo6F7TYCz33wLBRi/Opw8ZvrSxqIfnQi4bwK26YR1hBvBNYQYLTUgR/T0m4EJoQ6Jpgue5RNOFEl5KClb1pwvA8gSNwYzfWkuCXWkv6xY13XiUIN5p516Dk6FDyhj+DpNd/qW5j75BIOo9i1vM/DJIuOqDkVzJ1zlgKzkKV1KJbq3BH+agYrlAEF89XuYDGu6tcUUjeqk3DTxCvIEMRUBVmATNTzDzAKM1EWD7RIqUvlBzPFilFOMs4zK6Hbeg1q+101KxGR83qHKtkVdvZL25x1oUAh2Rd53/u4A1TQtEPngCA9Wzp+nDIXYtDlon2nsQqoN0XsRT/OzYlY7RSO48TPk+CZMa4ti9Zaz8d+pWq+azO1ug3IysQYvUNlkLeVrcJA6xmxxDDug1jVDfl65aa5wjs9ntnt9Xeazhzdu8uo9R38H05v0d+3/pSxGy9FOEVSvWx9IDPvCI51JsNt634pWL81ob30gbP610bPtzKv1MbFPRPSBus5i6m2ac2WO3KvdSG0W9teCdtcIPetcH+5bRBQf+UtMFt4MLtVRusFibuQLZMQMSWdNfrq/dWiNgfhkbHDk6SQC9qKsQxKGz0TmGzla4PT2H1hKdDYXPYOObi90lhs32erUHhE1rk+6awY/VNYfPDfXs/7t6c90YKvy1ZXSVT48Dgd3Ge1TK+wO3rTgwelnqNAxqFEO1FyTBwHbeLkkEEj0HJoFX/9M1Io4uSrR3Y+2WIUaRnOqRVnvfaleXTxgYdB4jVvMvTxvVUSJdKJIaJiCBSwJGAR9I9Q3Gcy0MXoHRJKM98CyPFQBzYLl6MHfgwj91ItTXcM9XW8VLd3myfwIjCksEHzxctHussElZy7B0Sxs3qLwGKWqj6Ww375n8=</diagram></mxfile>"
|
||||
id="svg166"
|
||||
sodipodi:docname="transmitter scope key illustration.svg"
|
||||
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
|
||||
<metadata
|
||||
id="metadata170">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="3840"
|
||||
inkscape:window-height="2097"
|
||||
id="namedview168"
|
||||
showgrid="false"
|
||||
inkscape:zoom="2.3754762"
|
||||
inkscape:cx="261.99472"
|
||||
inkscape:cy="336.50624"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g156" />
|
||||
<defs
|
||||
id="defs4">
|
||||
<style
|
||||
type="text/css"
|
||||
id="style2">@import url(https://fonts.googleapis.com/css?family=DM+Mono);
|
||||
</style>
|
||||
</defs>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 254.62186,70.141186 c 7.88108,-14.356856 15.60339,-18.342058 25.37521,-17.803452 7.19552,0.396605 17.68145,6.18262 22.84724,17.208113"
|
||||
id="path977"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="csc" />
|
||||
<g
|
||||
id="g156">
|
||||
<path
|
||||
d="M 280 560 L 280 0"
|
||||
fill="none"
|
||||
stroke="#6c8ebf"
|
||||
stroke-miterlimit="10"
|
||||
stroke-dasharray="3 3"
|
||||
pointer-events="stroke"
|
||||
id="path6" />
|
||||
<path
|
||||
d="M 490 160 L 610 160 L 630 180 L 630 290 L 510 290 L 490 270 L 490 160 Z"
|
||||
fill="#f5f5f5"
|
||||
stroke="#666666"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="all"
|
||||
id="path8" />
|
||||
<path
|
||||
d="M 490 160 L 610 160 L 630 180 L 510 180 Z"
|
||||
fill-opacity="0.05"
|
||||
fill="#000000"
|
||||
stroke="none"
|
||||
pointer-events="all"
|
||||
id="path10" />
|
||||
<path
|
||||
d="M 490 160 L 510 180 L 510 290 L 490 270 Z"
|
||||
fill-opacity="0.1"
|
||||
fill="#000000"
|
||||
stroke="none"
|
||||
pointer-events="all"
|
||||
id="path12" />
|
||||
<path
|
||||
d="M 510 290 L 510 180 L 490 160 M 510 180 L 630 180"
|
||||
fill="none"
|
||||
stroke="#666666"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="all"
|
||||
id="path14" />
|
||||
<g
|
||||
transform="translate(-0.5 -0.5)"
|
||||
id="g20">
|
||||
<switch
|
||||
id="switch18">
|
||||
<foreignObject
|
||||
style="overflow: visible; text-align: left;"
|
||||
pointer-events="none"
|
||||
width="100%"
|
||||
height="100%"
|
||||
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
|
||||
<xhtml:div
|
||||
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 235px; margin-left: 511px;">
|
||||
<xhtml:div
|
||||
style="box-sizing: border-box; font-size: 0; text-align: center; ">
|
||||
<xhtml:div
|
||||
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #333333; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
|
||||
<xhtml:b>Meter A</xhtml:b>
|
||||
</xhtml:div>
|
||||
</xhtml:div>
|
||||
</xhtml:div>
|
||||
</foreignObject>
|
||||
<text
|
||||
x="570"
|
||||
y="239"
|
||||
fill="#333333"
|
||||
font-family="Helvetica"
|
||||
font-size="12px"
|
||||
text-anchor="middle"
|
||||
id="text16">
|
||||
<tspan
|
||||
style="font-weight:bold"
|
||||
id="tspan1653">Meter A</tspan>
|
||||
</text>
|
||||
</switch>
|
||||
</g>
|
||||
<path
|
||||
d="M 320 90 L 350 90 L 460 190 L 481.76 190"
|
||||
fill="none"
|
||||
stroke="#82b366"
|
||||
stroke-width="2"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="stroke"
|
||||
id="path22" />
|
||||
<path
|
||||
d="M 487.76 190 L 479.76 194 L 481.76 190 L 479.76 186 Z"
|
||||
fill="#82b366"
|
||||
stroke="#82b366"
|
||||
stroke-width="2"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="all"
|
||||
id="path24" />
|
||||
<path
|
||||
d="M 320 250 L 350 250 L 460.28 219.93 L 482.04 219.93"
|
||||
fill="none"
|
||||
stroke="#d6b656"
|
||||
stroke-width="2"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="stroke"
|
||||
id="path26" />
|
||||
<path
|
||||
d="M 488.04 219.93 L 480.04 223.93 L 482.04 219.93 L 480.04 215.93 Z"
|
||||
fill="#d6b656"
|
||||
stroke="#d6b656"
|
||||
stroke-width="2"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="all"
|
||||
id="path28" />
|
||||
<path
|
||||
d="M 490 360 L 610 360 L 630 380 L 630 490 L 510 490 L 490 470 L 490 360 Z"
|
||||
fill="#f5f5f5"
|
||||
stroke="#666666"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="all"
|
||||
id="path30" />
|
||||
<path
|
||||
d="M 490 360 L 610 360 L 630 380 L 510 380 Z"
|
||||
fill-opacity="0.05"
|
||||
fill="#000000"
|
||||
stroke="none"
|
||||
pointer-events="all"
|
||||
id="path32" />
|
||||
<path
|
||||
d="M 490 360 L 510 380 L 510 490 L 490 470 Z"
|
||||
fill-opacity="0.1"
|
||||
fill="#000000"
|
||||
stroke="none"
|
||||
pointer-events="all"
|
||||
id="path34" />
|
||||
<path
|
||||
d="M 510 490 L 510 380 L 490 360 M 510 380 L 630 380"
|
||||
fill="none"
|
||||
stroke="#666666"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="all"
|
||||
id="path36" />
|
||||
<g
|
||||
transform="translate(-0.5 -0.5)"
|
||||
id="g42">
|
||||
<switch
|
||||
id="switch40">
|
||||
<foreignObject
|
||||
style="overflow: visible; text-align: left;"
|
||||
pointer-events="none"
|
||||
width="100%"
|
||||
height="100%"
|
||||
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
|
||||
<xhtml:div
|
||||
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 435px; margin-left: 511px;">
|
||||
<xhtml:div
|
||||
style="box-sizing: border-box; font-size: 0; text-align: center; ">
|
||||
<xhtml:div
|
||||
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #333333; line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">Meter B</xhtml:div>
|
||||
</xhtml:div>
|
||||
</xhtml:div>
|
||||
</foreignObject>
|
||||
<text
|
||||
x="570"
|
||||
y="439"
|
||||
fill="#333333"
|
||||
font-family="Helvetica"
|
||||
font-size="12px"
|
||||
text-anchor="middle"
|
||||
font-weight="bold"
|
||||
id="text38">Meter B</text>
|
||||
</switch>
|
||||
</g>
|
||||
<path
|
||||
d="M 320 100 L 350 100 L 458.88 393.15 L 480.64 393.15"
|
||||
fill="none"
|
||||
stroke="#82b366"
|
||||
stroke-width="2"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="stroke"
|
||||
id="path44" />
|
||||
<path
|
||||
d="M 486.64 393.15 L 478.64 397.15 L 480.64 393.15 L 478.64 389.15 Z"
|
||||
fill="#82b366"
|
||||
stroke="#82b366"
|
||||
stroke-width="2"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="all"
|
||||
id="path46" />
|
||||
<path
|
||||
d="M 320 260 L 350 260 L 460.42 422.53 L 482.18 422.53"
|
||||
fill="none"
|
||||
stroke="#d6b656"
|
||||
stroke-width="2"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="stroke"
|
||||
id="path48" />
|
||||
<path
|
||||
d="M 488.18 422.53 L 480.18 426.53 L 482.18 422.53 L 480.18 418.53 Z"
|
||||
fill="#d6b656"
|
||||
stroke="#d6b656"
|
||||
stroke-width="2"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="all"
|
||||
id="path50" />
|
||||
<path
|
||||
d="M 320 330 L 350 330 L 460.56 249.7 L 482.32 249.7"
|
||||
fill="none"
|
||||
stroke="#6c8ebf"
|
||||
stroke-width="2"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="stroke"
|
||||
id="path52" />
|
||||
<path
|
||||
d="M 488.32 249.7 L 480.32 253.7 L 482.32 249.7 L 480.32 245.7 Z"
|
||||
fill="#6c8ebf"
|
||||
stroke="#6c8ebf"
|
||||
stroke-width="2"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="all"
|
||||
id="path54" />
|
||||
<path
|
||||
d="M 320 490 L 350 490 L 459.44 451.39 L 481.2 451.39"
|
||||
fill="none"
|
||||
stroke="#6c8ebf"
|
||||
stroke-width="2"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="stroke"
|
||||
id="path56" />
|
||||
<path
|
||||
d="M 487.2 451.39 L 479.2 455.39 L 481.2 451.39 L 479.2 447.39 Z"
|
||||
fill="#6c8ebf"
|
||||
stroke="#6c8ebf"
|
||||
stroke-width="2"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="all"
|
||||
id="path58" />
|
||||
<path
|
||||
d="m 235,70 h 85 v 40 H 220 V 85 Z"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="all"
|
||||
id="path108-8-8"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:1;vector-effect:none;fill:#d5e8d4;fill-opacity:1;stroke:#82b366;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
sodipodi:nodetypes="cccccc" />
|
||||
<g
|
||||
transform="translate(-0.5 -0.5)"
|
||||
id="g66">
|
||||
<switch
|
||||
id="switch64">
|
||||
<foreignObject
|
||||
style="overflow: visible; text-align: left;"
|
||||
pointer-events="none"
|
||||
width="100%"
|
||||
height="100%"
|
||||
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
|
||||
<xhtml:div
|
||||
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 90px; margin-left: 221px;">
|
||||
<xhtml:div
|
||||
style="box-sizing: border-box; font-size: 0; text-align: center; ">
|
||||
<xhtml:div
|
||||
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">All devices</xhtml:div>
|
||||
</xhtml:div>
|
||||
</xhtml:div>
|
||||
</foreignObject>
|
||||
<text
|
||||
x="270"
|
||||
y="94"
|
||||
fill="#000000"
|
||||
font-family="Helvetica"
|
||||
font-size="12px"
|
||||
text-anchor="middle"
|
||||
id="text62">All devices</text>
|
||||
</switch>
|
||||
</g>
|
||||
<path
|
||||
d="M 100 300 L 160 300 L 160 100 L 213.63 100"
|
||||
fill="none"
|
||||
stroke="#000000"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="stroke"
|
||||
id="path68" />
|
||||
<path
|
||||
d="M 218.88 100 L 211.88 103.5 L 213.63 100 L 211.88 96.5 Z"
|
||||
fill="#000000"
|
||||
stroke="#000000"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="all"
|
||||
id="path70" />
|
||||
<path
|
||||
d="m 235,470 h 85 v 40 H 220 v -25 z"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="all"
|
||||
id="path108-8-8-7-0-9"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:1;vector-effect:none;fill:#dae8fc;fill-opacity:1;stroke:#6c8ebf;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
sodipodi:nodetypes="cccccc" />
|
||||
<g
|
||||
transform="translate(-0.5 -0.5)"
|
||||
id="g78">
|
||||
<switch
|
||||
id="switch76">
|
||||
<foreignObject
|
||||
style="overflow: visible; text-align: left;"
|
||||
pointer-events="none"
|
||||
width="100%"
|
||||
height="100%"
|
||||
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
|
||||
<xhtml:div
|
||||
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 490px; margin-left: 221px;">
|
||||
<xhtml:div
|
||||
style="box-sizing: border-box; font-size: 0; text-align: center; ">
|
||||
<xhtml:div
|
||||
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
|
||||
<xhtml:div>Series C</xhtml:div>
|
||||
</xhtml:div>
|
||||
</xhtml:div>
|
||||
</xhtml:div>
|
||||
</foreignObject>
|
||||
<text
|
||||
x="270"
|
||||
y="494"
|
||||
fill="#000000"
|
||||
font-family="Helvetica"
|
||||
font-size="12px"
|
||||
text-anchor="middle"
|
||||
id="text74">Series C</text>
|
||||
</switch>
|
||||
</g>
|
||||
<path
|
||||
d="M 100 300 L 160 300 L 160 500 L 213.63 500"
|
||||
fill="none"
|
||||
stroke="#000000"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="stroke"
|
||||
id="path80" />
|
||||
<path
|
||||
d="M 218.88 500 L 211.88 503.5 L 213.63 500 L 211.88 496.5 Z"
|
||||
fill="#000000"
|
||||
stroke="#000000"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="all"
|
||||
id="path82" />
|
||||
<path
|
||||
d="m 235,310 h 85 v 40 H 220 v -25 z"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="all"
|
||||
id="path108-8-8-7"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:1;vector-effect:none;fill:#dae8fc;fill-opacity:1;stroke:#6c8ebf;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
sodipodi:nodetypes="cccccc" />
|
||||
<path
|
||||
d="m 235,390 h 85 v 40 H 220 v -25 z"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="all"
|
||||
id="path108-8-8-7-0"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:1;vector-effect:none;fill:#dae8fc;fill-opacity:1;stroke:#6c8ebf;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
sodipodi:nodetypes="cccccc" />
|
||||
<g
|
||||
transform="translate(-0.5 -0.5)"
|
||||
id="g90">
|
||||
<switch
|
||||
id="switch88">
|
||||
<foreignObject
|
||||
style="overflow: visible; text-align: left;"
|
||||
pointer-events="none"
|
||||
width="100%"
|
||||
height="100%"
|
||||
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
|
||||
<xhtml:div
|
||||
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 410px; margin-left: 221px;">
|
||||
<xhtml:div
|
||||
style="box-sizing: border-box; font-size: 0; text-align: center; ">
|
||||
<xhtml:div
|
||||
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Series B</xhtml:div>
|
||||
</xhtml:div>
|
||||
</xhtml:div>
|
||||
</foreignObject>
|
||||
<text
|
||||
x="270"
|
||||
y="414"
|
||||
fill="#000000"
|
||||
font-family="Helvetica"
|
||||
font-size="12px"
|
||||
text-anchor="middle"
|
||||
id="text86">Series B</text>
|
||||
</switch>
|
||||
</g>
|
||||
<path
|
||||
d="M 100 300 L 160 300 L 160 420 L 213.63 420"
|
||||
fill="none"
|
||||
stroke="#000000"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="stroke"
|
||||
id="path92" />
|
||||
<path
|
||||
d="M 218.88 420 L 211.88 423.5 L 213.63 420 L 211.88 416.5 Z"
|
||||
fill="#000000"
|
||||
stroke="#000000"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="all"
|
||||
id="path94" />
|
||||
<g
|
||||
transform="translate(-0.5 -0.5)"
|
||||
id="g102">
|
||||
<switch
|
||||
id="switch100">
|
||||
<foreignObject
|
||||
style="overflow: visible; text-align: left;"
|
||||
pointer-events="none"
|
||||
width="100%"
|
||||
height="100%"
|
||||
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
|
||||
<xhtml:div
|
||||
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 330px; margin-left: 221px;">
|
||||
<xhtml:div
|
||||
style="box-sizing: border-box; font-size: 0; text-align: center; ">
|
||||
<xhtml:div
|
||||
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Series A</xhtml:div>
|
||||
</xhtml:div>
|
||||
</xhtml:div>
|
||||
</foreignObject>
|
||||
<text
|
||||
x="270"
|
||||
y="334"
|
||||
fill="#000000"
|
||||
font-family="Helvetica"
|
||||
font-size="12px"
|
||||
text-anchor="middle"
|
||||
id="text98">Series A</text>
|
||||
</switch>
|
||||
</g>
|
||||
<path
|
||||
d="M 100 300 L 160 300 L 160 340 L 213.63 340"
|
||||
fill="none"
|
||||
stroke="#000000"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="stroke"
|
||||
id="path104" />
|
||||
<path
|
||||
d="M 218.88 340 L 211.88 343.5 L 213.63 340 L 211.88 336.5 Z"
|
||||
fill="#000000"
|
||||
stroke="#000000"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="all"
|
||||
id="path106" />
|
||||
<path
|
||||
d="m 235,230 h 85 v 40 H 220 v -25 z"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="all"
|
||||
id="path108"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffe6cc;stroke:#d79b00;stroke-miterlimit:10"
|
||||
sodipodi:nodetypes="cccccc" />
|
||||
<g
|
||||
transform="translate(-0.5 -0.5)"
|
||||
id="g114">
|
||||
<switch
|
||||
id="switch112">
|
||||
<foreignObject
|
||||
style="overflow: visible; text-align: left;"
|
||||
pointer-events="none"
|
||||
width="100%"
|
||||
height="100%"
|
||||
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
|
||||
<xhtml:div
|
||||
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 250px; margin-left: 221px;">
|
||||
<xhtml:div
|
||||
style="box-sizing: border-box; font-size: 0; text-align: center; ">
|
||||
<xhtml:div
|
||||
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Manufacturer B</xhtml:div>
|
||||
</xhtml:div>
|
||||
</xhtml:div>
|
||||
</foreignObject>
|
||||
<text
|
||||
x="270"
|
||||
y="254"
|
||||
fill="#000000"
|
||||
font-family="Helvetica"
|
||||
font-size="12px"
|
||||
text-anchor="middle"
|
||||
id="text110">Manufacturer B</text>
|
||||
</switch>
|
||||
</g>
|
||||
<path
|
||||
d="M 100 300 L 160 300 L 160 260 L 213.63 260"
|
||||
fill="none"
|
||||
stroke="#000000"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="stroke"
|
||||
id="path116" />
|
||||
<path
|
||||
d="M 218.88 260 L 211.88 263.5 L 213.63 260 L 211.88 256.5 Z"
|
||||
fill="#000000"
|
||||
stroke="#000000"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="all"
|
||||
id="path118" />
|
||||
<path
|
||||
d="m 235,150 h 85 v 40 H 220 v -25 z"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="all"
|
||||
id="path108-8"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffe6cc;stroke:#d79b00;stroke-miterlimit:10"
|
||||
sodipodi:nodetypes="cccccc" />
|
||||
<g
|
||||
transform="translate(-0.5 -0.5)"
|
||||
id="g126">
|
||||
<switch
|
||||
id="switch124">
|
||||
<foreignObject
|
||||
style="overflow: visible; text-align: left;"
|
||||
pointer-events="none"
|
||||
width="100%"
|
||||
height="100%"
|
||||
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
|
||||
<xhtml:div
|
||||
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 170px; margin-left: 221px;">
|
||||
<xhtml:div
|
||||
style="box-sizing: border-box; font-size: 0; text-align: center; ">
|
||||
<xhtml:div
|
||||
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Manufacturer A</xhtml:div>
|
||||
</xhtml:div>
|
||||
</xhtml:div>
|
||||
</foreignObject>
|
||||
<text
|
||||
x="270"
|
||||
y="174"
|
||||
fill="#000000"
|
||||
font-family="Helvetica"
|
||||
font-size="12px"
|
||||
text-anchor="middle"
|
||||
id="text122">Manufacturer A</text>
|
||||
</switch>
|
||||
</g>
|
||||
<path
|
||||
d="M 100 300 L 160 300 L 160 180 L 213.63 180"
|
||||
fill="none"
|
||||
stroke="#000000"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="stroke"
|
||||
id="path128" />
|
||||
<path
|
||||
d="M 218.88 180 L 211.88 183.5 L 213.63 180 L 211.88 176.5 Z"
|
||||
fill="#000000"
|
||||
stroke="#000000"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="all"
|
||||
id="path130" />
|
||||
<path
|
||||
d="M 20 280 L 100 280 L 100 320 L 0 320 L 0 300 Z"
|
||||
fill="#f8cecc"
|
||||
stroke="#b85450"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="all"
|
||||
id="path132" />
|
||||
<g
|
||||
transform="translate(-0.5 -0.5)"
|
||||
id="g138">
|
||||
<switch
|
||||
id="switch136">
|
||||
<foreignObject
|
||||
style="overflow: visible; text-align: left;"
|
||||
pointer-events="none"
|
||||
width="100%"
|
||||
height="100%"
|
||||
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
|
||||
<xhtml:div
|
||||
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 300px; margin-left: 1px;">
|
||||
<xhtml:div
|
||||
style="box-sizing: border-box; font-size: 0; text-align: center; ">
|
||||
<xhtml:div
|
||||
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
|
||||
<xhtml:b>Root Key</xhtml:b>
|
||||
</xhtml:div>
|
||||
</xhtml:div>
|
||||
</xhtml:div>
|
||||
</foreignObject>
|
||||
<text
|
||||
x="50"
|
||||
y="304"
|
||||
fill="#000000"
|
||||
font-family="Helvetica"
|
||||
font-size="12px"
|
||||
text-anchor="middle"
|
||||
id="text134">
|
||||
<tspan
|
||||
style="font-weight:bold"
|
||||
id="tspan1655">Root Key</tspan>
|
||||
</text>
|
||||
</switch>
|
||||
</g>
|
||||
<rect
|
||||
x="300"
|
||||
y="12.001603"
|
||||
width="100"
|
||||
height="20"
|
||||
pointer-events="all"
|
||||
id="rect140"
|
||||
style="fill:none;stroke:none" />
|
||||
<g
|
||||
transform="translate(-0.5,-8.4983964)"
|
||||
id="g146">
|
||||
<switch
|
||||
id="switch144">
|
||||
<foreignObject
|
||||
style="overflow: visible; text-align: left;"
|
||||
pointer-events="none"
|
||||
width="100%"
|
||||
height="100%"
|
||||
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
|
||||
<xhtml:div
|
||||
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 98px; height: 1px; padding-top: 30px; margin-left: 302px;">
|
||||
<xhtml:div
|
||||
style="box-sizing: border-box; font-size: 0; text-align: left; ">
|
||||
<xhtml:div
|
||||
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">
|
||||
<xhtml:div>Public Key<xhtml:br />
|
||||
</xhtml:div>
|
||||
</xhtml:div>
|
||||
</xhtml:div>
|
||||
</xhtml:div>
|
||||
</foreignObject>
|
||||
<text
|
||||
x="302"
|
||||
y="34"
|
||||
font-size="12px"
|
||||
font-weight="bold"
|
||||
id="text142"
|
||||
style="font-weight:bold;font-size:12px;font-family:Helvetica;fill:#000000">Public Key</text>
|
||||
</switch>
|
||||
</g>
|
||||
<rect
|
||||
x="160"
|
||||
y="12.001603"
|
||||
width="100"
|
||||
height="20"
|
||||
pointer-events="all"
|
||||
id="rect148"
|
||||
style="fill:none;stroke:none" />
|
||||
<g
|
||||
transform="translate(-0.5,-8.4983964)"
|
||||
id="g154">
|
||||
<switch
|
||||
id="switch152">
|
||||
<foreignObject
|
||||
style="overflow: visible; text-align: left;"
|
||||
pointer-events="none"
|
||||
width="100%"
|
||||
height="100%"
|
||||
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
|
||||
<xhtml:div
|
||||
style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 98px; height: 1px; padding-top: 30px; margin-left: 160px;">
|
||||
<xhtml:div
|
||||
style="box-sizing: border-box; font-size: 0; text-align: right; ">
|
||||
<xhtml:div
|
||||
style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">Secret Key</xhtml:div>
|
||||
</xhtml:div>
|
||||
</xhtml:div>
|
||||
</foreignObject>
|
||||
<text
|
||||
x="258"
|
||||
y="34"
|
||||
font-size="12px"
|
||||
font-weight="bold"
|
||||
id="text150"
|
||||
style="font-weight:bold;font-size:12px;font-family:Helvetica;text-anchor:end;fill:#000000">Secret Key</text>
|
||||
</switch>
|
||||
</g>
|
||||
<g
|
||||
id="g1058">
|
||||
<ellipse
|
||||
ry="5.5068855"
|
||||
rx="8.9103279"
|
||||
cy="45.713184"
|
||||
cx="279.94073"
|
||||
id="path1050"
|
||||
style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.70078731;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<g
|
||||
transform="translate(-45.464569,-8.3667436)"
|
||||
id="g1042">
|
||||
<g
|
||||
id="text142-6"
|
||||
style="font-weight:bold;font-size:12px;font-family:Helvetica;fill:#000000"
|
||||
aria-label="H" />
|
||||
<g
|
||||
id="text142-6-9"
|
||||
style="font-weight:bold;font-size:8.2537241px;font-family:Helvetica;fill:#000000;stroke-width:1"
|
||||
aria-label="n" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g1100"
|
||||
transform="translate(0,-1.5605742)">
|
||||
<flowRoot
|
||||
transform="matrix(0.30096254,0,0,0.30096254,200.52832,26.372288)"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.32267284"
|
||||
id="flowRoot1060"
|
||||
xml:space="preserve"><flowRegion
|
||||
style="stroke-width:3.32267284"
|
||||
id="flowRegion1062"><rect
|
||||
style="stroke-width:3.32267284"
|
||||
y="41.525402"
|
||||
x="248.37126"
|
||||
height="90.034584"
|
||||
width="75.984764"
|
||||
id="rect1064" /></flowRegion><flowPara
|
||||
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif Light';stroke-width:3.32267284"
|
||||
id="flowPara1066">H</flowPara></flowRoot> <flowRoot
|
||||
transform="matrix(0.22181595,0,0,0.22181595,229.56254,25.409831)"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.50824213"
|
||||
id="flowRoot1060-9"
|
||||
xml:space="preserve"><flowRegion
|
||||
style="stroke-width:4.50824213"
|
||||
id="flowRegion1062-2"><rect
|
||||
style="stroke-width:4.50824213"
|
||||
y="41.525402"
|
||||
x="248.37126"
|
||||
height="90.034584"
|
||||
width="75.984764"
|
||||
id="rect1064-3" /></flowRegion><flowPara
|
||||
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif Light';stroke-width:4.50824213"
|
||||
id="flowPara1066-6">n</flowPara></flowRoot> </g>
|
||||
</g>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;stroke:#000000;stroke-miterlimit:10"
|
||||
d="m 302.84431,69.545847 -6.51967,-4.329424 3.90669,-0.224132 2.16472,-3.259833 z"
|
||||
stroke-miterlimit="10"
|
||||
pointer-events="all"
|
||||
id="path70-1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 30 KiB |
BIN
ma/resources/transmitter_scope_key_illustration.pdf
Executable file
BIN
ma/resources/transmitter_scope_key_illustration.pdf
Executable file
Binary file not shown.
|
|
@ -1674,8 +1674,54 @@ least significant bit of $n$ in our $H^n$ construction. In the chain of valid si
|
|||
disarm signature. Reset and disarm signatures would alternate in this scheme. By skipping a disarm signature two resets
|
||||
can still be triggered directly after one another.
|
||||
|
||||
% FIXME diagram
|
||||
% FIXME include domain mechanism
|
||||
In practice it may be useful to have some control over which particular meters reset. An attack exploiting a particular
|
||||
network protocol implementation flaw might only affect one series of meters made by one manufacturer. Resetting
|
||||
\emph{all} meters may be too much in this case. A simple solution for this is to define adressable subsets of meters.
|
||||
``All meters'' along with ``meters made by manufacturer $x$'' and ``meters of model $y$'' are good choices for such
|
||||
scopes. On the cryptographic level the protocol state is simply duplicated for each scope. This incurs memory and
|
||||
computation overhead linear in the number of scopes. Device memory requirements are small at a few bytes only and
|
||||
computation is of no concern due to the very slow channel so this simple solution is adequate. The transmitter has to
|
||||
either store copies of all scope's keys or derive these keys from a root key using the scope's identifier. Keys are
|
||||
small and the transmitter would be using a regular server or hardware security module so either easily feasible.
|
||||
|
||||
A diagram of the key structure in this key management scheme is shown in Figure \ref{fig:sig_key_chain}. The
|
||||
transmitter key management is shown in Figure \ref{fig:tx_scope_key_illu}. This scheme is simplistic but suffices for
|
||||
our prototype in Section \ref{sec-prototype} and may even be useful in a practical implementation. During
|
||||
standardization of a safety reset system the key management system would most likely have to be customized to the
|
||||
particular application's requirements. Developing an universal solution is outside the scope of this work.
|
||||
\begin{figure}
|
||||
\centering
|
||||
\begin{minipage}[c]{0.5\textwidth}
|
||||
\includegraphics{resources/signature_key_chain}
|
||||
\end{minipage}
|
||||
\begin{minipage}[c]{0.45\textwidth}
|
||||
\caption{
|
||||
The hash chain between secret transmitter key and public device key. Each step represents one invocation of the
|
||||
hash function. To generate a new chain a random transmitter key is generated, then hashed $n$ times to
|
||||
generate the corresponding device key. A new trigger message can be generated by generating the key at depth
|
||||
$m-1$ where $m$ is the height of the last used trigger, or $n$ initially. Every second trigger message is a
|
||||
disarm message and every second one a reset message. Depending on which is needed the other one may be skipped.
|
||||
}
|
||||
\label{fig:sig_key_chain}
|
||||
\end{minipage}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics{resources/transmitter_scope_key_illustration}
|
||||
\caption{
|
||||
An illustration of a key management system using a shared master key. The transmitter derives one secret key for
|
||||
each adressable group from the master key. Then public device keys are generated like in Figure
|
||||
\ref{fig:sig_key_chain}. Finally for each device the manufacturer picks the group public keys matching the
|
||||
device. In this example one device is a series A meter made by manufacturer B so it gets provisioned with the
|
||||
keys for the ``all devices'', ``manufacturer B'' and ``series A'' keys. The other device is also made by
|
||||
manufacturer B but is a series C device so it gets provisioned with the ``all devices'', ``manufacturer B'' and
|
||||
``series C'' public device keys. In this example the transmitter stores (or is able to derive) all six shown
|
||||
group keys, but each device only needs to store the three applying to it for the three scopes ``all devices'',
|
||||
``manufacturer'' and ``series''.
|
||||
}
|
||||
\label{fig:tx_scope_key_illu}
|
||||
\end{figure}
|
||||
|
||||
\chapter{Practical implementation}
|
||||
|
||||
|
|
@ -1702,12 +1748,11 @@ transmission networks to characterize the operational state of the network.
|
|||
|
||||
From a superficial viewpoint measuring mains frequency might seem like a simple problem. Take the mains voltage
|
||||
waveform, measure time between two rising-edge (or falling-edge) zero-crossings and take the inverse $f = t^{-1}$. In
|
||||
practice, phasor measurement units are significantly more complex than this. This discrepancy is due to the unhealthy
|
||||
% FIXME is this pun ok?
|
||||
combination of both high precision and quick response that is demanded from these units. High precision is necessary
|
||||
since variations of mains frequency under normal operating conditions are quite small--in the range of
|
||||
\SIrange{5}{10}{\milli\hertz} over short intervals of time. Relative to the nominal \SI{50}{\hertz} this is a derivation of
|
||||
less than \SI{100}{ppm} Relative to the corresponding \SI{20}{\milli\second} period that means a time derivation of
|
||||
practice, phasor measurement units are significantly more complex than this. This discrepancy is due to the combination
|
||||
of both high precision and quick response that is demanded from these units. High precision is necessary since
|
||||
variations of mains frequency under normal operating conditions are quite small--in the range of
|
||||
\SIrange{5}{10}{\milli\hertz} over short intervals of time. Relative to the nominal \SI{50}{\hertz} this is a derivation
|
||||
of less than \SI{100}{ppm} Relative to the corresponding \SI{20}{\milli\second} period that means a time derivation of
|
||||
about $2 \mu\text{s}$ from cycle to cycle. From this it is already obvious why a simplistic measurement cannot yield the
|
||||
required precision for manageable averaging times--we would need either a ADC sampling rate in the order of megabits or
|
||||
for a reconstruction through interpolated readings an impractically high ADC resolution.
|
||||
|
|
@ -2077,7 +2122,7 @@ gold code looks to yield good enough performance at manageable data rates.
|
|||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics{../lab-windows/fig_out/dsss_gold_nbits_overview}
|
||||
\includegraphics[width=0.6\textwidth]{../lab-windows/fig_out/dsss_gold_nbits_overview}
|
||||
\caption{
|
||||
Symbol Error Rate (SER) as a function of transmission amplitude. The line represents the mean of several
|
||||
measurements for each parameter set. The shaded areas indicate one standard deviation from the mean. Background
|
||||
|
|
@ -2095,14 +2140,18 @@ gold code looks to yield good enough performance at manageable data rates.
|
|||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics{../lab-windows/fig_out/dsss_gold_nbits_sensitivity}
|
||||
\caption{
|
||||
Amplitude at a SER of 0.5\ in mHz depending on symbol length. Here we can observe an increase of sensitivity
|
||||
with increasing symbol length, but we can clearly see diminishing returns above 6 bit (63 chips). Considering
|
||||
that each bit roughly doubles overall transmission time for a given data length it seems lower bit counts are
|
||||
preferrable if the necessary transmitter power can be realized.
|
||||
}
|
||||
\label{dsss_gold_nbits_sensitivity}
|
||||
\begin{minipage}[c]{0.5\textwidth}
|
||||
\includegraphics{../lab-windows/fig_out/dsss_gold_nbits_sensitivity}
|
||||
\end{minipage}
|
||||
\begin{minipage}[c]{0.45\textwidth}
|
||||
\caption{
|
||||
Amplitude at a SER of 0.5\ in mHz depending on symbol length. Here we can observe an increase of sensitivity
|
||||
with increasing symbol length, but we can clearly see diminishing returns above 6 bit (63 chips). Considering
|
||||
that each bit roughly doubles overall transmission time for a given data length it seems lower bit counts are
|
||||
preferrable if the necessary transmitter power can be realized.
|
||||
}
|
||||
\label{dsss_gold_nbits_sensitivity}
|
||||
\end{minipage}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Sensitivity versus peak detection threshold factor}
|
||||
|
|
@ -2239,6 +2288,7 @@ the results for both are very close in absolute value.
|
|||
\end{figure}
|
||||
|
||||
\section{Implementation of a demonstrator unit}
|
||||
\label{sec-prototype}
|
||||
|
||||
To demonstrate the viability of our reset architecture we decided to implement a demonstrator system. In this
|
||||
demonstrator we use JTAG to reset part of a commodity smart meter from an externally-connected reset controller. The
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue