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="<b>Mask-DDPM: Unified Synthesis for ICS Telemetry</b>" 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="<b>Input ICS Data</b>" 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="<i>Continuous<br/>Channels X</i>" 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="<i>Discrete<br/>Channels Y</i>" 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="<i>Continuous<br/>Channels X</i>" 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="<i>Discrete<br/>Channels Y</i>" 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="<b>Transformer</b>" 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="<i>Trend Signal S</i>" 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<br/>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="<i>Noisy Residual R<sub>s</sub></i>" 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="<i>Denoised Residual Ř</i>" 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="<b>MASK</b> | ..." 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="<i>Discrete States Ŷ</i>" 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<br/>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="<b>Synthetic ICS Data</b><br/><br/>Realistic &amp;<br/>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