diff --git a/.gitignore b/.gitignore index b0a10d8..c069ed5 100644 --- a/.gitignore +++ b/.gitignore @@ -5,5 +5,4 @@ arxiv-style/*.log arxiv-style/*.blg arxiv-style/*.bbl arxiv-style/*.out -fig/ .DS_Store diff --git a/fig/fig-design-v3.drawio.svg b/fig/fig-design-v3.drawio.svg new file mode 100644 index 0000000..217d293 --- /dev/null +++ b/fig/fig-design-v3.drawio.svg @@ -0,0 +1,1042 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + Synthetic ICS Data + + +
+
+
+
+ + Synthetic ICS Data + +
+
+
+ + + + + + + + + + + + + + +
+
+
+ + Transformer Trend Module + +
+
+
+
+ + Transformer Trend Module + +
+
+
+ + + + + + + +
+
+
+ + + Long-Term Temporal Patterning + + +
+
+
+
+ + Long-Term Temporal Patterning + +
+
+
+ + + + + + + + + + +
+
+
+ + Transformer + +
+
+
+
+ + Transformer + +
+
+
+ + + + + + + + + + +
+
+
+ + + Trend Signal + + +
+
+
+
+ + Trend Signal + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + Continuous Channels + +
+
+
+
+ + Continuous Channels + +
+
+
+ + + + + + + +
+
+
+ + Discrete Channels + +
+
+
+
+ + Discrete Channels + +
+
+
+ + + + + + + +
+
+
+ + + Input ICS Data + + +
+
+
+
+ + Input ICS Data + +
+
+
+ + + + + + + + + + +
+
+
+ + + Realistic & + + +
+ + + Consistent Output + + +
+
+
+
+
+ + Realistic &... + +
+
+
+ + + + + + + + + + + + + +
+
+
+ + Masked Discrete Diffusion + +
+
+
+
+ + Masked Discrete Diffusion + +
+
+
+ + + + + + + +
+
+
+ + + Nominal Reconstruction + + +
+
+
+
+ + Nominal Reconstruction + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + Discrete States + + +
+
+
+
+ + Discrete States + +
+
+
+ + + + + + + +
+
+
+ + + Masked States + + +
+
+
+
+ + Masked States + +
+
+
+ + + + + + + + + + + +
+
+
+ + Type-Aware Decomposition + +
+
+
+
+ + Type-Aware Decomposition + +
+
+
+ + + + + + + +
+
+
+ + + Mechanism-Aligned Routing + + +
+
+
+
+ + Mechanism-Aligned Routing + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ Type1 +
+
+
+
+ + Type1 + +
+
+
+ + + + + + + +
+
+
+ Type2 +
+
+
+
+ + Type2 + +
+
+
+ + + + + + + +
+
+
+ Type3 +
+
+
+
+ + Type3 + +
+
+
+ + + + + + + +
+
+
+ Type4 +
+
+
+
+ + Type4 + +
+
+
+ + + + + + + +
+
+
+ Type5 +
+
+
+
+ + Type5 + +
+
+
+ + + + + + + +
+
+
+ Type6 +
+
+
+
+ + Type6 + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + Residual DDPM + +
+
+
+
+ + Residual DDPM + +
+
+
+ + + + + + + +
+
+
+ + + Stochastic Refinement + + +
+
+
+
+ + Stochastic Refinement + +
+
+
+ + + + + + + +
+
+
+ + + Denoised Residual + + +
+
+
+
+ + Denoised Residual + +
+
+
+ + + + + + + +
+
+
+ + + Noisy Residual + + +
+
+
+
+ + Noisy Residual + +
+
+
+ + + + + + + +
+
+
+ + DDPM + +
+
+
+
+ + DDPM + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + Masked-DDPM: Unified Synthesis for ICS traffic + + +
+
+
+
+ + Masked-DDPM: Unified Synthesis for ICS traffic + +
+
+
+
+ + + + + Text is not SVG - cannot display + + + +
\ No newline at end of file diff --git a/fig/fig-design-v3.png b/fig/fig-design-v3.png new file mode 100644 index 0000000..0fcd15d Binary files /dev/null and b/fig/fig-design-v3.png differ diff --git a/fig/fig-design-v4.drawio.svg b/fig/fig-design-v4.drawio.svg new file mode 100644 index 0000000..d2e6ee0 --- /dev/null +++ b/fig/fig-design-v4.drawio.svg @@ -0,0 +1,1026 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + Synthetic ICS Data + + +
+
+
+
+ + Synthetic ICS Data + +
+
+
+ + + + + + + + + + + + + + +
+
+
+ + Transformer Trend Module + +
+
+
+
+ + Transformer Trend Module + +
+
+
+ + + + + + + +
+
+
+ + + Long-Term Temporal Patterning + + +
+
+
+
+ + Long-Term Temporal Patterning + +
+
+
+ + + + + + + + + + +
+
+
+ + Transformer + +
+
+
+
+ + Transformer + +
+
+
+ + + + + + + + + + +
+
+
+ + + Trend Signal + + +
+
+
+
+ + Trend Signal + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + Continuous Channels + +
+
+
+
+ + Continuous Channels + +
+
+
+ + + + + + + +
+
+
+ + Discrete Channels + +
+
+
+
+ + Discrete Channels + +
+
+
+ + + + + + + +
+
+
+ + + Input ICS Data + + +
+
+
+
+ + Input ICS Data + +
+
+
+ + + + + + + + + + +
+
+
+ + + Realistic & + + +
+ + + Consistent Output + + +
+
+
+
+
+ + Realistic &... + +
+
+
+ + + + + + + + + + + + + +
+
+
+ + Masked Discrete Diffusion + +
+
+
+
+ + Masked Discrete Diffusion + +
+
+
+ + + + + + + +
+
+
+ + + Nominal Reconstruction + + +
+
+
+
+ + Nominal Reconstruction + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + Discrete States + + +
+
+
+
+ + Discrete States + +
+
+
+ + + + + + + +
+
+
+ + + Masked States + + +
+
+
+
+ + Masked States + +
+
+
+ + + + + + + + + + + +
+
+
+ + Type-Aware Decomposition + +
+
+
+
+ + Type-Aware Decomposition + +
+
+
+ + + + + + + +
+
+
+ + + Mechanism-Aligned Routing + + +
+
+
+
+ + Mechanism-Aligned Routing + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ Type1 +
+
+
+
+ + Type1 + +
+
+
+ + + + + + + +
+
+
+ Type2 +
+
+
+
+ + Type2 + +
+
+
+ + + + + + + +
+
+
+ Type3 +
+
+
+
+ + Type3 + +
+
+
+ + + + + + + +
+
+
+ Type4 +
+
+
+
+ + Type4 + +
+
+
+ + + + + + + +
+
+
+ Type5 +
+
+
+
+ + Type5 + +
+
+
+ + + + + + + +
+
+
+ Type6 +
+
+
+
+ + Type6 + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + Residual DDPM + +
+
+
+
+ + Residual DDPM + +
+
+
+ + + + + + + +
+
+
+ + + Stochastic Refinement + + +
+
+
+
+ + Stochastic Refinement + +
+
+
+ + + + + + + +
+
+
+ + + Denoised Residual + + +
+
+
+
+ + Denoised Residual + +
+
+
+ + + + + + + +
+
+
+ + + Noisy Residual + + +
+
+
+
+ + Noisy Residual + +
+
+
+ + + + + + + +
+
+
+ + DDPM + +
+
+
+
+ + DDPM + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + Masked-DDPM: Unified Synthesis for ICS traffic + + +
+
+
+
+ + Masked-DDPM: Unified Synthesis for ICS traffic + +
+
+
+
+ + + + + Text is not SVG - cannot display + + + +
\ No newline at end of file diff --git a/fig/fig-type-aware-v1.drawio.svg b/fig/fig-type-aware-v1.drawio.svg new file mode 100644 index 0000000..e69de29 diff --git a/fig/mask-ddpm-figure.drawio.svg b/fig/mask-ddpm-figure.drawio.svg new file mode 100644 index 0000000..b7523da --- /dev/null +++ b/fig/mask-ddpm-figure.drawio.svg @@ -0,0 +1 @@ +<mxGraphModel dx="1200" dy="800" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="900" math="0" shadow="0"><root><mxCell id="0" /><mxCell id="1" parent="0" /><mxCell id="2" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=2;strokeColor=#4B5563;fillColor=none;" vertex="1" parent="1"><mxGeometry as="geometry" x="120" y="50" width="1400" height="520" /></mxCell><mxCell id="3" value="&lt;b&gt;Mask-DDPM: Unified Synthesis for ICS Telemetry&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=22;fontStyle=1;" vertex="1" parent="1"><mxGeometry as="geometry" x="400" y="600" width="900" height="40" /></mxCell><mxCell id="4" value="&lt;b&gt;Input ICS Data&lt;/b&gt;" style="text;html=1;align=right;verticalAlign=middle;fontSize=20;" vertex="1" parent="1"><mxGeometry as="geometry" x="0" y="110" width="110" height="30" /></mxCell><mxCell id="5" value="&lt;i&gt;Continuous&lt;br/&gt;Channels X&lt;/i&gt;" style="text;html=1;align=right;verticalAlign=middle;fontSize=16;" vertex="1" parent="1"><mxGeometry as="geometry" x="0" y="160" width="110" height="40" /></mxCell><mxCell id="6" value="&lt;i&gt;Discrete&lt;br/&gt;Channels Y&lt;/i&gt;" style="text;html=1;align=right;verticalAlign=middle;fontSize=16;" vertex="1" parent="1"><mxGeometry as="geometry" x="0" y="245" width="110" height="40" /></mxCell><mxCell id="7" value="&lt;i&gt;Continuous&lt;br/&gt;Channels X&lt;/i&gt;" style="text;html=1;align=right;verticalAlign=middle;fontSize=16;" vertex="1" parent="1"><mxGeometry as="geometry" x="0" y="335" width="110" height="40" /></mxCell><mxCell id="8" value="&lt;i&gt;Discrete&lt;br/&gt;Channels Y&lt;/i&gt;" style="text;html=1;align=right;verticalAlign=middle;fontSize=16;" vertex="1" parent="1"><mxGeometry as="geometry" x="0" y="420" width="110" height="40" /></mxCell><mxCell id="9" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#F3F4F6;strokeColor=#9CA3AF;" vertex="1" parent="1"><mxGeometry as="geometry" x="130" y="155" width="90" height="30" /></mxCell><mxCell id="10" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#F3F4F6;strokeColor=#9CA3AF;" vertex="1" parent="1"><mxGeometry as="geometry" x="130" y="245" width="90" height="30" /></mxCell><mxCell id="11" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#F3F4F6;strokeColor=#9CA3AF;" vertex="1" parent="1"><mxGeometry as="geometry" x="130" y="335" width="90" height="30" /></mxCell><mxCell id="12" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#F3F4F6;strokeColor=#9CA3AF;" vertex="1" parent="1"><mxGeometry as="geometry" x="130" y="425" width="90" height="30" /></mxCell><mxCell id="13" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#F9D5D3;strokeColor=#6B7280;strokeWidth=2;" vertex="1" parent="2"><mxGeometry as="geometry" x="140" y="30" width="290" height="440" /></mxCell><mxCell id="14" value="Transformer Trend Module" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1F4D8B;strokeColor=#1F4D8B;fontColor=#FFFFFF;fontSize=16;fontStyle=1;align=center;verticalAlign=middle;" vertex="1" parent="13"><mxGeometry as="geometry" x="10" y="10" width="270" height="40" /></mxCell><mxCell id="15" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#9CA3AF;" vertex="1" parent="13"><mxGeometry as="geometry" x="20" y="70" width="250" height="250" /></mxCell><mxCell id="16" value="&lt;b&gt;Transformer&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;fontSize=14;" vertex="1" parent="13"><mxGeometry as="geometry" x="20" y="330" width="250" height="30" /></mxCell><mxCell id="17" value="&lt;i&gt;Trend Signal S&lt;/i&gt;" style="text;html=1;align=center;verticalAlign=middle;fontSize=14;" vertex="1" parent="13"><mxGeometry as="geometry" x="20" y="362" width="250" height="30" /></mxCell><mxCell id="18" value="Long-Term Temporal&lt;br/&gt;Patterning" style="text;html=1;align=center;verticalAlign=middle;fontSize=14;" vertex="1" parent="13"><mxGeometry as="geometry" x="20" y="394" width="250" height="30" /></mxCell><mxCell id="19" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#F8E7C6;strokeColor=#6B7280;strokeWidth=2;" vertex="1" parent="2"><mxGeometry as="geometry" x="450" y="30" width="290" height="440" /></mxCell><mxCell id="20" value="Residual DDPM" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1F4D8B;strokeColor=#1F4D8B;fontColor=#FFFFFF;fontSize=16;fontStyle=1;align=center;verticalAlign=middle;" vertex="1" parent="19"><mxGeometry as="geometry" x="10" y="10" width="270" height="40" /></mxCell><mxCell id="21" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#9CA3AF;" vertex="1" parent="19"><mxGeometry as="geometry" x="20" y="70" width="250" height="250" /></mxCell><mxCell id="22" value="&lt;i&gt;Noisy Residual R&lt;sub&gt;s&lt;/sub&gt;&lt;/i&gt;" style="text;html=1;align=center;verticalAlign=middle;fontSize=14;" vertex="1" parent="19"><mxGeometry as="geometry" x="20" y="330" width="250" height="30" /></mxCell><mxCell id="23" value="&lt;i&gt;Denoised Residual Ř&lt;/i&gt;" style="text;html=1;align=center;verticalAlign=middle;fontSize=14;" vertex="1" parent="19"><mxGeometry as="geometry" x="20" y="362" width="250" height="30" /></mxCell><mxCell id="24" value="Stochastic Refinement" style="text;html=1;align=center;verticalAlign=middle;fontSize=14;" vertex="1" parent="19"><mxGeometry as="geometry" x="20" y="394" width="250" height="30" /></mxCell><mxCell id="25" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#DFF1D5;strokeColor=#6B7280;strokeWidth=2;" vertex="1" parent="2"><mxGeometry as="geometry" x="760" y="30" width="290" height="440" /></mxCell><mxCell id="26" value="Masked Discrete Diffusion" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1F4D8B;strokeColor=#1F4D8B;fontColor=#FFFFFF;fontSize=16;fontStyle=1;align=center;verticalAlign=middle;" vertex="1" parent="25"><mxGeometry as="geometry" x="10" y="10" width="270" height="40" /></mxCell><mxCell id="27" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#9CA3AF;" vertex="1" parent="25"><mxGeometry as="geometry" x="20" y="70" width="250" height="250" /></mxCell><mxCell id="28" value="&lt;b&gt;MASK&lt;/b&gt; | ..." style="text;html=1;align=center;verticalAlign=middle;fontSize=14;" vertex="1" parent="25"><mxGeometry as="geometry" x="20" y="330" width="250" height="30" /></mxCell><mxCell id="29" value="&lt;i&gt;Discrete States Ŷ&lt;/i&gt;" style="text;html=1;align=center;verticalAlign=middle;fontSize=14;" vertex="1" parent="25"><mxGeometry as="geometry" x="20" y="362" width="250" height="30" /></mxCell><mxCell id="30" value="Categorical Reconstruction" style="text;html=1;align=center;verticalAlign=middle;fontSize=14;" vertex="1" parent="25"><mxGeometry as="geometry" x="20" y="394" width="250" height="30" /></mxCell><mxCell id="31" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#D6E6F7;strokeColor=#6B7280;strokeWidth=2;" vertex="1" parent="2"><mxGeometry as="geometry" x="1070" y="30" width="290" height="440" /></mxCell><mxCell id="32" value="Type-Aware Decomposition" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1F4D8B;strokeColor=#1F4D8B;fontColor=#FFFFFF;fontSize=16;fontStyle=1;align=center;verticalAlign=middle;" vertex="1" parent="31"><mxGeometry as="geometry" x="10" y="10" width="270" height="40" /></mxCell><mxCell id="33" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#9CA3AF;" vertex="1" parent="31"><mxGeometry as="geometry" x="20" y="70" width="250" height="250" /></mxCell><mxCell id="34" value="Type 1..6 routing" style="text;html=1;align=center;verticalAlign=middle;fontSize=14;" vertex="1" parent="31"><mxGeometry as="geometry" x="20" y="330" width="250" height="30" /></mxCell><mxCell id="35" value="Mechanism-Aligned&lt;br/&gt;Routing" style="text;html=1;align=center;verticalAlign=middle;fontSize=14;" vertex="1" parent="31"><mxGeometry as="geometry" x="20" y="362" width="250" height="30" /></mxCell><mxCell id="36" value="" style="endArrow=block;html=1;strokeWidth=4;strokeColor=#1F4D8B;" edge="1" parent="2" source="13" target="19"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="37" value="" style="endArrow=block;html=1;strokeWidth=4;strokeColor=#1F4D8B;" edge="1" parent="2" source="19" target="25"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="38" value="" style="endArrow=block;html=1;strokeWidth=4;strokeColor=#1F4D8B;" edge="1" parent="2" source="25" target="31"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="39" value="&lt;b&gt;Synthetic ICS Data&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;Realistic &amp;amp;&lt;br/&gt;Consistent Output" style="text;html=1;align=center;verticalAlign=middle;fontSize=16;" vertex="1" parent="1"><mxGeometry as="geometry" x="1490" y="210" width="160" height="160" /></mxCell><mxCell id="40" value="" style="shape=cube;whiteSpace=wrap;html=1;size=20;fillColor=#FFFFFF;strokeColor=#6B7280;strokeWidth=2;" vertex="1" parent="1"><mxGeometry as="geometry" x="1500" y="140" width="140" height="120" /></mxCell><mxCell id="41" value="" style="endArrow=block;html=1;strokeWidth=4;strokeColor=#1F4D8B;" edge="1" parent="2" source="31" target="40"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="42" value="" style="endArrow=block;html=1;strokeWidth=3;strokeColor=#6B7280;rounded=1;" edge="1" parent="1" source="40" target="4"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="1640" y="60" /><mxPoint x="60" y="60" /><mxPoint x="60" y="120" /></Array></mxGeometry></mxCell></root></mxGraphModel> \ No newline at end of file