From 379adf1ee7d9de4bf314d27b65ab0043f1800293 Mon Sep 17 00:00:00 2001
From: jerray <jawher.jerray@eurecom.fr>
Date: Thu, 23 Mar 2023 14:58:45 +0100
Subject: [PATCH] Update SysMLSec doc and add figures

---
 doc/SysMLSec/fig/channelsecurityTab.png | Bin 0 -> 20246 bytes
 doc/SysMLSec/fig/fv_auth_check.svg      | 137 ++++++++
 doc/SysMLSec/fig/hsm_ad_hsm_cpu1.svg    | 205 ++++++++++++
 doc/SysMLSec/fig/hsm_ad_t1.svg          | 197 ++++++++++++
 doc/SysMLSec/fig/hsm_fv.svg             | 397 ++++++++++++++++++++++++
 doc/SysMLSec/sysmlsec_documentation.tex |  21 +-
 6 files changed, 951 insertions(+), 6 deletions(-)
 create mode 100644 doc/SysMLSec/fig/channelsecurityTab.png
 create mode 100644 doc/SysMLSec/fig/fv_auth_check.svg
 create mode 100644 doc/SysMLSec/fig/hsm_ad_hsm_cpu1.svg
 create mode 100644 doc/SysMLSec/fig/hsm_ad_t1.svg
 create mode 100644 doc/SysMLSec/fig/hsm_fv.svg

diff --git a/doc/SysMLSec/fig/channelsecurityTab.png b/doc/SysMLSec/fig/channelsecurityTab.png
new file mode 100644
index 0000000000000000000000000000000000000000..47ca2bd77ef423fb9ac5cbcd9469b989ffdd881f
GIT binary patch
literal 20246
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

literal 0
HcmV?d00001

