1. A non-transitory computer-readable medium on which is stored a computer program for encoding data, the computer program comprising instructions which, upon being executed, cause a computing device to perform a process of: receiving an input keyword string; removing superfluous characters in the input keyword string which are not in a pre-approved character set to thereby form a truncated keyword string; removing duplicate characters in the truncated keyword string to form a validated keyword; comparing the validated keyword to the pre-approved character set and forming a subset of missing characters which are characters appearing in the pre-approved character set and not appearing in the validated keyword; forming a cipher string by sequencing the characters of the validated keyword with the characters of the subset of missing characters; forming a cipher grid by forming a matrix having a first number of columns and a second number of rows; placing one character of the cipher string sequentially into each column and row position; receiving clear text; removing any character in the clear text which is not a character in the pre-approved character set; developing an initial number sequence to represent the characters of the clear text by locating each character in the clear text in the cipher grid and replacing the character with an initial number of the grid position where the character was located, wherein the initial number of each grid position is unique; and generating an encoded number sequence to represent the characters of the clear text by modifying the initial number sequence, wherein said generating step includes evaluating the initial number sequence in pairs, and modifying a pair using a first modification rule if the pair is located in a same column of the cipher grid, and modifying pairs not in a same column using a different modification rule or rules.