Skip to main content

How it works

1

Decoding

The ASCII distribution chart will use decoded ciphertext content for charting the underlying bytes of data. UTF-8, UTF-16, and UTF-32 will be converted to a byte array, and the bytes will be evaluated.
2

Ciphertext Settings

ASCII distribution takes into consideration the settings for each ciphertext. These settings currently include:
  • Ignore whitespace
  • Ignore punctuation
  • Ignore casing
  • Genericize text
This works by decoding the ciphertext and using the number that the byte represents for each byte in the sequence.
3

Frequency Calculations

After all of the above steps are performed, the frequency calculations are executed and mapped to the distribution chart.

ASCII Distribution Settings

Display range

The following options are given to adjust the display range of the chart. This can help focus on the relevant parts of the chart:
  • ASCII: range of 0-127. This is the standard ASCII table.
  • Extended (Default): 0-255. This is the “extended” ASCII table (latin1).
  • Input range: only displays data starting from the lowest charted byte and ending at the highest charted byte.

Count vs. Percentage

The y-axis can be toggled to use either a count or a percentage measurement.

Count

The count option will chart the byte frequencies in terms of raw count, and how many times they appear in the ciphertext.

Percentage

The percentage option will chart the byte frequencies in terms of raw count divided by total byte count.

Practical Application

ASCII distribution analysis can be leveraged to:
  • Discover if a given stream of bytes has been shifted up or down along the ASCII table.
  • Determine if two or more ciphertexts follow similar character distribution.

Caveats

  • Use of this tool with UTF-8, UTF-16, and UTF-32 will produce mixed results, as these encodings do not use single bytes to represent characters.