Korean Cryptography

Hangul, a script for Korean created in the fifteenth century, is not amenable to substitution cipher. Possible options are: 1. separate enciphering for vowels and consonants, 2. enciphering of morphemic blocks as a whole, 3. enciphering of C-V groups and final consonants, and 4. breaking down morphemic blocks for enciphering element by element. (Use of codebooks is another matter. Once the plaintext is encoded in figures or the like, any enciphering scheme is applicable.) Of these four options, the option 1. is the only way to encipher Hangul with Hangul.

I learned that the options 1., 3., and 4. were actually used by patriots during the Japanese colonial period (Yoon Shin-young & Park Yeon-soo (2019), Jeong (2021), both citing Lee Eun-young (2017)). (The encoding of Hangul in the international character set today is similar to option 2. An instance of option 3 is given in another article.)

Patriot Ciphers

The first of the various codes (ciphers) used by the patriots discovered by the Japanese was from March 1919, in the midst of the March First Movement demanding independence from Japanese rule.

Two main types of ciphers were: splitting into consonants and vowels to be enciphered separately (option 4) and substitution in Hangul elements after splitting into consonants and vowels (option 1).

Substitution by Elements

Jeong (2021) presents a Japanese report dated 13 November 1919, which demonstrates three ciphers with the plaintext 결사대간다 (meaning "The Suicide Corps goes.").

(i) 1×4+4, 7, 3+8, 1+2, 3
[*1(ㄱ)x4(ㅕ)+4(ㄹ), 7(사), 3(다)+8(ㅣ), 1(가)+2(ㄴ), 3(다)]

In this old type (i), three separate tables are provided for consonants, vowels, and "consonant+A" combinations. (A is by far the most frequent vowel in Korean.) Given 1x4+4, for example, Korean readers will know the first "4" should be looked up in the vowels table and the second "4" should be looked up in the consonants table.

(ii) 14+4, 71, 31+8, 11+2, 31
[*14( ㄱㅕ)+4(ㄹ), 71(ㅅㅏ), 31(ㄷㅏ)+8(ㅣ), 11(ㄱㅏ)+2(ㄴ), 31(ㄷㅏ)]

With the combination table abandoned, the correspondence between Hangul elements and figures is more straightforward. A variant scheme gives "14+4, 710, 310+8, 11+2, 31".

(iii) 119471631681162316 (telegraphic code)
[*1(ㄱ)19(ㅕ)4(ㄹ)7(ㅅ)16(ㅏ)3(ㄷ)16(ㅏ)8(ㅣ)1(ㄱ)16(ㅏ)2(ㄴ)3(ㄷ)16(ㅏ)]

The table includes numbers 1-25. So whenever "1" or "2" is encountered in the ciphertext, the reader must decide whether it stands on its own or it is the first digit of 10-25.

Enciphering Hangul with Hangul

The following is an example of enciphering Hangul with Hangul. (The plaintext means "the people of Korea".) In the narrative of Jeong (2021), these were devised when Japanese surveillance intensified.


W-K Korean Code

The scheme of breaking down Hangul's morphemic block into consonants and vowels, which are to be separately replaced with figures, was also adopted in a code created for the joint operation (Wikipedia) between the Office of Strategic Services of the United States (OSS) and the Korean Liberation Army during the last stage of WWII.

The code, titled the "W-K Korean Code Table" in English (the title in Korean reads "Hangul Code Table"), was created for radio communication between the Korean Liberation Army and the US military. The work was done in one month by Kim Woo-jeon, who was 23 at the time but was called "General Kim" with respect by the Americans (Yoon Shin-young & Park Yeon-soo (2019)).

It represents Hangul morphemic blocks of the type C-V (consonant-vowel) by four digits: two for the consonant and another two for the vowel. When the Hangul block is of the type C-V-C, the final consonant (strictly speaking, it is called batchim and is not the same as the initial consonant) is represented by another four-digit group, with the first two digits "00". (The idea is similar to the option 3. mentioned at the beginning.) Numerals (0051-0065), special symbols such as punctuations (0071-0089), and Roman letters (0111-0136) are also assigned four-digit numbers.


Besides this Table (B), explicit combinations of C-V are given in Table (A).


Codes

The W-K Korean Code further included groups for frequently used expressions such as "Wait" (7731), "Very Urgent" (7750), and "Busy now" (7716) (Yoon Shin-young & Park Yeon-soo (2019); see also Kim (1995) p.386).

Superencipherment

Random assignment of row/column numbers should already give some security, but Kim (1995) illustrates superencipherment with a random number table (p.385). To encipher 간다:

Random numbers from the table (K): 3914 1701 0822
Plaintext encoded in W-K Code (P): 1130(가)0012(ㄴ) 1330(다)
To-be-transmitted code groups (C): 2884 1799 9592

