7. SAS-RGM: Random Group Mapping
by: saaiqSAS
Last Updated: 27/2/2025
The SAS-RGM (Saaiq Abdulla Saeed's Random Group Mapping) Algorithm represents an input character's base string
(i.e., base2, base10, base16, base64) in terms of characters within a randomly shuffled character set
(Dynamic Key). It achieves this by mapping each base unit to a subset of the original character set
and selecting a random character from the assigned subset. By default, the SAS-RGM supports base2, base16, and
base64 encoding formats.
Example 7.1: SAS-RGM with base2 (s2)
Charset: {a, j, g, o, p, r, k, s, l, t, m, h} (length 12)
Data: A
1. Since base2 has two units (1, 0) divide the charset into two subsets via a deterministic method (by default "1234"/"Round Robin" method is used)
and map them to each unit.
0 → {a, g, p, k, l, m} (length 6)
1 → {j, o, r, s, t, h} (length 6)
2. Convert the data 'A' to its base2 value - 1000001
3. Substitute each bit with a randomly selected character from the corresponding subset - sgmpkgo
Output: sgmpkgo
The SAS-ROS Cipher cannot process objects that are not part of the Dynamic Key. However, when providing
text to the SAS-RCS, the text may often contain ext-chars. In SAS-RCS, the RGM algorithm is used to overcome
this limitation by representing any ext-chars in terms of characters from the Dynamic Key.