add pattern IoC to results html

This commit is contained in:
relikd
2021-02-20 21:44:45 +01:00
parent db9e5d0dda
commit 9e31defce3
31 changed files with 2908 additions and 1462 deletions

View File

@@ -14,6 +14,7 @@
<a href="#double-rune">Double-Rune</a>
<a href="#ioc">IoC</a>
<a href="#mod-ioc">Mod-IoC</a>
<a href="#pattern-ioc">Pattern-IoC</a>
<a href="#running-ioc">Running-IoC</a>
<a href="#concealment">Concealment</a>
</nav>
@@ -116,7 +117,7 @@
<h2 id="mod-ioc">Modulo IoC</h2>
<p>
This sections explores the idea of multiple alphabets alternating.
This section explores the idea of multiple alphabet-sets alternating.
For example, have two or three Vigenere ciphers that switch after each rune.
A Vigenere with key length 3 (ABC) plus another Vigenere with key length 5 (DEFGH) will generate a pattern that only repeats after 30 runes (ADBECFAGBHCDAEBFCGAHBDCEAFBGCH).
So the first group will represent every 2nd rune starting with the first, and the second group will contain every 2nd rune starting with the second.
@@ -139,6 +140,22 @@
<p class="red">Mod-IoC is disabled on solved pages</p>
<h2 id="pattern-ioc">Pattern IoC</h2>
<p>
This section looks at different ways to extend a short key into a longer one. The result of the expansion is still a plain Vigenere-like encryption but the key is so long that we would not be able to find it with IoC analysis. However, we can use the fact that the same letters appear again and so there are less alphabets than the key length.
</p>
<p>
The two mirror pattern variants simply flip the key in reverse and append it to the original key. For example, the key ABCD will become ABCDDCBA (Variant A) or ABCDCB (Variant B). Both keys will repeat after that. Notice how the first variant will produce double letters (DD and AA) and the second not.
</p>
<p>
The shift pattern simply offsets the key by one and appends this permutation to the key. For example, ABCD becomes ABCDBCDACDABDABC. Each key length n (here 4) has n - 1 shifts. The example before was shift = 1. The other two are ABCDCDAB (shift=2) and ABCDDABCCDABBCDA (shift=3). And again, like with the mirror pattern, we greatly increase the key length without increasing the alphabet count.
</p>
<p>
<b>Note:</b> while the column in the mirror pattern represents the key length, the column in the shift pattern is <b>not</b> the key length. Instead, the key length is given in the row title, e.g., “ᚠ.5”. The column header represents the key shift variation.
</p>
<p class="red">Pattern-IoC is disabled on solved pages</p>
<h2 id="running-ioc">Running IoC</h2>
<p>
This section perfoms a running IoC with a window size on the whole text.
@@ -176,167 +193,170 @@
<h2 id="concealment">Concealment Analysis</h2>
<p>
Concealment ciphers hide text in plain sight. Here we look at every n-th word, as well as every first and last letter of each word. That is performed on all possible veriations. The numbers inside the parenthesis are the IoC analysis on the selected text as high / norm.
</p>
<h3>Pick every 1. word</h3>
<dl>
<dt>Words (IoC: 1.857):</dt>
<dt>Words (IoC: 1.857 / 0.917):</dt>
<dd>
R NGRAMW JIHEIIAI MAEYW EAAAEN YEP JAEAED IXDISEO NGLREO THAEIA DMAENG EOAE JI EOAIAI EOIPEO YI DMAENGHICOEI EAEMC THAEIAA EOAIAY IXSIAEIMDI THAEIAA CFY CAE MAEEO ICEEO AEA DLRWI YEP JAEAED AEA YI NIPPROEI DAEMEOREMIC NGEYEM IEYIA YI NGAEACP AEA YIEA MIANJIAP EAAEA RHH EP PRDAIC </dd>
<dt>Pick every first letter (IoC: 1.728):</dt>
<dt>Pick every first letter (IoC: 1.728 / 0.955):</dt>
<dd class="runelist">
<div>R</div><div>NG</div><div>J</div><div>M</div><div>EA</div><div>Y</div><div>J</div><div>I</div><div>NG</div><div>TH</div><div>D</div><div>EO</div><div>J</div><div>EO</div><div>EO</div><div>Y</div><div>D</div><div>EA</div><div>TH</div><div>EO</div><div>I</div><div>TH</div><div>C</div><div>C</div><div>M</div><div>I</div><div>AE</div><div>D</div><div>Y</div><div>J</div><div>AE</div><div>Y</div><div>N</div><div>D</div><div>NG</div><div>I</div><div>Y</div><div>NG</div><div>AE</div><div>Y</div><div>M</div><div>EA</div><div>R</div><div>E</div><div>P</div></dd>
<dt>Pick every last letter (IoC: 2.929):</dt>
<dt>Pick every last letter (IoC: 2.929 / 0.000):</dt>
<dd class="runelist">
<div>R</div><div>W</div><div>I</div><div>W</div><div>N</div><div>P</div><div>D</div><div>EO</div><div>EO</div><div>IA</div><div>NG</div><div>AE</div><div>I</div><div>I</div><div>EO</div><div>I</div><div>I</div><div>C</div><div>A</div><div>Y</div><div>I</div><div>A</div><div>Y</div><div>AE</div><div>EO</div><div>EO</div><div>A</div><div>I</div><div>P</div><div>D</div><div>A</div><div>I</div><div>I</div><div>C</div><div>M</div><div>A</div><div>I</div><div>P</div><div>A</div><div>A</div><div>P</div><div>A</div><div>H</div><div>P</div><div>C</div></dd>
</dl>
<h3>Pick every 2. word</h3>
<dl>
<h4>Start with 1. word</h4>
<dt>Words (IoC: 1.788):</dt>
<dt>Words (IoC: 1.788 / 0.986):</dt>
<dd>
R JIHEIIAI EAAAEN JAEAED NGLREO DMAENG JI EOIPEO DMAENGHICOEI THAEIAA IXSIAEIMDI CFY MAEEO AEA YEP AEA NIPPROEI NGEYEM YI AEA MIANJIAP RHH PRDAIC </dd>
<dt>Pick every first letter (IoC: 1.261):</dt>
<dt>Pick every first letter (IoC: 1.261 / 0.487):</dt>
<dd class="runelist">
<div>R</div><div>J</div><div>EA</div><div>J</div><div>NG</div><div>D</div><div>J</div><div>EO</div><div>D</div><div>TH</div><div>I</div><div>C</div><div>M</div><div>AE</div><div>Y</div><div>AE</div><div>N</div><div>NG</div><div>Y</div><div>AE</div><div>M</div><div>R</div><div>P</div></dd>
<dt>Pick every last letter (IoC: 2.866):</dt>
<dt>Pick every last letter (IoC: 2.866 / 0.000):</dt>
<dd class="runelist">
<div>R</div><div>I</div><div>N</div><div>D</div><div>EO</div><div>NG</div><div>I</div><div>EO</div><div>I</div><div>A</div><div>I</div><div>Y</div><div>EO</div><div>A</div><div>P</div><div>A</div><div>I</div><div>M</div><div>I</div><div>A</div><div>P</div><div>H</div><div>C</div></dd>
<h4>Start with 2. word</h4>
<dt>Words (IoC: 1.817):</dt>
<dt>Words (IoC: 1.817 / 0.957):</dt>
<dd>
NGRAMW MAEYW YEP IXDISEO THAEIA EOAE EOAIAI YI EAEMC EOAIAY THAEIAA CAE ICEEO DLRWI JAEAED YI DAEMEOREMIC IEYIA NGAEACP YIEA EAAEA EP </dd>
<dt>Pick every first letter (IoC: 2.009):</dt>
<dt>Pick every first letter (IoC: 2.009 / 0.765):</dt>
<dd class="runelist">
<div>NG</div><div>M</div><div>Y</div><div>I</div><div>TH</div><div>EO</div><div>EO</div><div>Y</div><div>EA</div><div>EO</div><div>TH</div><div>C</div><div>I</div><div>D</div><div>J</div><div>Y</div><div>D</div><div>I</div><div>NG</div><div>Y</div><div>EA</div><div>E</div></dd>
<dt>Pick every last letter (IoC: 2.385):</dt>
<dt>Pick every last letter (IoC: 2.385 / 0.388):</dt>
<dd class="runelist">
<div>W</div><div>W</div><div>P</div><div>EO</div><div>IA</div><div>AE</div><div>I</div><div>I</div><div>C</div><div>Y</div><div>A</div><div>AE</div><div>EO</div><div>I</div><div>D</div><div>I</div><div>C</div><div>A</div><div>P</div><div>A</div><div>A</div><div>P</div></dd>
</dl>
<h3>Pick every 3. word</h3>
<dl>
<h4>Start with 1. word</h4>
<dt>Words (IoC: 1.946):</dt>
<dt>Words (IoC: 1.946 / 0.827):</dt>
<dd>
R MAEYW JAEAED THAEIA JI YI THAEIAA THAEIAA MAEEO DLRWI AEA DAEMEOREMIC YI YIEA RHH </dd>
<dt>Pick every first letter (IoC: 2.762):</dt>
<dt>Pick every first letter (IoC: 2.762 / 0.012):</dt>
<dd class="runelist">
<div>R</div><div>M</div><div>J</div><div>TH</div><div>J</div><div>Y</div><div>TH</div><div>TH</div><div>M</div><div>D</div><div>AE</div><div>D</div><div>Y</div><div>Y</div><div>R</div></dd>
<dt>Pick every last letter (IoC: 3.314):</dt>
<dt>Pick every last letter (IoC: 3.314 / 0.000):</dt>
<dd class="runelist">
<div>R</div><div>W</div><div>D</div><div>IA</div><div>I</div><div>I</div><div>A</div><div>A</div><div>EO</div><div>I</div><div>A</div><div>C</div><div>I</div><div>A</div><div>H</div></dd>
<h4>Start with 2. word</h4>
<dt>Words (IoC: 1.495):</dt>
<dt>Words (IoC: 1.495 / 0.722):</dt>
<dd>
NGRAMW EAAAEN IXDISEO DMAENG EOAIAI DMAENGHICOEI EOAIAY CFY ICEEO YEP YI NGEYEM NGAEACP MIANJIAP EP </dd>
<dt>Pick every first letter (IoC: 1.933):</dt>
<dt>Pick every first letter (IoC: 1.933 / 0.840):</dt>
<dd class="runelist">
<div>NG</div><div>EA</div><div>I</div><div>D</div><div>EO</div><div>D</div><div>EO</div><div>C</div><div>I</div><div>Y</div><div>Y</div><div>NG</div><div>NG</div><div>M</div><div>E</div></dd>
<dt>Pick every last letter (IoC: 3.038):</dt>
<dt>Pick every last letter (IoC: 3.038 / 0.000):</dt>
<dd class="runelist">
<div>W</div><div>N</div><div>EO</div><div>NG</div><div>I</div><div>I</div><div>Y</div><div>Y</div><div>EO</div><div>P</div><div>I</div><div>M</div><div>P</div><div>P</div><div>P</div></dd>
<h4>Start with 3. word</h4>
<dt>Words (IoC: 2.133):</dt>
<dt>Words (IoC: 2.133 / 0.641):</dt>
<dd>
JIHEIIAI YEP NGLREO EOAE EOIPEO EAEMC IXSIAEIMDI CAE AEA JAEAED NIPPROEI IEYIA AEA EAAEA PRDAIC </dd>
<dt>Pick every first letter (IoC: 1.381):</dt>
<dt>Pick every first letter (IoC: 1.381 / 0.607):</dt>
<dd class="runelist">
<div>J</div><div>Y</div><div>NG</div><div>EO</div><div>EO</div><div>EA</div><div>I</div><div>C</div><div>AE</div><div>J</div><div>N</div><div>I</div><div>AE</div><div>EA</div><div>P</div></dd>
<dt>Pick every last letter (IoC: 3.314):</dt>
<dt>Pick every last letter (IoC: 3.314 / 0.000):</dt>
<dd class="runelist">
<div>I</div><div>P</div><div>EO</div><div>AE</div><div>EO</div><div>C</div><div>I</div><div>AE</div><div>A</div><div>D</div><div>I</div><div>A</div><div>A</div><div>A</div><div>C</div></dd>
</dl>
<h3>Pick every 4. word</h3>
<dl>
<h4>Start with 1. word</h4>
<dt>Words (IoC: 1.930):</dt>
<dt>Words (IoC: 1.930 / 0.844):</dt>
<dd>
R EAAAEN NGLREO JI DMAENGHICOEI IXSIAEIMDI MAEEO YEP NIPPROEI YI MIANJIAP PRDAIC </dd>
<dt>Pick every first letter (IoC: 0.879):</dt>
<dt>Pick every first letter (IoC: 0.879 / 0.105):</dt>
<dd class="runelist">
<div>R</div><div>EA</div><div>NG</div><div>J</div><div>D</div><div>I</div><div>M</div><div>Y</div><div>N</div><div>Y</div><div>M</div><div>P</div></dd>
<dt>Pick every last letter (IoC: 5.273):</dt>
<dt>Pick every last letter (IoC: 5.273 / 0.000):</dt>
<dd class="runelist">
<div>R</div><div>N</div><div>EO</div><div>I</div><div>I</div><div>I</div><div>EO</div><div>P</div><div>I</div><div>I</div><div>P</div><div>C</div></dd>
<h4>Start with 2. word</h4>
<dt>Words (IoC: 1.645):</dt>
<dt>Words (IoC: 1.645 / 0.872):</dt>
<dd>
NGRAMW YEP THAEIA EOAIAI EAEMC THAEIAA ICEEO JAEAED DAEMEOREMIC NGAEACP EAAEA </dd>
<dt>Pick every first letter (IoC: 1.582):</dt>
<dt>Pick every first letter (IoC: 1.582 / 0.808):</dt>
<dd class="runelist">
<div>NG</div><div>Y</div><div>TH</div><div>EO</div><div>EA</div><div>TH</div><div>I</div><div>J</div><div>D</div><div>NG</div><div>EA</div></dd>
<dt>Pick every last letter (IoC: 1.582):</dt>
<dt>Pick every last letter (IoC: 1.582 / 0.808):</dt>
<dd class="runelist">
<div>W</div><div>P</div><div>IA</div><div>I</div><div>C</div><div>A</div><div>EO</div><div>D</div><div>C</div><div>P</div><div>A</div></dd>
<h4>Start with 3. word</h4>
<dt>Words (IoC: 1.710):</dt>
<dt>Words (IoC: 1.710 / 0.937):</dt>
<dd>
JIHEIIAI JAEAED DMAENG EOIPEO THAEIAA CFY AEA AEA NGEYEM AEA RHH </dd>
<dt>Pick every first letter (IoC: 2.109):</dt>
<dt>Pick every first letter (IoC: 2.109 / 0.665):</dt>
<dd class="runelist">
<div>J</div><div>J</div><div>D</div><div>EO</div><div>TH</div><div>C</div><div>AE</div><div>AE</div><div>NG</div><div>AE</div><div>R</div></dd>
<dt>Pick every last letter (IoC: 3.164):</dt>
<dt>Pick every last letter (IoC: 3.164 / 0.000):</dt>
<dd class="runelist">
<div>I</div><div>D</div><div>NG</div><div>EO</div><div>A</div><div>Y</div><div>A</div><div>A</div><div>M</div><div>A</div><div>H</div></dd>
<h4>Start with 4. word</h4>
<dt>Words (IoC: 2.351):</dt>
<dt>Words (IoC: 2.351 / 0.422):</dt>
<dd>
MAEYW IXDISEO EOAE YI EOAIAY CAE DLRWI YI IEYIA YIEA EP </dd>
<dt>Pick every first letter (IoC: 2.636):</dt>
<dt>Pick every first letter (IoC: 2.636 / 0.137):</dt>
<dd class="runelist">
<div>M</div><div>I</div><div>EO</div><div>Y</div><div>EO</div><div>C</div><div>D</div><div>Y</div><div>I</div><div>Y</div><div>E</div></dd>
<dt>Pick every last letter (IoC: 2.636):</dt>
<dt>Pick every last letter (IoC: 2.636 / 0.137):</dt>
<dd class="runelist">
<div>W</div><div>EO</div><div>AE</div><div>I</div><div>Y</div><div>AE</div><div>I</div><div>I</div><div>A</div><div>A</div><div>P</div></dd>
</dl>
<h3>Pick every 5. word</h3>
<dl>
<h4>Start with 1. word</h4>
<dt>Words (IoC: 2.351):</dt>
<dt>Words (IoC: 2.351 / 0.422):</dt>
<dd>
R YEP DMAENG YI IXSIAEIMDI ICEEO AEA IEYIA MIANJIAP </dd>
<dt>Pick every first letter (IoC: 3.222):</dt>
<dt>Pick every first letter (IoC: 3.222 / 0.000):</dt>
<dd class="runelist">
<div>R</div><div>Y</div><div>D</div><div>Y</div><div>I</div><div>I</div><div>AE</div><div>I</div><div>M</div></dd>
<dt>Pick every last letter (IoC: 2.417):</dt>
<dt>Pick every last letter (IoC: 2.417 / 0.357):</dt>
<dd class="runelist">
<div>R</div><div>P</div><div>NG</div><div>I</div><div>I</div><div>EO</div><div>A</div><div>A</div><div>P</div></dd>
<h4>Start with 2. word</h4>
<dt>Words (IoC: 2.032):</dt>
<dt>Words (IoC: 2.032 / 0.741):</dt>
<dd>
NGRAMW JAEAED EOAE DMAENGHICOEI THAEIAA AEA YI YI EAAEA </dd>
<dt>Pick every first letter (IoC: 0.806):</dt>
<dt>Pick every first letter (IoC: 0.806 / 0.032):</dt>
<dd class="runelist">
<div>NG</div><div>J</div><div>EO</div><div>D</div><div>TH</div><div>AE</div><div>Y</div><div>Y</div><div>EA</div></dd>
<dt>Pick every last letter (IoC: 4.833):</dt>
<dt>Pick every last letter (IoC: 4.833 / 0.000):</dt>
<dd class="runelist">
<div>W</div><div>D</div><div>AE</div><div>I</div><div>A</div><div>A</div><div>I</div><div>I</div><div>A</div></dd>
<h4>Start with 3. word</h4>
<dt>Words (IoC: 1.718):</dt>
<dt>Words (IoC: 1.718 / 0.944):</dt>
<dd>
JIHEIIAI IXDISEO JI EAEMC CFY DLRWI NIPPROEI NGAEACP RHH </dd>
<dt>Pick every first letter (IoC: 0.806):</dt>
<dt>Pick every first letter (IoC: 0.806 / 0.032):</dt>
<dd class="runelist">
<div>J</div><div>I</div><div>J</div><div>EA</div><div>C</div><div>D</div><div>N</div><div>NG</div><div>R</div></dd>
<dt>Pick every last letter (IoC: 4.833):</dt>
<dt>Pick every last letter (IoC: 4.833 / 0.000):</dt>
<dd class="runelist">
<div>I</div><div>EO</div><div>I</div><div>C</div><div>Y</div><div>I</div><div>I</div><div>P</div><div>H</div></dd>
<h4>Start with 4. word</h4>
<dt>Words (IoC: 1.447):</dt>
<dt>Words (IoC: 1.447 / 0.674):</dt>
<dd>
MAEYW NGLREO EOAIAI THAEIAA CAE YEP DAEMEOREMIC AEA EP </dd>
<dt>Pick every first letter (IoC: 0.000):</dt>
<dt>Pick every first letter (IoC: 0.000 / 0.000):</dt>
<dd class="runelist">
<div>M</div><div>NG</div><div>EO</div><div>TH</div><div>C</div><div>Y</div><div>D</div><div>AE</div><div>E</div></dd>
<dt>Pick every last letter (IoC: 1.611):</dt>
<dt>Pick every last letter (IoC: 1.611 / 0.837):</dt>
<dd class="runelist">
<div>W</div><div>EO</div><div>I</div><div>A</div><div>AE</div><div>P</div><div>C</div><div>A</div><div>P</div></dd>
<h4>Start with 5. word</h4>
<dt>Words (IoC: 1.524):</dt>
<dt>Words (IoC: 1.524 / 0.750):</dt>
<dd>
EAAAEN THAEIA EOIPEO EOAIAY MAEEO JAEAED NGEYEM YIEA PRDAIC </dd>
<dt>Pick every first letter (IoC: 0.806):</dt>
<dt>Pick every first letter (IoC: 0.806 / 0.032):</dt>
<dd class="runelist">
<div>EA</div><div>TH</div><div>EO</div><div>EO</div><div>M</div><div>J</div><div>NG</div><div>Y</div><div>P</div></dd>
<dt>Pick every last letter (IoC: 0.806):</dt>
<dt>Pick every last letter (IoC: 0.806 / 0.032):</dt>
<dd class="runelist">
<div>N</div><div>IA</div><div>EO</div><div>Y</div><div>EO</div><div>D</div><div>M</div><div>A</div><div>C</div></dd>
</dl>