diff --git a/doc/SysMLSec/fig/fv_auth_check.svg b/doc/SysMLSec/fig/fv_auth_check.svg
new file mode 100644
index 0000000000..c1ad9db3ba
--- /dev/null
+++ b/doc/SysMLSec/fig/fv_auth_check.svg
@@ -0,0 +1,137 @@
+<?xml version="1.0"?>
+<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.0//EN'
+          'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'>
+<svg xmlns:xlink="http://www.w3.org/1999/xlink" style="fill-opacity:1; color-rendering:auto; color-interpolation:auto; text-rendering:auto; stroke:black; stroke-linecap:square; stroke-miterlimit:10; shape-rendering:auto; stroke-opacity:1; fill:black; stroke-dasharray:none; font-weight:normal; stroke-width:1; font-family:'Dialog'; font-style:normal; stroke-linejoin:miter; font-size:12px; stroke-dashoffset:0; image-rendering:auto;" width="544" height="186" xmlns="http://www.w3.org/2000/svg"
+><!--Generated by the Batik Graphics2D SVG Generator--><defs id="genericDefs"
+  /><g
+  ><defs id="defs1"
+    ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath1"
+      ><path d="M0 0 L544 0 L544 186 L0 186 L0 0 Z"
+      /></clipPath
+    ></defs
+    ><g style="fill:white; font-family:sans-serif; stroke:white;"
+    ><rect x="0" y="0" width="544" style="clip-path:url(#clipPath1); stroke:none;" height="186"
+    /></g
+    ><g style="font-family:sans-serif;"
+    ><rect x="16" y="23" width="200" style="fill:none; clip-path:url(#clipPath1);" height="150"
+    /></g
+    ><g style="fill:rgb(201,243,188); fill-opacity:0.7843; font-family:sans-serif; stroke-opacity:0.7843; stroke:rgb(201,243,188);"
+    ><rect x="17" y="24" width="198" style="clip-path:url(#clipPath1); stroke:none;" height="148"
+      /><rect x="16" y="23" width="1" style="clip-path:url(#clipPath1); fill:rgb(255,255,255); stroke:none;" height="150"
+      /><rect x="17" y="23" width="198" style="clip-path:url(#clipPath1); fill:rgb(255,255,255); stroke:none;" height="1"
+      /><rect x="17" y="172" width="199" style="clip-path:url(#clipPath1); fill:rgb(140,170,131); stroke:none;" height="1"
+      /><rect x="215" y="23" width="1" style="clip-path:url(#clipPath1); fill:rgb(140,170,131); stroke:none;" height="149"
+    /></g
+    ><g style="font-family:sans-serif; font-weight:bold;"
+    ><text x="108" xml:space="preserve" y="50" style="clip-path:url(#clipPath1); stroke:none;"
+      >T1</text
+      ><image x="186" y="38" width="15" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAYklEQVR4Xs2PWw5A
+EQxEu//F2cLdhx+SS4Xp1ONHTHIiZA4l8krSASYpfHGJ9ppEmGWU4ca2Evp+2SD9
+JWTcQZZFWUPPzctQ1nDZGWtPRrSEMJn+2cPINeYlDyb/E+yC7r1k/CUznLqz88wAAAAASUVORK5CYII=" style="clip-path:url(#clipPath1); font-weight:normal;" height="16" preserveAspectRatio="none"
+      /><rect x="203" y="78" width="26" style="clip-path:url(#clipPath1); fill:rgb(104,229,255); stroke:none;" height="26"
+      /><rect x="203" y="78" width="26" style="fill:none; clip-path:url(#clipPath1);" height="26"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 206 81 206 101 226 91"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 206 81 206 101 226 91"
+      /><line x1="226" x2="226" y1="101" style="fill:none; clip-path:url(#clipPath1);" y2="81"
+      /><text x="203" y="77" style="clip-path:url(#clipPath1); font-weight:normal; stroke:none;" xml:space="preserve"
+      >comm</text
+      ><rect x="334" y="26" width="200" style="fill:none; clip-path:url(#clipPath1);" height="150"
+    /></g
+    ><g style="fill:rgb(201,243,188); fill-opacity:0.7843; font-family:sans-serif; stroke-opacity:0.7843; stroke:rgb(201,243,188);"
+    ><rect x="335" y="27" width="198" style="clip-path:url(#clipPath1); stroke:none;" height="148"
+      /><rect x="334" y="26" width="1" style="clip-path:url(#clipPath1); fill:rgb(255,255,255); stroke:none;" height="150"
+      /><rect x="335" y="26" width="198" style="clip-path:url(#clipPath1); fill:rgb(255,255,255); stroke:none;" height="1"
+      /><rect x="335" y="175" width="199" style="clip-path:url(#clipPath1); fill:rgb(140,170,131); stroke:none;" height="1"
+      /><rect x="533" y="26" width="1" style="clip-path:url(#clipPath1); fill:rgb(140,170,131); stroke:none;" height="149"
+    /></g
+    ><g style="font-family:sans-serif; font-weight:bold;"
+    ><text x="426" xml:space="preserve" y="53" style="clip-path:url(#clipPath1); stroke:none;"
+      >T2</text
+      ><image x="504" y="41" width="15" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAYklEQVR4Xs2PWw5A
+EQxEu//F2cLdhx+SS4Xp1ONHTHIiZA4l8krSASYpfHGJ9ppEmGWU4ca2Evp+2SD9
+JWTcQZZFWUPPzctQ1nDZGWtPRrSEMJn+2cPINeYlDyb/E+yC7r1k/CUznLqz88wAAAAASUVORK5CYII=" style="clip-path:url(#clipPath1); font-weight:normal;" height="16" preserveAspectRatio="none"
+      /><rect x="321" y="79" width="26" style="clip-path:url(#clipPath1); fill:rgb(104,229,255); stroke:none;" height="26"
+      /><rect x="321" y="79" width="26" style="fill:none; clip-path:url(#clipPath1);" height="26"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 324 82 324 102 344 92"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 324 82 324 102 344 92"
+      /><line x1="344" x2="344" y1="102" style="fill:none; clip-path:url(#clipPath1);" y2="82"
+      /><text x="321" y="78" style="clip-path:url(#clipPath1); font-weight:normal; stroke:none;" xml:space="preserve"
+      >comm</text
+      ><text x="309" y="87" style="clip-path:url(#clipPath1); font-weight:normal; stroke:none;" xml:space="preserve"
+      ></text
+      ><ellipse style="fill:none; clip-path:url(#clipPath1);" rx="5" cx="308" ry="7.5" cy="98.5"
+      /><polygon style="fill:gray; clip-path:url(#clipPath1); stroke:none;" points=" 301 97 301 113 317 113"
+      /><polygon style="fill:gray; clip-path:url(#clipPath1); stroke:none;" points=" 317 113 317 97 301 97"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 301 97 301 113 317 113"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 317 113 317 97 301 97"
+      /><text x="302" y="109" style="clip-path:url(#clipPath1); font-weight:normal; stroke:none;" xml:space="preserve"
+      >S</text
+      ><text x="309" y="106" style="clip-path:url(#clipPath1); font-weight:normal; stroke:none;" xml:space="preserve"
+      >W</text
+      ><text x="256" y="91" style="clip-path:url(#clipPath1); font-style:italic; stroke:none; font-weight:normal;" xml:space="preserve"
+      >comm</text
+      ><line x1="229" x2="321" y1="91" style="fill:none; clip-path:url(#clipPath1);" y2="92"
+    /></g
+    ><g style="font-family:sans-serif;"
+    ><rect x="16" width="200" height="150" y="23" style="fill:none;"
+    /></g
+    ><g style="fill:rgb(201,243,188); fill-opacity:0.7843; font-family:sans-serif; stroke-opacity:0.7843; stroke:rgb(201,243,188);"
+    ><rect x="17" width="198" height="148" y="24" style="stroke:none;"
+      /><rect x="16" y="23" width="1" style="fill:rgb(255,255,255); stroke:none;" height="150"
+      /><rect x="17" y="23" width="198" style="fill:rgb(255,255,255); stroke:none;" height="1"
+      /><rect x="17" y="172" width="199" style="fill:rgb(140,170,131); stroke:none;" height="1"
+      /><rect x="215" y="23" width="1" style="fill:rgb(140,170,131); stroke:none;" height="149"
+    /></g
+    ><g style="font-family:sans-serif; font-weight:bold;"
+    ><text x="108" xml:space="preserve" y="50" style="stroke:none;"
+      >T1</text
+      ><image x="186" y="38" width="15" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAYklEQVR4Xs2PWw5A
+EQxEu//F2cLdhx+SS4Xp1ONHTHIiZA4l8krSASYpfHGJ9ppEmGWU4ca2Evp+2SD9
+JWTcQZZFWUPPzctQ1nDZGWtPRrSEMJn+2cPINeYlDyb/E+yC7r1k/CUznLqz88wAAAAASUVORK5CYII=" style="font-weight:normal;" height="16" preserveAspectRatio="none"
+      /><rect x="203" y="78" width="26" style="fill:rgb(104,229,255); stroke:none;" height="26"
+      /><rect x="203" width="26" height="26" y="78" style="fill:none;"
+      /><polygon style="fill:none;" points=" 206 81 206 101 226 91"
+      /><polygon style="stroke:none;" points=" 206 81 206 101 226 91"
+      /><line y2="81" style="fill:none;" x1="226" x2="226" y1="101"
+      /><text x="203" xml:space="preserve" y="77" style="font-weight:normal; stroke:none;"
+      >comm</text
+      ><rect x="334" width="200" height="150" y="26" style="fill:none;"
+    /></g
+    ><g style="fill:rgb(201,243,188); fill-opacity:0.7843; font-family:sans-serif; stroke-opacity:0.7843; stroke:rgb(201,243,188);"
+    ><rect x="335" width="198" height="148" y="27" style="stroke:none;"
+      /><rect x="334" y="26" width="1" style="fill:rgb(255,255,255); stroke:none;" height="150"
+      /><rect x="335" y="26" width="198" style="fill:rgb(255,255,255); stroke:none;" height="1"
+      /><rect x="335" y="175" width="199" style="fill:rgb(140,170,131); stroke:none;" height="1"
+      /><rect x="533" y="26" width="1" style="fill:rgb(140,170,131); stroke:none;" height="149"
+    /></g
+    ><g style="font-family:sans-serif; font-weight:bold;"
+    ><text x="426" xml:space="preserve" y="53" style="stroke:none;"
+      >T2</text
+      ><image x="504" y="41" width="15" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAYklEQVR4Xs2PWw5A
+EQxEu//F2cLdhx+SS4Xp1ONHTHIiZA4l8krSASYpfHGJ9ppEmGWU4ca2Evp+2SD9
+JWTcQZZFWUPPzctQ1nDZGWtPRrSEMJn+2cPINeYlDyb/E+yC7r1k/CUznLqz88wAAAAASUVORK5CYII=" style="font-weight:normal;" height="16" preserveAspectRatio="none"
+      /><rect x="321" y="79" width="26" style="fill:rgb(104,229,255); stroke:none;" height="26"
+      /><rect x="321" width="26" height="26" y="79" style="fill:none;"
+      /><polygon style="fill:none;" points=" 324 82 324 102 344 92"
+      /><polygon style="stroke:none;" points=" 324 82 324 102 344 92"
+      /><line y2="82" style="fill:none;" x1="344" x2="344" y1="102"
+      /><text x="321" xml:space="preserve" y="78" style="font-weight:normal; stroke:none;"
+      >comm</text
+      ><text x="309" xml:space="preserve" y="87" style="font-weight:normal; stroke:none;"
+      ></text
+      ><ellipse rx="5" ry="7.5" style="fill:none;" cx="308" cy="98.5"
+      /><polygon style="fill:gray; stroke:none;" points=" 301 97 301 113 317 113"
+      /><polygon style="fill:gray; stroke:none;" points=" 317 113 317 97 301 97"
+      /><polygon style="fill:none;" points=" 301 97 301 113 317 113"
+      /><polygon style="fill:none;" points=" 317 113 317 97 301 97"
+      /><text x="302" xml:space="preserve" y="109" style="font-weight:normal; stroke:none;"
+      >S</text
+      ><text x="309" xml:space="preserve" y="106" style="font-weight:normal; stroke:none;"
+      >W</text
+      ><text x="256" y="91" style="font-style:italic; font-weight:normal; stroke:none;" xml:space="preserve"
+      >comm</text
+      ><line y2="92" style="fill:none;" x1="229" x2="321" y1="91"
+    /></g
+  ></g
+></svg
+>
diff --git a/doc/SysMLSec/fig/hsm_ad_hsm_cpu1.svg b/doc/SysMLSec/fig/hsm_ad_hsm_cpu1.svg
new file mode 100644
index 0000000000..f2fc7906cc
--- /dev/null
+++ b/doc/SysMLSec/fig/hsm_ad_hsm_cpu1.svg
@@ -0,0 +1,205 @@
+<?xml version="1.0"?>
+<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.0//EN'
+          'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'>
+<svg xmlns:xlink="http://www.w3.org/1999/xlink" style="fill-opacity:1; color-rendering:auto; color-interpolation:auto; text-rendering:auto; stroke:black; stroke-linecap:square; stroke-miterlimit:10; shape-rendering:auto; stroke-opacity:1; fill:black; stroke-dasharray:none; font-weight:normal; stroke-width:1; font-family:'Dialog'; font-style:normal; stroke-linejoin:miter; font-size:12px; stroke-dashoffset:0; image-rendering:auto;" width="258" height="343" xmlns="http://www.w3.org/2000/svg"
+><!--Generated by the Batik Graphics2D SVG Generator--><defs id="genericDefs"
+  /><g
+  ><defs id="defs1"
+    ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath1"
+      ><path d="M0 0 L258 0 L258 343 L0 343 L0 0 Z"
+      /></clipPath
+    ></defs
+    ><g style="fill:white; font-family:sans-serif; stroke:white;"
+    ><rect x="0" y="0" width="258" style="clip-path:url(#clipPath1); stroke:none;" height="343"
+    /></g
+    ><g style="font-family:sans-serif;"
+    ><circle r="7" style="clip-path:url(#clipPath1); stroke:none;" cx="153" cy="22"
+      /><line x1="153" x2="153" y1="30" style="fill:none; clip-path:url(#clipPath1);" y2="35"
+      /><rect x="58" y="56" width="189" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(196,166,122);" rx="2.5" ry="2.5" height="20"
+      /><rect x="59" y="57" width="189" style="clip-path:url(#clipPath1); fill:none;" rx="2.5" ry="2.5" height="20"
+      /><line x1="153" x2="153" y1="57" style="fill:none; clip-path:url(#clipPath1);" y2="52"
+      /><line x1="153" x2="153" y1="77" style="fill:none; clip-path:url(#clipPath1);" y2="82"
+      /><text x="74" xml:space="preserve" y="72" style="clip-path:url(#clipPath1); stroke:none;"
+      >getReqArg(channelIndex)</text
+      ><line x1="153" x2="153" y1="35" style="fill:none; clip-path:url(#clipPath1);" y2="52"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 153 52 148 43 157 43"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 153 52 148 43 157 43"
+      /><line x1="153" x2="163" y1="108" style="fill:none; clip-path:url(#clipPath1);" y2="118"
+      /><line x1="143" x2="153" y1="118" style="fill:none; clip-path:url(#clipPath1);" y2="128"
+      /><line x1="153" x2="143" y1="108" style="fill:none; clip-path:url(#clipPath1);" y2="118"
+      /><line x1="163" x2="153" y1="118" style="fill:none; clip-path:url(#clipPath1);" y2="128"
+      /><line x1="153" x2="153" y1="108" style="fill:none; clip-path:url(#clipPath1);" y2="103"
+      /><line x1="143" x2="118" y1="118" style="fill:none; clip-path:url(#clipPath1);" y2="118"
+      /><line x1="163" x2="188" y1="118" style="fill:none; clip-path:url(#clipPath1);" y2="118"
+      /><line x1="153" x2="153" y1="128" style="fill:none; clip-path:url(#clipPath1);" y2="153"
+      /><text x="18" xml:space="preserve" y="113" style="clip-path:url(#clipPath1); stroke:none;"
+      >[channelIndex==0]</text
+      ><line x1="153" x2="153" y1="82" style="fill:none; clip-path:url(#clipPath1);" y2="103"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 153 103 148 94 157 94"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 153 103 148 94 157 94"
+      /><line x1="91" x2="91" y1="159" style="fill:none; clip-path:url(#clipPath1);" y2="154"
+      /><line x1="91" x2="91" y1="179" style="fill:none; clip-path:url(#clipPath1);" y2="184"
+      /><line x1="20" x2="165" y1="160" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="160"
+      /><line x1="165" x2="165" y1="160" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="180"
+      /><line x1="20" x2="165" y1="180" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="180"
+      /><line x1="20" x2="30" y1="160" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="170"
+      /><line x1="20" x2="30" y1="180" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="170"
+      /><line x1="19" x2="164" y1="159" style="fill:none; clip-path:url(#clipPath1);" y2="159"
+      /><line x1="164" x2="164" y1="159" style="fill:none; clip-path:url(#clipPath1);" y2="179"
+      /><line x1="19" x2="164" y1="179" style="fill:none; clip-path:url(#clipPath1);" y2="179"
+      /><line x1="19" x2="29" y1="159" style="fill:none; clip-path:url(#clipPath1);" y2="169"
+      /><line x1="19" x2="29" y1="179" style="fill:none; clip-path:url(#clipPath1);" y2="169"
+      /><text x="34" xml:space="preserve" y="159" style="clip-path:url(#clipPath1); stroke:none;"
+      >chl</text
+      ><text x="31" xml:space="preserve" y="174" style="clip-path:url(#clipPath1); stroke:none;"
+      >data_comm_T1(1) </text
+      ><line x1="118" x2="91" y1="118" style="fill:none; clip-path:url(#clipPath1);" y2="154"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 91 154 92 144 100 150"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 91 154 92 144 100 150"
+      /><line x1="91" x2="91" y1="264" style="fill:none; clip-path:url(#clipPath1);" y2="259"
+      /><line x1="91" x2="91" y1="284" style="fill:none; clip-path:url(#clipPath1);" y2="289"
+      /><line x1="12" x2="162" y1="265" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="265"
+      /><line x1="12" x2="162" y1="285" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="285"
+      /><line x1="12" x2="12" y1="265" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="285"
+      /><line x1="162" x2="172" y1="265" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="275"
+      /><line x1="162" x2="172" y1="285" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="275"
+      /><line x1="11" x2="161" y1="264" style="fill:none; clip-path:url(#clipPath1);" y2="264"
+      /><line x1="11" x2="161" y1="284" style="fill:none; clip-path:url(#clipPath1);" y2="284"
+      /><line x1="11" x2="11" y1="264" style="fill:none; clip-path:url(#clipPath1);" y2="284"
+      /><line x1="161" x2="171" y1="264" style="fill:none; clip-path:url(#clipPath1);" y2="274"
+      /><line x1="161" x2="171" y1="284" style="fill:none; clip-path:url(#clipPath1);" y2="274"
+      /><text x="26" xml:space="preserve" y="264" style="clip-path:url(#clipPath1); stroke:none;"
+      >chl</text
+      ><text x="26" xml:space="preserve" y="279" style="clip-path:url(#clipPath1); stroke:none;"
+      >retData_comm_T1(1)</text
+      ><text x="131" xml:space="preserve" y="295" style="clip-path:url(#clipPath1); stroke:none;"
+      >sec:hsmSec_comm</text
+      ><line x1="84" x2="99" y1="196" style="fill:none; clip-path:url(#clipPath1);" y2="196"
+      /><line x1="84" x2="84" y1="196" style="fill:none; clip-path:url(#clipPath1);" y2="231"
+      /><line x1="99" x2="99" y1="196" style="fill:none; clip-path:url(#clipPath1);" y2="231"
+      /><line x1="84" x2="91" y1="231" style="fill:none; clip-path:url(#clipPath1);" y2="236"
+      /><line x1="91" x2="99" y1="236" style="fill:none; clip-path:url(#clipPath1);" y2="231"
+      /><line x1="91" x2="91" y1="196" style="fill:none; clip-path:url(#clipPath1);" y2="191"
+      /><line x1="91" x2="91" y1="236" style="fill:none; clip-path:url(#clipPath1);" y2="241"
+      /><line x1="89" x2="94" y1="201" style="fill:none; clip-path:url(#clipPath1);" y2="201"
+      /><line x1="89" x2="94" y1="213" style="fill:none; clip-path:url(#clipPath1);" y2="213"
+      /><line x1="89" x2="94" y1="207" style="fill:none; clip-path:url(#clipPath1);" y2="207"
+      /><line x1="89" x2="89" y1="201" style="fill:none; clip-path:url(#clipPath1);" y2="207"
+      /><line x1="94" x2="94" y1="207" style="fill:none; clip-path:url(#clipPath1);" y2="213"
+      /><line x1="89" x2="94" y1="216" style="fill:none; clip-path:url(#clipPath1);" y2="216"
+      /><line x1="89" x2="94" y1="228" style="fill:none; clip-path:url(#clipPath1);" y2="228"
+      /><line x1="89" x2="94" y1="222" style="fill:none; clip-path:url(#clipPath1);" y2="222"
+      /><line x1="89" x2="89" y1="216" style="fill:none; clip-path:url(#clipPath1);" y2="228"
+      /><text x="106" xml:space="preserve" y="213" style="clip-path:url(#clipPath1); stroke:none;"
+      >sec:hsmSec_comm</text
+      ><image x="62" y="213" width="20" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAAVklEQVR4XmNgGErg
+PxqmCKAbRpHB6AZQgsEAXZBsfO7+LxCNKUEuJspAkCJkjE2OZANBipAANjl0PqZB
+MAVYDAQBbHLofKINAwNschhiMEMIGTYKaAsAlkPEzZtFB24AAAAASUVORK5CYII=" style="clip-path:url(#clipPath1);" height="16" preserveAspectRatio="none"
+      /><line x1="91" x2="91" y1="184" style="fill:none; clip-path:url(#clipPath1);" y2="191"
+      /><line x1="91" x2="91" y1="241" style="fill:none; clip-path:url(#clipPath1);" y2="259"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 91 259 86 250 95 250"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 91 259 86 250 95 250"
+      /><circle r="8" style="clip-path:url(#clipPath1); stroke:none;" cx="92" cy="323"
+      /><circle r="10" style="fill:none; clip-path:url(#clipPath1);" cx="92" cy="323"
+      /><line x1="92" x2="92" y1="313" style="fill:none; clip-path:url(#clipPath1);" y2="308"
+      /><line x1="91" x2="92" y1="289" style="fill:none; clip-path:url(#clipPath1);" y2="308"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 92 308 86 299 96 299"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 92 308 86 299 96 299"
+    /></g
+    ><g style="font-family:sans-serif;"
+    ><circle r="7" style="stroke:none;" cx="153" cy="22"
+      /><line y2="35" style="fill:none;" x1="153" x2="153" y1="30"
+      /><rect x="58" y="56" width="189" style="fill:none; stroke:rgb(196,166,122);" rx="2.5" ry="2.5" height="20"
+      /><rect x="59" y="57" width="189" style="fill:none;" rx="2.5" ry="2.5" height="20"
+      /><line y2="52" style="fill:none;" x1="153" x2="153" y1="57"
+      /><line y2="82" style="fill:none;" x1="153" x2="153" y1="77"
+      /><text x="74" xml:space="preserve" y="72" style="stroke:none;"
+      >getReqArg(channelIndex)</text
+      ><line y2="52" style="fill:none;" x1="153" x2="153" y1="35"
+      /><polygon style="stroke:none;" points=" 153 52 148 43 157 43"
+      /><polygon style="fill:none;" points=" 153 52 148 43 157 43"
+      /><line y2="118" style="fill:none;" x1="153" x2="163" y1="108"
+      /><line y2="128" style="fill:none;" x1="143" x2="153" y1="118"
+      /><line y2="118" style="fill:none;" x1="153" x2="143" y1="108"
+      /><line y2="128" style="fill:none;" x1="163" x2="153" y1="118"
+      /><line y2="103" style="fill:none;" x1="153" x2="153" y1="108"
+      /><line y2="118" style="fill:none;" x1="143" x2="118" y1="118"
+      /><line y2="118" style="fill:none;" x1="163" x2="188" y1="118"
+      /><line y2="153" style="fill:none;" x1="153" x2="153" y1="128"
+      /><text x="18" xml:space="preserve" y="113" style="stroke:none;"
+      >[channelIndex==0]</text
+      ><line y2="103" style="fill:none;" x1="153" x2="153" y1="82"
+      /><polygon style="stroke:none;" points=" 153 103 148 94 157 94"
+      /><polygon style="fill:none;" points=" 153 103 148 94 157 94"
+      /><line y2="154" style="fill:none;" x1="91" x2="91" y1="159"
+      /><line y2="184" style="fill:none;" x1="91" x2="91" y1="179"
+      /><line x1="20" x2="165" y1="160" style="fill:none; stroke:rgb(104,229,255);" y2="160"
+      /><line x1="165" x2="165" y1="160" style="fill:none; stroke:rgb(104,229,255);" y2="180"
+      /><line x1="20" x2="165" y1="180" style="fill:none; stroke:rgb(104,229,255);" y2="180"
+      /><line x1="20" x2="30" y1="160" style="fill:none; stroke:rgb(104,229,255);" y2="170"
+      /><line x1="20" x2="30" y1="180" style="fill:none; stroke:rgb(104,229,255);" y2="170"
+      /><line y2="159" style="fill:none;" x1="19" x2="164" y1="159"
+      /><line y2="179" style="fill:none;" x1="164" x2="164" y1="159"
+      /><line y2="179" style="fill:none;" x1="19" x2="164" y1="179"
+      /><line y2="169" style="fill:none;" x1="19" x2="29" y1="159"
+      /><line y2="169" style="fill:none;" x1="19" x2="29" y1="179"
+      /><text x="34" xml:space="preserve" y="159" style="stroke:none;"
+      >chl</text
+      ><text x="31" xml:space="preserve" y="174" style="stroke:none;"
+      >data_comm_T1(1) </text
+      ><line y2="154" style="fill:none;" x1="118" x2="91" y1="118"
+      /><polygon style="stroke:none;" points=" 91 154 92 144 100 150"
+      /><polygon style="fill:none;" points=" 91 154 92 144 100 150"
+      /><line y2="259" style="fill:none;" x1="91" x2="91" y1="264"
+      /><line y2="289" style="fill:none;" x1="91" x2="91" y1="284"
+      /><line x1="12" x2="162" y1="265" style="fill:none; stroke:rgb(104,229,255);" y2="265"
+      /><line x1="12" x2="162" y1="285" style="fill:none; stroke:rgb(104,229,255);" y2="285"
+      /><line x1="12" x2="12" y1="265" style="fill:none; stroke:rgb(104,229,255);" y2="285"
+      /><line x1="162" x2="172" y1="265" style="fill:none; stroke:rgb(104,229,255);" y2="275"
+      /><line x1="162" x2="172" y1="285" style="fill:none; stroke:rgb(104,229,255);" y2="275"
+      /><line y2="264" style="fill:none;" x1="11" x2="161" y1="264"
+      /><line y2="284" style="fill:none;" x1="11" x2="161" y1="284"
+      /><line y2="284" style="fill:none;" x1="11" x2="11" y1="264"
+      /><line y2="274" style="fill:none;" x1="161" x2="171" y1="264"
+      /><line y2="274" style="fill:none;" x1="161" x2="171" y1="284"
+      /><text x="26" xml:space="preserve" y="264" style="stroke:none;"
+      >chl</text
+      ><text x="26" xml:space="preserve" y="279" style="stroke:none;"
+      >retData_comm_T1(1)</text
+      ><text x="131" xml:space="preserve" y="295" style="stroke:none;"
+      >sec:hsmSec_comm</text
+      ><line y2="196" style="fill:none;" x1="84" x2="99" y1="196"
+      /><line y2="231" style="fill:none;" x1="84" x2="84" y1="196"
+      /><line y2="231" style="fill:none;" x1="99" x2="99" y1="196"
+      /><line y2="236" style="fill:none;" x1="84" x2="91" y1="231"
+      /><line y2="231" style="fill:none;" x1="91" x2="99" y1="236"
+      /><line y2="191" style="fill:none;" x1="91" x2="91" y1="196"
+      /><line y2="241" style="fill:none;" x1="91" x2="91" y1="236"
+      /><line y2="201" style="fill:none;" x1="89" x2="94" y1="201"
+      /><line y2="213" style="fill:none;" x1="89" x2="94" y1="213"
+      /><line y2="207" style="fill:none;" x1="89" x2="94" y1="207"
+      /><line y2="207" style="fill:none;" x1="89" x2="89" y1="201"
+      /><line y2="213" style="fill:none;" x1="94" x2="94" y1="207"
+      /><line y2="216" style="fill:none;" x1="89" x2="94" y1="216"
+      /><line y2="228" style="fill:none;" x1="89" x2="94" y1="228"
+      /><line y2="222" style="fill:none;" x1="89" x2="94" y1="222"
+      /><line y2="228" style="fill:none;" x1="89" x2="89" y1="216"
+      /><text x="106" xml:space="preserve" y="213" style="stroke:none;"
+      >sec:hsmSec_comm</text
+      ><image preserveAspectRatio="none" x="62" width="20" y="213" height="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAAVklEQVR4XmNgGErg
+PxqmCKAbRpHB6AZQgsEAXZBsfO7+LxCNKUEuJspAkCJkjE2OZANBipAANjl0PqZB
+MAVYDAQBbHLofKINAwNschhiMEMIGTYKaAsAlkPEzZtFB24AAAAASUVORK5CYII="
+      /><line y2="191" style="fill:none;" x1="91" x2="91" y1="184"
+      /><line y2="259" style="fill:none;" x1="91" x2="91" y1="241"
+      /><polygon style="stroke:none;" points=" 91 259 86 250 95 250"
+      /><polygon style="fill:none;" points=" 91 259 86 250 95 250"
+      /><circle r="8" style="stroke:none;" cx="92" cy="323"
+      /><circle r="10" style="fill:none;" cx="92" cy="323"
+      /><line y2="308" style="fill:none;" x1="92" x2="92" y1="313"
+      /><line y2="308" style="fill:none;" x1="91" x2="92" y1="289"
+      /><polygon style="stroke:none;" points=" 92 308 86 299 96 299"
+      /><polygon style="fill:none;" points=" 92 308 86 299 96 299"
+    /></g
+  ></g
+></svg
+>
diff --git a/doc/SysMLSec/fig/hsm_ad_t1.svg b/doc/SysMLSec/fig/hsm_ad_t1.svg
new file mode 100644
index 0000000000..bd1c3f6635
--- /dev/null
+++ b/doc/SysMLSec/fig/hsm_ad_t1.svg
@@ -0,0 +1,197 @@
+<?xml version="1.0"?>
+<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.0//EN'
+          'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'>
+<svg xmlns:xlink="http://www.w3.org/1999/xlink" style="fill-opacity:1; color-rendering:auto; color-interpolation:auto; text-rendering:auto; stroke:black; stroke-linecap:square; stroke-miterlimit:10; shape-rendering:auto; stroke-opacity:1; fill:black; stroke-dasharray:none; font-weight:normal; stroke-width:1; font-family:'Dialog'; font-style:normal; stroke-linejoin:miter; font-size:12px; stroke-dashoffset:0; image-rendering:auto;" width="185" height="289" xmlns="http://www.w3.org/2000/svg"
+><!--Generated by the Batik Graphics2D SVG Generator--><defs id="genericDefs"
+  /><g
+  ><defs id="defs1"
+    ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath1"
+      ><path d="M0 0 L185 0 L185 289 L0 289 L0 0 Z"
+      /></clipPath
+    ></defs
+    ><g style="fill:white; font-family:sans-serif; stroke:white;"
+    ><rect x="0" y="0" width="185" style="clip-path:url(#clipPath1); stroke:none;" height="289"
+    /></g
+    ><g style="font-family:sans-serif;"
+    ><line x1="94" x2="94" y1="235" style="fill:none; clip-path:url(#clipPath1);" y2="254"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 94 254 89 245 98 245"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 94 254 89 245 98 245"
+      /><line x1="94" x2="94" y1="32" style="fill:none; clip-path:url(#clipPath1);" y2="54"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 94 54 89 45 98 45"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 94 54 89 45 98 45"
+      /><circle r="7" style="clip-path:url(#clipPath1); stroke:none;" cx="94" cy="19"
+      /><line x1="94" x2="94" y1="27" style="fill:none; clip-path:url(#clipPath1);" y2="32"
+      /><line x1="94" x2="94" y1="210" style="fill:none; clip-path:url(#clipPath1);" y2="205"
+      /><line x1="94" x2="94" y1="230" style="fill:none; clip-path:url(#clipPath1);" y2="235"
+      /><line x1="53" x2="128" y1="211" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="211"
+      /><line x1="53" x2="128" y1="231" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="231"
+      /><line x1="53" x2="53" y1="211" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="231"
+      /><line x1="128" x2="138" y1="211" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="221"
+      /><line x1="128" x2="138" y1="231" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="221"
+      /><line x1="52" x2="127" y1="210" style="fill:none; clip-path:url(#clipPath1);" y2="210"
+      /><line x1="52" x2="127" y1="230" style="fill:none; clip-path:url(#clipPath1);" y2="230"
+      /><line x1="52" x2="52" y1="210" style="fill:none; clip-path:url(#clipPath1);" y2="230"
+      /><line x1="127" x2="137" y1="210" style="fill:none; clip-path:url(#clipPath1);" y2="220"
+      /><line x1="127" x2="137" y1="230" style="fill:none; clip-path:url(#clipPath1);" y2="220"
+      /><text x="67" xml:space="preserve" y="210" style="clip-path:url(#clipPath1); stroke:none;"
+      >chl</text
+      ><text x="67" xml:space="preserve" y="225" style="clip-path:url(#clipPath1); stroke:none;"
+      >comm(1)</text
+      ><text x="115" xml:space="preserve" y="241" style="clip-path:url(#clipPath1); stroke:none;"
+      >sec:hsmSec_comm</text
+      ><circle r="8" style="clip-path:url(#clipPath1); stroke:none;" cx="94" cy="269"
+      /><circle r="10" style="fill:none; clip-path:url(#clipPath1);" cx="94" cy="269"
+      /><line x1="94" x2="94" y1="259" style="fill:none; clip-path:url(#clipPath1);" y2="254"
+      /><line x1="23" x2="157" y1="60" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(196,166,122);" y2="60"
+      /><line x1="23" x2="157" y1="80" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(196,166,122);" y2="80"
+      /><line x1="23" x2="23" y1="60" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(196,166,122);" y2="80"
+      /><line x1="157" x2="167" y1="60" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(196,166,122);" y2="70"
+      /><line x1="157" x2="167" y1="80" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(196,166,122);" y2="70"
+      /><line x1="94" x2="94" y1="59" style="fill:none; clip-path:url(#clipPath1);" y2="54"
+      /><line x1="94" x2="94" y1="79" style="fill:none; clip-path:url(#clipPath1);" y2="84"
+      /><line x1="22" x2="156" y1="59" style="fill:none; clip-path:url(#clipPath1);" y2="59"
+      /><line x1="22" x2="156" y1="79" style="fill:none; clip-path:url(#clipPath1);" y2="79"
+      /><line x1="22" x2="22" y1="59" style="fill:none; clip-path:url(#clipPath1);" y2="79"
+      /><line x1="156" x2="166" y1="59" style="fill:none; clip-path:url(#clipPath1);" y2="69"
+      /><line x1="156" x2="166" y1="79" style="fill:none; clip-path:url(#clipPath1);" y2="69"
+      /><text x="37" xml:space="preserve" y="59" style="clip-path:url(#clipPath1); stroke:none;"
+      >req</text
+      ><text x="37" xml:space="preserve" y="74" style="clip-path:url(#clipPath1); stroke:none;"
+      >startHSM_CPU1(0)</text
+      ><line x1="94" x2="94" y1="109" style="fill:none; clip-path:url(#clipPath1);" y2="104"
+      /><line x1="94" x2="94" y1="129" style="fill:none; clip-path:url(#clipPath1);" y2="134"
+      /><line x1="25" x2="156" y1="110" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="110"
+      /><line x1="25" x2="156" y1="130" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="130"
+      /><line x1="25" x2="25" y1="110" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="130"
+      /><line x1="156" x2="166" y1="110" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="120"
+      /><line x1="156" x2="166" y1="130" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="120"
+      /><line x1="24" x2="155" y1="109" style="fill:none; clip-path:url(#clipPath1);" y2="109"
+      /><line x1="24" x2="155" y1="129" style="fill:none; clip-path:url(#clipPath1);" y2="129"
+      /><line x1="24" x2="24" y1="109" style="fill:none; clip-path:url(#clipPath1);" y2="129"
+      /><line x1="155" x2="165" y1="109" style="fill:none; clip-path:url(#clipPath1);" y2="119"
+      /><line x1="155" x2="165" y1="129" style="fill:none; clip-path:url(#clipPath1);" y2="119"
+      /><text x="39" xml:space="preserve" y="109" style="clip-path:url(#clipPath1); stroke:none;"
+      >chl</text
+      ><text x="39" xml:space="preserve" y="124" style="clip-path:url(#clipPath1); stroke:none;"
+      >data_comm_T1(1)</text
+      ><line x1="94" x2="94" y1="84" style="fill:none; clip-path:url(#clipPath1);" y2="104"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 94 104 89 95 98 95"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 94 104 89 95 98 95"
+      /><line x1="94" x2="93" y1="134" style="fill:none; clip-path:url(#clipPath1);" y2="156"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 93 156 88 147 98 147"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 93 156 88 147 98 147"
+      /><line x1="93" x2="93" y1="161" style="fill:none; clip-path:url(#clipPath1);" y2="156"
+      /><line x1="93" x2="93" y1="181" style="fill:none; clip-path:url(#clipPath1);" y2="186"
+      /><line x1="12" x2="176" y1="162" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="162"
+      /><line x1="176" x2="176" y1="162" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="182"
+      /><line x1="12" x2="176" y1="182" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="182"
+      /><line x1="12" x2="22" y1="162" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="172"
+      /><line x1="12" x2="22" y1="182" style="clip-path:url(#clipPath1); fill:none; stroke:rgb(104,229,255);" y2="172"
+      /><line x1="11" x2="175" y1="161" style="fill:none; clip-path:url(#clipPath1);" y2="161"
+      /><line x1="175" x2="175" y1="161" style="fill:none; clip-path:url(#clipPath1);" y2="181"
+      /><line x1="11" x2="175" y1="181" style="fill:none; clip-path:url(#clipPath1);" y2="181"
+      /><line x1="11" x2="21" y1="161" style="fill:none; clip-path:url(#clipPath1);" y2="171"
+      /><line x1="11" x2="21" y1="181" style="fill:none; clip-path:url(#clipPath1);" y2="171"
+      /><text x="26" xml:space="preserve" y="161" style="clip-path:url(#clipPath1); stroke:none;"
+      >chl</text
+      ><text x="23" xml:space="preserve" y="176" style="clip-path:url(#clipPath1); stroke:none;"
+      >retData_comm_T1(1) </text
+      ><text x="134" xml:space="preserve" y="192" style="clip-path:url(#clipPath1); stroke:none;"
+      >sec:hsmSec_comm</text
+      ><line x1="93" x2="94" y1="186" style="fill:none; clip-path:url(#clipPath1);" y2="205"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 94 205 88 196 98 196"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 94 205 88 196 98 196"
+    /></g
+    ><g style="font-family:sans-serif;"
+    ><line y2="254" style="fill:none;" x1="94" x2="94" y1="235"
+      /><polygon style="stroke:none;" points=" 94 254 89 245 98 245"
+      /><polygon style="fill:none;" points=" 94 254 89 245 98 245"
+      /><line y2="54" style="fill:none;" x1="94" x2="94" y1="32"
+      /><polygon style="stroke:none;" points=" 94 54 89 45 98 45"
+      /><polygon style="fill:none;" points=" 94 54 89 45 98 45"
+      /><circle r="7" style="stroke:none;" cx="94" cy="19"
+      /><line y2="32" style="fill:none;" x1="94" x2="94" y1="27"
+      /><line y2="205" style="fill:none;" x1="94" x2="94" y1="210"
+      /><line y2="235" style="fill:none;" x1="94" x2="94" y1="230"
+      /><line x1="53" x2="128" y1="211" style="fill:none; stroke:rgb(104,229,255);" y2="211"
+      /><line x1="53" x2="128" y1="231" style="fill:none; stroke:rgb(104,229,255);" y2="231"
+      /><line x1="53" x2="53" y1="211" style="fill:none; stroke:rgb(104,229,255);" y2="231"
+      /><line x1="128" x2="138" y1="211" style="fill:none; stroke:rgb(104,229,255);" y2="221"
+      /><line x1="128" x2="138" y1="231" style="fill:none; stroke:rgb(104,229,255);" y2="221"
+      /><line y2="210" style="fill:none;" x1="52" x2="127" y1="210"
+      /><line y2="230" style="fill:none;" x1="52" x2="127" y1="230"
+      /><line y2="230" style="fill:none;" x1="52" x2="52" y1="210"
+      /><line y2="220" style="fill:none;" x1="127" x2="137" y1="210"
+      /><line y2="220" style="fill:none;" x1="127" x2="137" y1="230"
+      /><text x="67" xml:space="preserve" y="210" style="stroke:none;"
+      >chl</text
+      ><text x="67" xml:space="preserve" y="225" style="stroke:none;"
+      >comm(1)</text
+      ><text x="115" xml:space="preserve" y="241" style="stroke:none;"
+      >sec:hsmSec_comm</text
+      ><circle r="8" style="stroke:none;" cx="94" cy="269"
+      /><circle r="10" style="fill:none;" cx="94" cy="269"
+      /><line y2="254" style="fill:none;" x1="94" x2="94" y1="259"
+      /><line x1="23" x2="157" y1="60" style="fill:none; stroke:rgb(196,166,122);" y2="60"
+      /><line x1="23" x2="157" y1="80" style="fill:none; stroke:rgb(196,166,122);" y2="80"
+      /><line x1="23" x2="23" y1="60" style="fill:none; stroke:rgb(196,166,122);" y2="80"
+      /><line x1="157" x2="167" y1="60" style="fill:none; stroke:rgb(196,166,122);" y2="70"
+      /><line x1="157" x2="167" y1="80" style="fill:none; stroke:rgb(196,166,122);" y2="70"
+      /><line y2="54" style="fill:none;" x1="94" x2="94" y1="59"
+      /><line y2="84" style="fill:none;" x1="94" x2="94" y1="79"
+      /><line y2="59" style="fill:none;" x1="22" x2="156" y1="59"
+      /><line y2="79" style="fill:none;" x1="22" x2="156" y1="79"
+      /><line y2="79" style="fill:none;" x1="22" x2="22" y1="59"
+      /><line y2="69" style="fill:none;" x1="156" x2="166" y1="59"
+      /><line y2="69" style="fill:none;" x1="156" x2="166" y1="79"
+      /><text x="37" xml:space="preserve" y="59" style="stroke:none;"
+      >req</text
+      ><text x="37" xml:space="preserve" y="74" style="stroke:none;"
+      >startHSM_CPU1(0)</text
+      ><line y2="104" style="fill:none;" x1="94" x2="94" y1="109"
+      /><line y2="134" style="fill:none;" x1="94" x2="94" y1="129"
+      /><line x1="25" x2="156" y1="110" style="fill:none; stroke:rgb(104,229,255);" y2="110"
+      /><line x1="25" x2="156" y1="130" style="fill:none; stroke:rgb(104,229,255);" y2="130"
+      /><line x1="25" x2="25" y1="110" style="fill:none; stroke:rgb(104,229,255);" y2="130"
+      /><line x1="156" x2="166" y1="110" style="fill:none; stroke:rgb(104,229,255);" y2="120"
+      /><line x1="156" x2="166" y1="130" style="fill:none; stroke:rgb(104,229,255);" y2="120"
+      /><line y2="109" style="fill:none;" x1="24" x2="155" y1="109"
+      /><line y2="129" style="fill:none;" x1="24" x2="155" y1="129"
+      /><line y2="129" style="fill:none;" x1="24" x2="24" y1="109"
+      /><line y2="119" style="fill:none;" x1="155" x2="165" y1="109"
+      /><line y2="119" style="fill:none;" x1="155" x2="165" y1="129"
+      /><text x="39" xml:space="preserve" y="109" style="stroke:none;"
+      >chl</text
+      ><text x="39" xml:space="preserve" y="124" style="stroke:none;"
+      >data_comm_T1(1)</text
+      ><line y2="104" style="fill:none;" x1="94" x2="94" y1="84"
+      /><polygon style="stroke:none;" points=" 94 104 89 95 98 95"
+      /><polygon style="fill:none;" points=" 94 104 89 95 98 95"
+      /><line y2="156" style="fill:none;" x1="94" x2="93" y1="134"
+      /><polygon style="stroke:none;" points=" 93 156 88 147 98 147"
+      /><polygon style="fill:none;" points=" 93 156 88 147 98 147"
+      /><line y2="156" style="fill:none;" x1="93" x2="93" y1="161"
+      /><line y2="186" style="fill:none;" x1="93" x2="93" y1="181"
+      /><line x1="12" x2="176" y1="162" style="fill:none; stroke:rgb(104,229,255);" y2="162"
+      /><line x1="176" x2="176" y1="162" style="fill:none; stroke:rgb(104,229,255);" y2="182"
+      /><line x1="12" x2="176" y1="182" style="fill:none; stroke:rgb(104,229,255);" y2="182"
+      /><line x1="12" x2="22" y1="162" style="fill:none; stroke:rgb(104,229,255);" y2="172"
+      /><line x1="12" x2="22" y1="182" style="fill:none; stroke:rgb(104,229,255);" y2="172"
+      /><line y2="161" style="fill:none;" x1="11" x2="175" y1="161"
+      /><line y2="181" style="fill:none;" x1="175" x2="175" y1="161"
+      /><line y2="181" style="fill:none;" x1="11" x2="175" y1="181"
+      /><line y2="171" style="fill:none;" x1="11" x2="21" y1="161"
+      /><line y2="171" style="fill:none;" x1="11" x2="21" y1="181"
+      /><text x="26" xml:space="preserve" y="161" style="stroke:none;"
+      >chl</text
+      ><text x="23" xml:space="preserve" y="176" style="stroke:none;"
+      >retData_comm_T1(1) </text
+      ><text x="134" xml:space="preserve" y="192" style="stroke:none;"
+      >sec:hsmSec_comm</text
+      ><line y2="205" style="fill:none;" x1="93" x2="94" y1="186"
+      /><polygon style="stroke:none;" points=" 94 205 88 196 98 196"
+      /><polygon style="fill:none;" points=" 94 205 88 196 98 196"
+    /></g
+  ></g
+></svg
+>
diff --git a/doc/SysMLSec/fig/hsm_fv.svg b/doc/SysMLSec/fig/hsm_fv.svg
new file mode 100644
index 0000000000..e14e45b566
--- /dev/null
+++ b/doc/SysMLSec/fig/hsm_fv.svg
@@ -0,0 +1,397 @@
+<?xml version="1.0"?>
+<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.0//EN'
+          'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'>
+<svg xmlns:xlink="http://www.w3.org/1999/xlink" style="fill-opacity:1; color-rendering:auto; color-interpolation:auto; text-rendering:auto; stroke:black; stroke-linecap:square; stroke-miterlimit:10; shape-rendering:auto; stroke-opacity:1; fill:black; stroke-dasharray:none; font-weight:normal; stroke-width:1; font-family:'Dialog'; font-style:normal; stroke-linejoin:miter; font-size:12px; stroke-dashoffset:0; image-rendering:auto;" width="1278" height="196" xmlns="http://www.w3.org/2000/svg"
+><!--Generated by the Batik Graphics2D SVG Generator--><defs id="genericDefs"
+  /><g
+  ><defs id="defs1"
+    ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath1"
+      ><path d="M0 0 L1278 0 L1278 196 L0 196 L0 0 Z"
+      /></clipPath
+    ></defs
+    ><g style="fill:white; font-family:sans-serif; stroke:white;"
+    ><rect x="0" y="0" width="1278" style="clip-path:url(#clipPath1); stroke:none;" height="196"
+    /></g
+    ><g style="font-family:sans-serif;"
+    ><rect x="403" y="29" width="200" style="fill:none; clip-path:url(#clipPath1);" height="150"
+    /></g
+    ><g style="fill:rgb(201,243,188); fill-opacity:0.7843; font-family:sans-serif; stroke-opacity:0.7843; stroke:rgb(201,243,188);"
+    ><rect x="404" y="30" width="198" style="clip-path:url(#clipPath1); stroke:none;" height="148"
+      /><rect x="403" y="29" width="1" style="clip-path:url(#clipPath1); fill:rgb(255,255,255); stroke:none;" height="150"
+      /><rect x="404" y="29" width="198" style="clip-path:url(#clipPath1); fill:rgb(255,255,255); stroke:none;" height="1"
+      /><rect x="404" y="178" width="199" style="clip-path:url(#clipPath1); fill:rgb(140,170,131); stroke:none;" height="1"
+      /><rect x="602" y="29" width="1" style="clip-path:url(#clipPath1); fill:rgb(140,170,131); stroke:none;" height="149"
+    /></g
+    ><g style="font-family:sans-serif; font-weight:bold;"
+    ><text x="495" xml:space="preserve" y="56" style="clip-path:url(#clipPath1); stroke:none;"
+      >T1</text
+      ><image x="573" y="44" width="15" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAYklEQVR4Xs2PWw5A
+EQxEu//F2cLdhx+SS4Xp1ONHTHIiZA4l8krSASYpfHGJ9ppEmGWU4ca2Evp+2SD9
+JWTcQZZFWUPPzctQ1nDZGWtPRrSEMJn+2cPINeYlDyb/E+yC7r1k/CUznLqz88wAAAAASUVORK5CYII=" style="clip-path:url(#clipPath1); font-weight:normal;" height="16" preserveAspectRatio="none"
+      /><rect x="390" y="120" width="26" style="clip-path:url(#clipPath1); fill:rgb(104,229,255); stroke:none;" height="26"
+      /><rect x="390" y="120" width="26" style="fill:none; clip-path:url(#clipPath1);" height="26"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 393 123 393 143 413 133"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 393 123 393 143 413 133"
+      /><line x1="413" x2="413" y1="143" style="fill:none; clip-path:url(#clipPath1);" y2="123"
+      /><text x="390" y="119" style="clip-path:url(#clipPath1); font-weight:normal; stroke:none;" xml:space="preserve"
+      >retData_comm_T1</text
+      ><rect x="390" y="69" width="26" style="clip-path:url(#clipPath1); fill:rgb(104,229,255); stroke:none;" height="26"
+      /><rect x="390" y="69" width="26" style="fill:none; clip-path:url(#clipPath1);" height="26"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 413 72 413 92 393 82"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 413 72 413 92 393 82"
+      /><line x1="393" x2="393" y1="92" style="fill:none; clip-path:url(#clipPath1);" y2="72"
+      /><text x="390" y="68" style="clip-path:url(#clipPath1); font-weight:normal; stroke:none;" xml:space="preserve"
+      >data_comm_T1</text
+      ><rect x="505" y="16" width="26" style="clip-path:url(#clipPath1); fill:rgb(196,166,122); stroke:none;" height="26"
+      /><rect x="505" y="16" width="26" style="fill:none; clip-path:url(#clipPath1);" height="26"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 508 39 528 39 518 19"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 508 39 528 39 518 19"
+      /><line x1="528" x2="508" y1="19" style="fill:none; clip-path:url(#clipPath1);" y2="19"
+      /><text x="505" y="15" style="clip-path:url(#clipPath1); font-weight:normal; stroke:none;" xml:space="preserve"
+      >startHSM_CPU1</text
+      ><rect x="590" y="84" width="26" style="clip-path:url(#clipPath1); fill:rgb(104,229,255); stroke:none;" height="26"
+      /><rect x="590" y="84" width="26" style="fill:none; clip-path:url(#clipPath1);" height="26"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 593 87 593 107 613 97"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 593 87 593 107 613 97"
+      /><line x1="613" x2="613" y1="107" style="fill:none; clip-path:url(#clipPath1);" y2="87"
+      /><text x="590" y="83" style="clip-path:url(#clipPath1); font-weight:normal; stroke:none;" xml:space="preserve"
+      >comm</text
+      ><text x="572" y="77" style="clip-path:url(#clipPath1); font-weight:normal; stroke:none;" xml:space="preserve"
+      >???</text
+      ><ellipse style="fill:none; clip-path:url(#clipPath1);" rx="3" cx="581" ry="4.5" cy="88.5"
+      /><rect x="577" y="87" width="9" style="clip-path:url(#clipPath1); fill:gray; stroke:none;" height="7"
+      /><rect x="577" y="87" width="9" style="fill:none; clip-path:url(#clipPath1);" height="7"
+      /><rect x="674" y="31" width="200" style="fill:none; clip-path:url(#clipPath1);" height="150"
+    /></g
+    ><g style="fill:rgb(201,243,188); fill-opacity:0.7843; font-family:sans-serif; stroke-opacity:0.7843; stroke:rgb(201,243,188);"
+    ><rect x="675" y="32" width="198" style="clip-path:url(#clipPath1); stroke:none;" height="148"
+      /><rect x="674" y="31" width="1" style="clip-path:url(#clipPath1); fill:rgb(255,255,255); stroke:none;" height="150"
+      /><rect x="675" y="31" width="198" style="clip-path:url(#clipPath1); fill:rgb(255,255,255); stroke:none;" height="1"
+      /><rect x="675" y="180" width="199" style="clip-path:url(#clipPath1); fill:rgb(140,170,131); stroke:none;" height="1"
+      /><rect x="873" y="31" width="1" style="clip-path:url(#clipPath1); fill:rgb(140,170,131); stroke:none;" height="149"
+    /></g
+    ><g style="font-family:sans-serif; font-weight:bold;"
+    ><text x="766" xml:space="preserve" y="58" style="clip-path:url(#clipPath1); stroke:none;"
+      >T2</text
+      ><image x="844" y="46" width="15" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAYklEQVR4Xs2PWw5A
+EQxEu//F2cLdhx+SS4Xp1ONHTHIiZA4l8krSASYpfHGJ9ppEmGWU4ca2Evp+2SD9
+JWTcQZZFWUPPzctQ1nDZGWtPRrSEMJn+2cPINeYlDyb/E+yC7r1k/CUznLqz88wAAAAASUVORK5CYII=" style="clip-path:url(#clipPath1); font-weight:normal;" height="16" preserveAspectRatio="none"
+      /><rect x="861" y="135" width="26" style="clip-path:url(#clipPath1); fill:rgb(104,229,255); stroke:none;" height="26"
+      /><rect x="861" y="135" width="26" style="fill:none; clip-path:url(#clipPath1);" height="26"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 884 138 884 158 864 148"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 884 138 884 158 864 148"
+      /><line x1="864" x2="864" y1="158" style="fill:none; clip-path:url(#clipPath1);" y2="138"
+      /><text x="861" y="134" style="clip-path:url(#clipPath1); font-weight:normal; stroke:none;" xml:space="preserve"
+      >retData_comm_T2</text
+      ><rect x="861" y="79" width="26" style="clip-path:url(#clipPath1); fill:rgb(104,229,255); stroke:none;" height="26"
+      /><rect x="861" y="79" width="26" style="fill:none; clip-path:url(#clipPath1);" height="26"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 864 82 864 102 884 92"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 864 82 864 102 884 92"
+      /><line x1="884" x2="884" y1="102" style="fill:none; clip-path:url(#clipPath1);" y2="82"
+      /><text x="861" y="78" style="clip-path:url(#clipPath1); font-weight:normal; stroke:none;" xml:space="preserve"
+      >data_comm_T2</text
+      ><rect x="798" y="18" width="26" style="clip-path:url(#clipPath1); fill:rgb(196,166,122); stroke:none;" height="26"
+      /><rect x="798" y="18" width="26" style="fill:none; clip-path:url(#clipPath1);" height="26"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 801 41 821 41 811 21"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 801 41 821 41 811 21"
+      /><line x1="821" x2="801" y1="21" style="fill:none; clip-path:url(#clipPath1);" y2="21"
+      /><text x="798" y="17" style="clip-path:url(#clipPath1); font-weight:normal; stroke:none;" xml:space="preserve"
+      >startHSM_CPU2</text
+      ><rect x="661" y="84" width="26" style="clip-path:url(#clipPath1); fill:rgb(104,229,255); stroke:none;" height="26"
+      /><rect x="661" y="84" width="26" style="fill:none; clip-path:url(#clipPath1);" height="26"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 664 87 664 107 684 97"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 664 87 664 107 684 97"
+      /><line x1="684" x2="684" y1="107" style="fill:none; clip-path:url(#clipPath1);" y2="87"
+      /><text x="661" y="83" style="clip-path:url(#clipPath1); font-weight:normal; stroke:none;" xml:space="preserve"
+      >comm</text
+      ><text x="620" y="97" style="clip-path:url(#clipPath1); font-style:italic; stroke:none; font-weight:normal;" xml:space="preserve"
+      >comm</text
+      ><line x1="616" x2="661" y1="97" style="fill:none; clip-path:url(#clipPath1);" y2="97"
+      /><rect x="1022" y="31" width="246" style="fill:none; clip-path:url(#clipPath1);" height="155"
+    /></g
+    ><g style="fill:rgb(201,243,188); fill-opacity:0.7843; font-family:sans-serif; stroke-opacity:0.7843; stroke:rgb(201,243,188);"
+    ><rect x="1023" y="32" width="244" style="clip-path:url(#clipPath1); stroke:none;" height="153"
+      /><rect x="1022" y="31" width="1" style="clip-path:url(#clipPath1); fill:rgb(255,255,255); stroke:none;" height="155"
+      /><rect x="1023" y="31" width="244" style="clip-path:url(#clipPath1); fill:rgb(255,255,255); stroke:none;" height="1"
+      /><rect x="1023" y="185" width="245" style="clip-path:url(#clipPath1); fill:rgb(140,170,131); stroke:none;" height="1"
+      /><rect x="1267" y="31" width="1" style="clip-path:url(#clipPath1); fill:rgb(140,170,131); stroke:none;" height="154"
+    /></g
+    ><g style="font-family:sans-serif; font-weight:bold;"
+    ><text x="1112" xml:space="preserve" y="58" style="clip-path:url(#clipPath1); stroke:none;"
+      >HSM_CPU2</text
+      ><image x="1238" y="46" width="15" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAYklEQVR4Xs2PWw5A
+EQxEu//F2cLdhx+SS4Xp1ONHTHIiZA4l8krSASYpfHGJ9ppEmGWU4ca2Evp+2SD9
+JWTcQZZFWUPPzctQ1nDZGWtPRrSEMJn+2cPINeYlDyb/E+yC7r1k/CUznLqz88wAAAAASUVORK5CYII=" style="clip-path:url(#clipPath1); font-weight:normal;" height="16" preserveAspectRatio="none"
+      /><text x="1037" y="85" style="clip-path:url(#clipPath1); font-weight:normal; stroke:none;" xml:space="preserve"
+      >+ channelIndex = 0 : Natural;</text
+      ><rect x="1009" y="135" width="26" style="clip-path:url(#clipPath1); fill:rgb(104,229,255); stroke:none;" height="26"
+      /><rect x="1009" y="135" width="26" style="fill:none; clip-path:url(#clipPath1);" height="26"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 1032 138 1032 158 1012 148"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 1032 138 1032 158 1012 148"
+      /><line x1="1012" x2="1012" y1="158" style="fill:none; clip-path:url(#clipPath1);" y2="138"
+      /><text x="1009" y="134" style="clip-path:url(#clipPath1); font-weight:normal; stroke:none;" xml:space="preserve"
+      >retData_comm_T2</text
+      ><rect x="1009" y="77" width="26" style="clip-path:url(#clipPath1); fill:rgb(104,229,255); stroke:none;" height="26"
+      /><rect x="1009" y="77" width="26" style="fill:none; clip-path:url(#clipPath1);" height="26"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 1012 80 1012 100 1032 90"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 1012 80 1012 100 1032 90"
+      /><line x1="1032" x2="1032" y1="100" style="fill:none; clip-path:url(#clipPath1);" y2="80"
+      /><text x="1009" y="76" style="clip-path:url(#clipPath1); font-weight:normal; stroke:none;" xml:space="preserve"
+      >data_comm_T2</text
+      ><rect x="1090" y="18" width="26" style="clip-path:url(#clipPath1); fill:rgb(196,166,122); stroke:none;" height="26"
+      /><rect x="1090" y="18" width="26" style="fill:none; clip-path:url(#clipPath1);" height="26"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 1093 21 1113 21 1103 41"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 1093 21 1113 21 1103 41"
+      /><line x1="1113" x2="1093" y1="41" style="fill:none; clip-path:url(#clipPath1);" y2="41"
+      /><text x="1090" y="17" style="clip-path:url(#clipPath1); font-weight:normal; stroke:none;" xml:space="preserve"
+      >startHSM_CPU2</text
+      ><text x="909" y="18" style="clip-path:url(#clipPath1); font-style:italic; stroke:none; font-weight:normal;" xml:space="preserve"
+      >startHSM_CPU2</text
+      ><line x1="1103" x2="811" y1="18" style="fill:none; clip-path:url(#clipPath1);" y2="18"
+      /><text x="901" y="91" style="clip-path:url(#clipPath1); font-style:italic; stroke:none; font-weight:normal;" xml:space="preserve"
+      >data_comm_T2</text
+      ><line x1="1009" x2="887" y1="90" style="fill:none; clip-path:url(#clipPath1);" y2="92"
+      /><text x="892" y="148" style="clip-path:url(#clipPath1); font-style:italic; stroke:none; font-weight:normal;" xml:space="preserve"
+      >retData_comm_T2</text
+      ><line x1="1009" x2="887" y1="148" style="fill:none; clip-path:url(#clipPath1);" y2="148"
+      /><rect x="11" y="29" width="248" style="fill:none; clip-path:url(#clipPath1);" height="148"
+    /></g
+    ><g style="fill:rgb(201,243,188); fill-opacity:0.7843; font-family:sans-serif; stroke-opacity:0.7843; stroke:rgb(201,243,188);"
+    ><rect x="12" y="30" width="246" style="clip-path:url(#clipPath1); stroke:none;" height="146"
+      /><rect x="11" y="29" width="1" style="clip-path:url(#clipPath1); fill:rgb(255,255,255); stroke:none;" height="148"
+      /><rect x="12" y="29" width="246" style="clip-path:url(#clipPath1); fill:rgb(255,255,255); stroke:none;" height="1"
+      /><rect x="12" y="176" width="247" style="clip-path:url(#clipPath1); fill:rgb(140,170,131); stroke:none;" height="1"
+      /><rect x="258" y="29" width="1" style="clip-path:url(#clipPath1); fill:rgb(140,170,131); stroke:none;" height="147"
+    /></g
+    ><g style="font-family:sans-serif; font-weight:bold;"
+    ><text x="102" xml:space="preserve" y="56" style="clip-path:url(#clipPath1); stroke:none;"
+      >HSM_CPU1</text
+      ><image x="229" y="44" width="15" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAYklEQVR4Xs2PWw5A
+EQxEu//F2cLdhx+SS4Xp1ONHTHIiZA4l8krSASYpfHGJ9ppEmGWU4ca2Evp+2SD9
+JWTcQZZFWUPPzctQ1nDZGWtPRrSEMJn+2cPINeYlDyb/E+yC7r1k/CUznLqz88wAAAAASUVORK5CYII=" style="clip-path:url(#clipPath1); font-weight:normal;" height="16" preserveAspectRatio="none"
+      /><text x="26" y="83" style="clip-path:url(#clipPath1); font-weight:normal; stroke:none;" xml:space="preserve"
+      >+ channelIndex = 0 : Natural;</text
+      ><rect x="246" y="121" width="26" style="clip-path:url(#clipPath1); fill:rgb(104,229,255); stroke:none;" height="26"
+      /><rect x="246" y="121" width="26" style="fill:none; clip-path:url(#clipPath1);" height="26"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 249 124 249 144 269 134"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 249 124 249 144 269 134"
+      /><line x1="269" x2="269" y1="144" style="fill:none; clip-path:url(#clipPath1);" y2="124"
+      /><text x="246" y="120" style="clip-path:url(#clipPath1); font-weight:normal; stroke:none;" xml:space="preserve"
+      >retData_comm_T1</text
+      ><rect x="246" y="69" width="26" style="clip-path:url(#clipPath1); fill:rgb(104,229,255); stroke:none;" height="26"
+      /><rect x="246" y="69" width="26" style="fill:none; clip-path:url(#clipPath1);" height="26"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 269 72 269 92 249 82"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 269 72 269 92 249 82"
+      /><line x1="249" x2="249" y1="92" style="fill:none; clip-path:url(#clipPath1);" y2="72"
+      /><text x="246" y="68" style="clip-path:url(#clipPath1); font-weight:normal; stroke:none;" xml:space="preserve"
+      >data_comm_T1</text
+      ><rect x="73" y="16" width="26" style="clip-path:url(#clipPath1); fill:rgb(196,166,122); stroke:none;" height="26"
+      /><rect x="73" y="16" width="26" style="fill:none; clip-path:url(#clipPath1);" height="26"
+      /><polygon style="fill:none; clip-path:url(#clipPath1);" points=" 76 19 96 19 86 39"
+      /><polygon style="clip-path:url(#clipPath1); stroke:none;" points=" 76 19 96 19 86 39"
+      /><line x1="96" x2="76" y1="39" style="fill:none; clip-path:url(#clipPath1);" y2="39"
+      /><text x="73" y="15" style="clip-path:url(#clipPath1); font-weight:normal; stroke:none;" xml:space="preserve"
+      >startHSM_CPU1</text
+      ><text x="254" y="16" style="clip-path:url(#clipPath1); font-style:italic; stroke:none; font-weight:normal;" xml:space="preserve"
+      >startHSM_CPU1</text
+      ><line x1="86" x2="518" y1="16" style="fill:none; clip-path:url(#clipPath1);" y2="16"
+      /><text x="284" y="82" style="clip-path:url(#clipPath1); font-style:italic; stroke:none; font-weight:normal;" xml:space="preserve"
+      >data_comm_T1</text
+      ><line x1="272" x2="390" y1="82" style="fill:none; clip-path:url(#clipPath1);" y2="82"
+      /><text x="275" y="133" style="clip-path:url(#clipPath1); font-style:italic; stroke:none; font-weight:normal;" xml:space="preserve"
+      >retData_comm_T1</text
+      ><line x1="272" x2="390" y1="134" style="fill:none; clip-path:url(#clipPath1);" y2="133"
+    /></g
+    ><g style="font-family:sans-serif;"
+    ><rect x="403" width="200" height="150" y="29" style="fill:none;"
+    /></g
+    ><g style="fill:rgb(201,243,188); fill-opacity:0.7843; font-family:sans-serif; stroke-opacity:0.7843; stroke:rgb(201,243,188);"
+    ><rect x="404" width="198" height="148" y="30" style="stroke:none;"
+      /><rect x="403" y="29" width="1" style="fill:rgb(255,255,255); stroke:none;" height="150"
+      /><rect x="404" y="29" width="198" style="fill:rgb(255,255,255); stroke:none;" height="1"
+      /><rect x="404" y="178" width="199" style="fill:rgb(140,170,131); stroke:none;" height="1"
+      /><rect x="602" y="29" width="1" style="fill:rgb(140,170,131); stroke:none;" height="149"
+    /></g
+    ><g style="font-family:sans-serif; font-weight:bold;"
+    ><text x="495" xml:space="preserve" y="56" style="stroke:none;"
+      >T1</text
+      ><image x="573" y="44" width="15" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAYklEQVR4Xs2PWw5A
+EQxEu//F2cLdhx+SS4Xp1ONHTHIiZA4l8krSASYpfHGJ9ppEmGWU4ca2Evp+2SD9
+JWTcQZZFWUPPzctQ1nDZGWtPRrSEMJn+2cPINeYlDyb/E+yC7r1k/CUznLqz88wAAAAASUVORK5CYII=" style="font-weight:normal;" height="16" preserveAspectRatio="none"
+      /><rect x="390" y="120" width="26" style="fill:rgb(104,229,255); stroke:none;" height="26"
+      /><rect x="390" width="26" height="26" y="120" style="fill:none;"
+      /><polygon style="fill:none;" points=" 393 123 393 143 413 133"
+      /><polygon style="stroke:none;" points=" 393 123 393 143 413 133"
+      /><line y2="123" style="fill:none;" x1="413" x2="413" y1="143"
+      /><text x="390" xml:space="preserve" y="119" style="font-weight:normal; stroke:none;"
+      >retData_comm_T1</text
+      ><rect x="390" y="69" width="26" style="fill:rgb(104,229,255); stroke:none;" height="26"
+      /><rect x="390" width="26" height="26" y="69" style="fill:none;"
+      /><polygon style="fill:none;" points=" 413 72 413 92 393 82"
+      /><polygon style="stroke:none;" points=" 413 72 413 92 393 82"
+      /><line y2="72" style="fill:none;" x1="393" x2="393" y1="92"
+      /><text x="390" xml:space="preserve" y="68" style="font-weight:normal; stroke:none;"
+      >data_comm_T1</text
+      ><rect x="505" y="16" width="26" style="fill:rgb(196,166,122); stroke:none;" height="26"
+      /><rect x="505" width="26" height="26" y="16" style="fill:none;"
+      /><polygon style="fill:none;" points=" 508 39 528 39 518 19"
+      /><polygon style="stroke:none;" points=" 508 39 528 39 518 19"
+      /><line y2="19" style="fill:none;" x1="528" x2="508" y1="19"
+      /><text x="505" xml:space="preserve" y="15" style="font-weight:normal; stroke:none;"
+      >startHSM_CPU1</text
+      ><rect x="590" y="84" width="26" style="fill:rgb(104,229,255); stroke:none;" height="26"
+      /><rect x="590" width="26" height="26" y="84" style="fill:none;"
+      /><polygon style="fill:none;" points=" 593 87 593 107 613 97"
+      /><polygon style="stroke:none;" points=" 593 87 593 107 613 97"
+      /><line y2="87" style="fill:none;" x1="613" x2="613" y1="107"
+      /><text x="590" xml:space="preserve" y="83" style="font-weight:normal; stroke:none;"
+      >comm</text
+      ><text x="572" xml:space="preserve" y="77" style="font-weight:normal; stroke:none;"
+      >???</text
+      ><ellipse rx="3" ry="4.5" style="fill:none;" cx="581" cy="88.5"
+      /><rect x="577" y="87" width="9" style="fill:gray; stroke:none;" height="7"
+      /><rect x="577" width="9" height="7" y="87" style="fill:none;"
+      /><rect x="674" width="200" height="150" y="31" style="fill:none;"
+    /></g
+    ><g style="fill:rgb(201,243,188); fill-opacity:0.7843; font-family:sans-serif; stroke-opacity:0.7843; stroke:rgb(201,243,188);"
+    ><rect x="675" width="198" height="148" y="32" style="stroke:none;"
+      /><rect x="674" y="31" width="1" style="fill:rgb(255,255,255); stroke:none;" height="150"
+      /><rect x="675" y="31" width="198" style="fill:rgb(255,255,255); stroke:none;" height="1"
+      /><rect x="675" y="180" width="199" style="fill:rgb(140,170,131); stroke:none;" height="1"
+      /><rect x="873" y="31" width="1" style="fill:rgb(140,170,131); stroke:none;" height="149"
+    /></g
+    ><g style="font-family:sans-serif; font-weight:bold;"
+    ><text x="766" xml:space="preserve" y="58" style="stroke:none;"
+      >T2</text
+      ><image x="844" y="46" width="15" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAYklEQVR4Xs2PWw5A
+EQxEu//F2cLdhx+SS4Xp1ONHTHIiZA4l8krSASYpfHGJ9ppEmGWU4ca2Evp+2SD9
+JWTcQZZFWUPPzctQ1nDZGWtPRrSEMJn+2cPINeYlDyb/E+yC7r1k/CUznLqz88wAAAAASUVORK5CYII=" style="font-weight:normal;" height="16" preserveAspectRatio="none"
+      /><rect x="861" y="135" width="26" style="fill:rgb(104,229,255); stroke:none;" height="26"
+      /><rect x="861" width="26" height="26" y="135" style="fill:none;"
+      /><polygon style="fill:none;" points=" 884 138 884 158 864 148"
+      /><polygon style="stroke:none;" points=" 884 138 884 158 864 148"
+      /><line y2="138" style="fill:none;" x1="864" x2="864" y1="158"
+      /><text x="861" xml:space="preserve" y="134" style="font-weight:normal; stroke:none;"
+      >retData_comm_T2</text
+      ><rect x="861" y="79" width="26" style="fill:rgb(104,229,255); stroke:none;" height="26"
+      /><rect x="861" width="26" height="26" y="79" style="fill:none;"
+      /><polygon style="fill:none;" points=" 864 82 864 102 884 92"
+      /><polygon style="stroke:none;" points=" 864 82 864 102 884 92"
+      /><line y2="82" style="fill:none;" x1="884" x2="884" y1="102"
+      /><text x="861" xml:space="preserve" y="78" style="font-weight:normal; stroke:none;"
+      >data_comm_T2</text
+      ><rect x="798" y="18" width="26" style="fill:rgb(196,166,122); stroke:none;" height="26"
+      /><rect x="798" width="26" height="26" y="18" style="fill:none;"
+      /><polygon style="fill:none;" points=" 801 41 821 41 811 21"
+      /><polygon style="stroke:none;" points=" 801 41 821 41 811 21"
+      /><line y2="21" style="fill:none;" x1="821" x2="801" y1="21"
+      /><text x="798" xml:space="preserve" y="17" style="font-weight:normal; stroke:none;"
+      >startHSM_CPU2</text
+      ><rect x="661" y="84" width="26" style="fill:rgb(104,229,255); stroke:none;" height="26"
+      /><rect x="661" width="26" height="26" y="84" style="fill:none;"
+      /><polygon style="fill:none;" points=" 664 87 664 107 684 97"
+      /><polygon style="stroke:none;" points=" 664 87 664 107 684 97"
+      /><line y2="87" style="fill:none;" x1="684" x2="684" y1="107"
+      /><text x="661" xml:space="preserve" y="83" style="font-weight:normal; stroke:none;"
+      >comm</text
+      ><text x="620" y="97" style="font-style:italic; font-weight:normal; stroke:none;" xml:space="preserve"
+      >comm</text
+      ><line y2="97" style="fill:none;" x1="616" x2="661" y1="97"
+      /><rect x="1022" width="246" height="155" y="31" style="fill:none;"
+    /></g
+    ><g style="fill:rgb(201,243,188); fill-opacity:0.7843; font-family:sans-serif; stroke-opacity:0.7843; stroke:rgb(201,243,188);"
+    ><rect x="1023" width="244" height="153" y="32" style="stroke:none;"
+      /><rect x="1022" y="31" width="1" style="fill:rgb(255,255,255); stroke:none;" height="155"
+      /><rect x="1023" y="31" width="244" style="fill:rgb(255,255,255); stroke:none;" height="1"
+      /><rect x="1023" y="185" width="245" style="fill:rgb(140,170,131); stroke:none;" height="1"
+      /><rect x="1267" y="31" width="1" style="fill:rgb(140,170,131); stroke:none;" height="154"
+    /></g
+    ><g style="font-family:sans-serif; font-weight:bold;"
+    ><text x="1112" xml:space="preserve" y="58" style="stroke:none;"
+      >HSM_CPU2</text
+      ><image x="1238" y="46" width="15" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAYklEQVR4Xs2PWw5A
+EQxEu//F2cLdhx+SS4Xp1ONHTHIiZA4l8krSASYpfHGJ9ppEmGWU4ca2Evp+2SD9
+JWTcQZZFWUPPzctQ1nDZGWtPRrSEMJn+2cPINeYlDyb/E+yC7r1k/CUznLqz88wAAAAASUVORK5CYII=" style="font-weight:normal;" height="16" preserveAspectRatio="none"
+      /><text x="1037" xml:space="preserve" y="85" style="font-weight:normal; stroke:none;"
+      >+ channelIndex = 0 : Natural;</text
+      ><rect x="1009" y="135" width="26" style="fill:rgb(104,229,255); stroke:none;" height="26"
+      /><rect x="1009" width="26" height="26" y="135" style="fill:none;"
+      /><polygon style="fill:none;" points=" 1032 138 1032 158 1012 148"
+      /><polygon style="stroke:none;" points=" 1032 138 1032 158 1012 148"
+      /><line y2="138" style="fill:none;" x1="1012" x2="1012" y1="158"
+      /><text x="1009" xml:space="preserve" y="134" style="font-weight:normal; stroke:none;"
+      >retData_comm_T2</text
+      ><rect x="1009" y="77" width="26" style="fill:rgb(104,229,255); stroke:none;" height="26"
+      /><rect x="1009" width="26" height="26" y="77" style="fill:none;"
+      /><polygon style="fill:none;" points=" 1012 80 1012 100 1032 90"
+      /><polygon style="stroke:none;" points=" 1012 80 1012 100 1032 90"
+      /><line y2="80" style="fill:none;" x1="1032" x2="1032" y1="100"
+      /><text x="1009" xml:space="preserve" y="76" style="font-weight:normal; stroke:none;"
+      >data_comm_T2</text
+      ><rect x="1090" y="18" width="26" style="fill:rgb(196,166,122); stroke:none;" height="26"
+      /><rect x="1090" width="26" height="26" y="18" style="fill:none;"
+      /><polygon style="fill:none;" points=" 1093 21 1113 21 1103 41"
+      /><polygon style="stroke:none;" points=" 1093 21 1113 21 1103 41"
+      /><line y2="41" style="fill:none;" x1="1113" x2="1093" y1="41"
+      /><text x="1090" xml:space="preserve" y="17" style="font-weight:normal; stroke:none;"
+      >startHSM_CPU2</text
+      ><text x="909" y="18" style="font-style:italic; font-weight:normal; stroke:none;" xml:space="preserve"
+      >startHSM_CPU2</text
+      ><line y2="18" style="fill:none;" x1="1103" x2="811" y1="18"
+      /><text x="901" y="91" style="font-style:italic; font-weight:normal; stroke:none;" xml:space="preserve"
+      >data_comm_T2</text
+      ><line y2="92" style="fill:none;" x1="1009" x2="887" y1="90"
+      /><text x="892" y="148" style="font-style:italic; font-weight:normal; stroke:none;" xml:space="preserve"
+      >retData_comm_T2</text
+      ><line y2="148" style="fill:none;" x1="1009" x2="887" y1="148"
+      /><rect x="11" width="248" height="148" y="29" style="fill:none;"
+    /></g
+    ><g style="fill:rgb(201,243,188); fill-opacity:0.7843; font-family:sans-serif; stroke-opacity:0.7843; stroke:rgb(201,243,188);"
+    ><rect x="12" width="246" height="146" y="30" style="stroke:none;"
+      /><rect x="11" y="29" width="1" style="fill:rgb(255,255,255); stroke:none;" height="148"
+      /><rect x="12" y="29" width="246" style="fill:rgb(255,255,255); stroke:none;" height="1"
+      /><rect x="12" y="176" width="247" style="fill:rgb(140,170,131); stroke:none;" height="1"
+      /><rect x="258" y="29" width="1" style="fill:rgb(140,170,131); stroke:none;" height="147"
+    /></g
+    ><g style="font-family:sans-serif; font-weight:bold;"
+    ><text x="102" xml:space="preserve" y="56" style="stroke:none;"
+      >HSM_CPU1</text
+      ><image x="229" y="44" width="15" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAYklEQVR4Xs2PWw5A
+EQxEu//F2cLdhx+SS4Xp1ONHTHIiZA4l8krSASYpfHGJ9ppEmGWU4ca2Evp+2SD9
+JWTcQZZFWUPPzctQ1nDZGWtPRrSEMJn+2cPINeYlDyb/E+yC7r1k/CUznLqz88wAAAAASUVORK5CYII=" style="font-weight:normal;" height="16" preserveAspectRatio="none"
+      /><text x="26" xml:space="preserve" y="83" style="font-weight:normal; stroke:none;"
+      >+ channelIndex = 0 : Natural;</text
+      ><rect x="246" y="121" width="26" style="fill:rgb(104,229,255); stroke:none;" height="26"
+      /><rect x="246" width="26" height="26" y="121" style="fill:none;"
+      /><polygon style="fill:none;" points=" 249 124 249 144 269 134"
+      /><polygon style="stroke:none;" points=" 249 124 249 144 269 134"
+      /><line y2="124" style="fill:none;" x1="269" x2="269" y1="144"
+      /><text x="246" xml:space="preserve" y="120" style="font-weight:normal; stroke:none;"
+      >retData_comm_T1</text
+      ><rect x="246" y="69" width="26" style="fill:rgb(104,229,255); stroke:none;" height="26"
+      /><rect x="246" width="26" height="26" y="69" style="fill:none;"
+      /><polygon style="fill:none;" points=" 269 72 269 92 249 82"
+      /><polygon style="stroke:none;" points=" 269 72 269 92 249 82"
+      /><line y2="72" style="fill:none;" x1="249" x2="249" y1="92"
+      /><text x="246" xml:space="preserve" y="68" style="font-weight:normal; stroke:none;"
+      >data_comm_T1</text
+      ><rect x="73" y="16" width="26" style="fill:rgb(196,166,122); stroke:none;" height="26"
+      /><rect x="73" width="26" height="26" y="16" style="fill:none;"
+      /><polygon style="fill:none;" points=" 76 19 96 19 86 39"
+      /><polygon style="stroke:none;" points=" 76 19 96 19 86 39"
+      /><line y2="39" style="fill:none;" x1="96" x2="76" y1="39"
+      /><text x="73" xml:space="preserve" y="15" style="font-weight:normal; stroke:none;"
+      >startHSM_CPU1</text
+      ><text x="254" y="16" style="font-style:italic; font-weight:normal; stroke:none;" xml:space="preserve"
+      >startHSM_CPU1</text
+      ><line y2="16" style="fill:none;" x1="86" x2="518" y1="16"
+      /><text x="284" y="82" style="font-style:italic; font-weight:normal; stroke:none;" xml:space="preserve"
+      >data_comm_T1</text
+      ><line y2="82" style="fill:none;" x1="272" x2="390" y1="82"
+      /><text x="275" y="133" style="font-style:italic; font-weight:normal; stroke:none;" xml:space="preserve"
+      >retData_comm_T1</text
+      ><line y2="133" style="fill:none;" x1="272" x2="390" y1="134"
+    /></g
+  ></g
+></svg
+>
diff --git a/doc/SysMLSec/sysmlsec_documentation.tex b/doc/SysMLSec/sysmlsec_documentation.tex
index d96662dfe8..4d8a2e5f55 100644
--- a/doc/SysMLSec/sysmlsec_documentation.tex
+++ b/doc/SysMLSec/sysmlsec_documentation.tex
@@ -334,7 +334,7 @@ Channels can be tagged with cryptographic configurations on the Security tab, wi
 
 \begin{figure*}[htbp]
 \centering
-\includegraphics[width=0.7\textwidth]{fig/channelsecurityoptions.png}
+\includegraphics[width=0.7\textwidth]{fig/channelsecurityTab.png}
 \caption{Channel security options dialog window} \label{fig:channelsec}
 \end{figure*}
 
@@ -380,6 +380,14 @@ When the option to add security operators is selected, there are multiple option
 
   In addition, for the operators being added, estimated times to perform encryption, decryption, calculate a MAC, etc, and the overhead, can be manually set in lieu of using the default options. 
 
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.1\textwidth]{build/fv1_t1-svg.pdf}
+\includegraphics[width=0.7\textwidth]{build/fv_auth_check-svg.pdf}
+\includegraphics[width=0.1\textwidth]{build/fv1_t2-svg.pdf}
+\caption{Functional View with authenticity check} \label{fig:fv1AuthCheck}
+\end{figure*}
+
 \begin{figure*}[htbp]
 \centering
 \includegraphics[width=0.2\textwidth]{build/autogen_t1-svg.pdf}
@@ -388,10 +396,11 @@ When the option to add security operators is selected, there are multiple option
 \caption{Functional view with automatically generated security operators to ensure weak authenticity} \label{fig:secfv1}
 \end{figure*}
   
-  For example, using the insecure architecture and functional model from Figure \ref{fig:fv1} and \ref{fig:mapping1}, if the communication channel is marked that it should be authentic, and if we choose to ensure weak authenticity only, then the toolkit generates the functional model shown in Figure \ref{fig:secfv1}. The Message Authentication Code concatenated onto the message can only be calculated with the given key and message, and if T2 detects that they do not match, then it discards the message as it was not an authentic message sent by T1.
+  For example, using the insecure architecture and functional model with authenticity check from Figure \ref{fig:fv1AuthCheck} and \ref{fig:mapping1}, if the communication channel is marked that it should be authentic, and if we choose to ensure weak authenticity only, then the toolkit generates the functional model shown in Figure \ref{fig:secfv1}. The Message Authentication Code concatenated onto the message can only be calculated with the given key and message, and if T2 detects that they do not match, then it discards the message as it was not an authentic message sent by T1.
   
   If instead we chose to add weak and strong authenticity, then the tasks should exchange a nonce to avoid replay attacks, and the functional model in Figure \ref{fig:secfv2} is generated. 
 
+
 \begin{figure*}[htbp]
 \centering
 \includegraphics[width=0.2\textwidth]{build/autogen2_t1-svg.pdf}
@@ -416,7 +425,7 @@ For example, using the model in our example, chose to ensure confidentiality, an
 
 \begin{figure*}[htbp]
 \centering
-\includegraphics[width=0.99\textwidth]{build/hsmfunc-svg.pdf}
+\includegraphics[width=0.99\textwidth]{build/hsm_fv-svg.pdf}
 \caption{Functional Model with added Hardware Security Module Tasks} \label{fig:hsmfunc}
 \end{figure*}
 
@@ -430,8 +439,8 @@ For example, using the model in our example, chose to ensure confidentiality, an
 
 \begin{figure*}[htbp]
 \centering
-\includegraphics[width=0.4\textwidth]{build/hsmt1-svg.pdf}
-\includegraphics[width=0.4\textwidth]{build/hsmact-svg.pdf}
+\includegraphics[width=0.33\textwidth]{build/hsm_ad_t1-svg.pdf}
+\includegraphics[width=0.4\textwidth]{build/hsm_ad_hsm_cpu1-svg.pdf}
 \caption{Modified Activity Diagram of T1 and HSM} \label{fig:hsmt1act}
 \end{figure*}
 
@@ -440,7 +449,7 @@ For example, using the model in our example, chose to ensure confidentiality, an
 
 \subsubsection{Mapping Keys}
 
-With multiple Cryptographic Configurations, it may become tedious to the map all of the keys to memory. Our toolkit therefore can find every Cryptographic Configuration used by a task, and then, depending on the type of the Cryptographic Configuration, map each applicable key to a memory that the task can securely access. For Cryptographic Configurations of type symmetric encryption or MAC, both the sending and receiving task will need to be able to access the key. For asymmetric encryption, however, all the sending tasks will need the public key while only the receiving task will need to access the private key. 
+With multiple Cryptographic Configurations, it may become tedious to map all of the keys to memory. Our toolkit therefore can find every Cryptographic Configuration used by a task, and then, depending on the type of the Cryptographic Configuration, map each applicable key to a memory that the task can securely access. For Cryptographic Configurations of type symmetric encryption or MAC, both the sending and receiving task will need to be able to access the key. For asymmetric encryption, however, all the sending tasks will need the public key while only the receiving task will need to access the private key. 
 
 At every security generation, keys are automatically generated and mapped securely. There is also the option to add keys alone after completing a design by hand.
 
-- 
GitLab