Dvorak encoding

From HandWiki

Dvorak encoding is a type of encoding based on the differences in layout of a QWERTY keyboard and a Dvorak keyboard. There are two main variations: One is achieved by typing in the Dvorak layout on a QWERTY keyboard, and the other is similarly achieved by typing in the QWERTY layout on a Dvorak keyboard. This effectively makes Dvorak encoding into a monoalphabetic substitution cipher like ROT13 and the Caesar Cipher, since each one character translates to one other character in a consistent pattern.

Several layers of Dvorak encoding may be added on top of each other for a variance of the translation table, which adds an obfuscating effect. The one where the Dvorak layout is used on a QWERTY keyboard can be added to the one where a QWERTY layout is used on a Dvorak keyboard, since they are not each other's opposites in terms of decoding. When decoding, the correct order of the severally applied translation tables must happen in the correct order. If encoding or decoding in one direction (for example, from Dvorak to QWERTY), it takes only 210 layers of encoding for the original Dvorak string to be encoded back to itself.[1]

Dvorak encoding, like other monoalphabetic encryption ciphers, is a very simple encoding and provides a very weak level of security. It may be useful in combination with other encodings. The security involved is in no way comparable to modern encryption algorithms which advocate security, and the advantages with this encoding can as such be summarised to encompass:

  • Dvorak encoding is an unavoidable consequence of typing on a non-Dvorak keyboard using the Dvorak layout, for instance when using a software driver to compensate for the lack of rerouting of signals in the keyboard. This is the most common practice because it doesn't require a purchase of a special Dvorak keyboard.
  • Dvorak encoding can be typed real-time by anyone proficient with the Dvorak keyboard layout, allowing for very fast encoding by hand.
  • Dvorak encoding may make it harder for physically present surveillance to find out what the user is typing since it happens very fast. In some cases, it can even be hard for a physical keylogger to probably guess what is being written, but since most keyloggers save the logged data for later retrieval and analysis, the original cryptographic weakness of the encoding applies.

Variations in the use of left- and right-hand Dvorak keyboard layouts also provide an additional subset of encodings. The left and right variants are slightly better because the number keys are changed as well as the character keys – in this respect, the left-hand Dvorak encoding changes the most keys. Notably, the a and m keys never change in the default Dvorak keyboard layout.

Conversion table

Here is the translation from Qwerty to Dvorak (U.S. Simplified, Standard). Ordering is based on a US 104 Key keyboard from left to right, top row to bottom row, then shifted keys.

Qwerty: `1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>?
Dvorak: `1234567890[]',.pyfgcrl/=\aoeuidhtns-;qjkxbmwvz~!@#$%^&*(){}"<>PYFGCRL?+|AOEUIDHTNS_:QJKXBMWVZ

Here are two simplified tables, ordered nearly-alphabetically and so the top one can be used in a regular expression pattern class (between brackets []).

Qwerty: ][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ;',./_+{}:"<>?=-
Dvorak: =/axje.uidchtnmbrl'poygk,qf;AXJE>UIDCHTNMBRL"POYGK<QF:s-wvz{}?+S_WVZ][

and

Dvorak: ][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ;',./_+{}:"<>?=-
Qwerty: =-anihdyujgcvpmlsrxo;kf.,bt/ANIHDYUJGCVPMLSRXO:KF><BT?zqwe["}_+ZQWE{]'

Note that the digits 0-9, the letters amAM, and the symbols `~!@#$%^&*()\| are the same for both Qwerty and Dvorak Standard layouts. Symmetric pairs that convert the same in either direction include: ] and =, w and ,(comma), W and <. There is a cycle of 15 characters starting with B and of 14 characters starting with C. The reason text returns to its original after 210 conversions in the same direction is that 210 is the lowest common multiple of the cycle lengths 1, 2, 14, and 15.

References

  1. "Dvorak Fun". Angela Gong. 2011-07-01. Archived from the original on October 2, 2012. https://web.archive.org/web/20121002043542/http://www.its.caltech.edu/~agong/dvorak.html. Retrieved 2011-07-15. 

External links

  • dv - an open source command-line utility program for converting to and from 'Dvorak Encoding' written in C (programming language)