The superencipherment is done with subtraction. As with the Beaufort cipher, this allows the same procedure to be applied in enciphering and deciphering (C=K-P, P=K-C).

Left in Archives

The W-K Code was never put into operation because Japan surrendered in August 1945. The code was kept in the US National Archives and was declassified only in 1988.

"W-K" in the name is sometimes described as coming from Clarence Weems (Kim (1995) p.387, Lee Eun-young (n.d.)), US Air Force captain who helped its creation, but Kim Woo-jeon claims in an interview that "W" stands for his middle name and that Weems arrived only when the code was almost complete (Yoon Shin-young & Park Yeon-soo (2019)).

North Korean Ciphers in the 1950s

When Japan surrendered, Korea was divided into the Soviet-occupied north and the US-occupied south, which led to the establishment of the Republic of Korea (South Korea) and the Democratic People's Republic of Korea (North Korea) in 1948.

The following are ciphers of North Korea from 1950, taken from John Milmoa (2002), #1 Code Break Boy, of which I learned from Torbjörn Andersson from Sweden. As with the W-K Code, elements constituting Hangul blocks are individually mapped to figures.


Encoding Tables with Words

It is quite common in Western ciphers that figure groups cover some frequent words besides letters in the alphabet. One "Cipher Table No.6202" (제 6202호 암호표) employs three-digit figures (two- or one-digit row number + one-digit column number) to represent Hangul elements, syllables, Arabic figures, and apparently common words (One-time Pad). (Again, I learned of this table from Torbjörn Andersson.) Somehow, 2, 7, and 0 are used for one-digit row numbers, while 1, 3, 4, 5, 6, 8, and 9 are used in the first digit of two-digit row number.

In one example in the accompanying instructions, code numbers 141 108 30 115 139 123 197 154 are regrouped into units of five digits: 14110 83011 51391 23197 15400 (the last two zeros are padding). The five-digit group was transmitted after superencipherment by a random number with addition without carry (e.g., 3+8=1). (Of course, the example in the manual does not match the specific Cipher Table 6202.)

Encoding Hangul for Communication

When telegraphy was introduced in Korea in the late nineteenth century, the text to be transmitted had to be rendered in Chinese characters, which were to be encoded into four-digit groups by using a codebook (漢電). Even after WWII, it appears a telegraph codebook with similar content was used, in view of an edition adapted for use by those who could not read Chinese characters (Korean Telegraphic Code Book, with characters arranged by sounds in English alphabetic order according to the McCune-Reischauer system of transliteration) (see another article in Japanese).

In 1888, Morse code for Korean characters (國文字母號碼打法) was introduced (電報章程), which assigned Morse code for consonants and vowels separately (Encyclopedia of Korean Culture, Korea Heritage Service, Digital Book, a blog, a blog). So, after all, representing Hangul characters by elements was a natural choice from the first.

Various schemes based on this approach were developed for 8-bit computers during the early days of the personal computer era. When 16-bit computers became common in the 1990s, double-byte (16-bit) encoding of Hangul blocks (as opposed to encoding element by element) was introduced, though only the selected most widely used characters were represented because of the restriction for compatibility with the international standard as well as the need to include Chinese characters. With the advent of the new international standard, Unicode, 16-bit encoding of the whole 11172 Hangul characters became possible. (Hwang, Jinsang (2005) 5.2, 5.3, Wikipedia)

References

Yoon Shin-young & Park Yeon-soo (2019), "'Mission Complete': The Hangul Code for US-Korea Operations Developed in Just One Month", DoongA Science.

金祐銓 (1995) [Kim (1995)], "韓國光復軍 O.S.S. 特攻作戰用 한글암호표 W-K KOREAN CODE TABLE (A)(B)", 韓国独立運動史研究 (online)

정인열[Jeong In-yeol](2021), "[독립운동 애국지사, 그들은 달랐다] 암호로 독립전쟁의 말 길(言路) 뚫다" [[Independence Movement Patriots, They Were Different] Clearing a Path for Words in the Independence War through Codes] (毎日新聞)

Lee Eun-young [李恩英] (2017), "한국 독립운동과 암호" [Korean Independence Movement and Cryptography] (National Library of Korea) (I have not seen this.)

Lee Eun-young (n.d.), "불후의 광복군" [Immortal Liberation Army] (National Memorial of the Korean Provisional Government)

"One-time Pad", Cipher Machines and Cryptology

Hwang, Jinsang (2005), The Social Shaping of ICTs Standards: A Case of National Coded Character Set Standards Controversy in Korea, University of Edinburgh

©2026 S.Tomokiyo
First posted on 23 July 2026. This article is encoded in UTF-8. Last modified on 23 July 2026.
Articles on Historical Cryptography
inserted by FC2 system