{"id":85726,"date":"2026-04-28T19:39:54","date_gmt":"2026-04-28T19:39:54","guid":{"rendered":"https:\/\/th.webtestsdev.com\/brushbeater-store\/?p=85726"},"modified":"2026-04-28T19:40:44","modified_gmt":"2026-04-28T19:40:44","slug":"clandestine-communications-one-time-pads","status":"publish","type":"post","link":"https:\/\/th.webtestsdev.com\/brushbeater-store\/clandestine-communications-one-time-pads\/","title":{"rendered":"Clandestine Communications: One Time Pads"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"85726\" class=\"elementor elementor-85726\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-364faa4e elementor-section-boxed elementor-section-height-default elementor-section-height-default sc_fly_static\" data-id=\"364faa4e\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-extended\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-73e0cb0c sc_content_align_inherit sc_layouts_column_icons_position_left sc_fly_static\" data-id=\"73e0cb0c\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-31f7eccd sc_fly_static elementor-widget elementor-widget-text-editor\" data-id=\"31f7eccd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"article-template__content page-width page-width--narrow rte scroll-trigger animate--slide-in\"><p><em>Originally appears on American Partisan and in\u00a0<a href=\"https:\/\/brushbeater.store\/products\/the-guerrilla-dispatch-vol-1\" target=\"_blank\" rel=\"noopener noreferrer\">The Guerrilla Dispatch, Volume 1<\/a>. One Time Pad is the most robust form of encryption used for clandestine purposes as described in\u00a0<a href=\"https:\/\/brushbeater.store\/products\/the-guerrillas-guide-to-the-baofeng-radio-field-version\" target=\"_blank\" rel=\"noopener noreferrer\">The Guerrilla&#8217;s Guide to the Baofeng Radio<\/a>\u00a0for sending instructions to groups over a region.\u00a0<a href=\"https:\/\/brushbeater.store\/products\/adl-1-one-time-pad-printer\" target=\"_blank\" rel=\"noopener noreferrer\">The best tool on the market for OTP key generation is our OTP Generator available here<\/a>. -NCS<\/em><\/p><p>Given the current climate and direction of the United States, I believe all American Partisan readers would agree that knowing clandestine communication methods is a useful arrow to have in our quiver.<\/p><p>One such method for encrypting clandestine communications is the One Time Pad, or OTP. An OTP is a method of encryption that uses basic addition and subtraction to create a coded message, and is simply a table of numbers grouped into five digits (seen in Figure 1). Both the person sending the message and receiving the message have the pad, but no one else does. This means that the method is particularly strong against \u201cMan in the Middle\u201d attacks because even if the message is intercepted by enemy SIGINT operations, it is nearly impossible to decode unless you have the pad. It is called \u201cone time pad\u201d because once that pad is used once, it is never used again. Thus, even if a single pad is captured, it does not compromise the entire communication chain.\u00a0<strong><u>NOTE: DO NOT USE THIS SPECIFIC TRAINING PAD FOR ACTUAL SECURE MESSAGES.<\/u><\/strong><\/p><div id=\"attachment_5118\" class=\"wp-caption alignnone\"><img fetchpriority=\"high\" decoding=\"async\" class=\"size-full wp-image-5118 jetpack-lazy-image jetpack-lazy-image--handled\" src=\"https:\/\/i0.wp.com\/www.americanpartisan.org\/wp-content\/uploads\/2019\/04\/OTP-1.png?resize=543%2C438&amp;ssl=1\" alt=\"\" width=\"543\" height=\"438\" aria-describedby=\"caption-attachment-5118\" data-recalc-dims=\"1\" data-lazy-loaded=\"1\" \/><p id=\"caption-attachment-5118\" class=\"wp-caption-text\">Figure 1: A sample One Time Pad (OTP) we will use for this article.<\/p><\/div><p><strong>Pad Creation<\/strong><\/p><div id=\"attachment_5119\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"size-full wp-image-5119 jetpack-lazy-image jetpack-lazy-image--handled\" src=\"https:\/\/i0.wp.com\/www.americanpartisan.org\/wp-content\/uploads\/2019\/04\/OTP-2.png?resize=367%2C261&amp;ssl=1\" alt=\"\" width=\"367\" height=\"261\" aria-describedby=\"caption-attachment-5119\" data-recalc-dims=\"1\" data-lazy-loaded=\"1\" \/><p id=\"caption-attachment-5119\" class=\"wp-caption-text\">Figure 2: A letter\/symbol-to-numeric conversion table.<\/p><\/div><p>There are several different methods you can use to generate a pad. One method, which is \u201cold school\u201d, involves a typewriter or notebook and five (or more) 10-sided game dice. You would roll the dice, get your numbers, and record the numbers. We\u00a0<strong><u>DO NOT<\/u><\/strong>\u00a0recommend that you type the pad on a computer if it can be helped because the computer may store some or all of the file on it, thereby introducing risk and potential compromise into your pad. If you absolutely cannot avoid using a computer, the computer should be either air-gapped (which only lessens your avenues of compromise, not eliminates them entirely) or you should use a temporary operation system like TAILs and run it off a flash drive (previous AP articles on the TAILs OS can be found\u00a0<a href=\"https:\/\/www.americanpartisan.org\/2018\/10\/protecting-your-internet-browsing-with-tails\/\">here<\/a>\u00a0and\u00a0<a href=\"https:\/\/www.americanpartisan.org\/2018\/10\/tails-part-2-setting-up-persistence\/\">here<\/a>).<\/p><p><img decoding=\"async\" class=\"alignnone size-large wp-image-5122 jetpack-lazy-image jetpack-lazy-image--handled\" src=\"https:\/\/i0.wp.com\/www.americanpartisan.org\/wp-content\/uploads\/2019\/04\/IMG_1897-Copy-e1554056519518-768x1024.jpg?resize=768%2C1024&amp;ssl=1\" alt=\"\" width=\"768\" height=\"1024\" data-recalc-dims=\"1\" data-lazy-loaded=\"1\" \/><\/p><p>The second method is to use an OTP generator such as the AmRROM<sup>[1]<\/sup>\u00a0Dark Labs ADL-1 OTP Generator. My colleague NC Scout did a review of the system\u00a0<a href=\"https:\/\/www.americanpartisan.org\/2018\/05\/amrron-dark-labs-adl-1-otp-generator\/\">here<\/a>, and I also own a system and can personally vouch that the generator makes pad creation infinitely faster and easier. The ADL-1 creates everything you need for a One Time Pad \u2013 the pad itself, a letter\/symbol-to-numeric conversion table (Figure 2 shows an example of this), and even instructions on how to encode and decode messages. \u00a0Once the pad is created, generating a new pad will destroy the old pad forever. Even if you do nothing, the pad automatically deletes itself after five minutes of inactivity, ensure the pad is secure.<\/p><p>The important thing is that the person(s) who will be decoding the One Time Pad should have the pad and the letter\/symbol-to-numeric conversion table in their possession at the time the message needs to be sent. You don\u2019t want to be in a position where you need to transmit a secure message and have to find a way to somehow get the receiving person or station a pad AND a message at the same time (because the message is then not secure since the key to decode it is with it). This is why it is important to set up these systems and processes in place\u00a0<strong><u>before you need them<\/u><\/strong>.<\/p><p><strong>Message Encoding<\/strong><\/p><p>Assume that you and your counterpart in a different county are planning to meet up to discuss some current events in your AO. You have already exchanged the necessary materials to use a One Time Pad, and you now want to utilize that pad to inform him of the location and time of the meeting. Your message reads:<\/p><p>Meet at the old church at five pm Tues<\/p><p>The first step is to convert those letters to numbers using the conversion table in Figure 2. So \u201cm\u201d = 79, \u201ce\u201d = 2, \u201ct\u201d = 6, \u201cspace\u201d = 0, etc.<\/p><p>M e e t\u00a0\u00a0 _ \u00a0\u00a0a t \u00a0\u00a0\u00a0_ \u00a0\u00a0\u00a0t h e \u00a0\u00a0\u00a0\u00a0_ \u00a0\u00a0\u00a0\u00a0o l d \u00a0\u00a0\u00a0\u00a0_ \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0c h u r c h \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0_ \u00a0\u00a0a t \u00a0_ \u00a0\u00a0\u00a0\u00a0f i v e\u00a0\u00a0\u00a0\u00a0 _ \u00a0\u00a0\u00a0p m \u00a0\u00a0_ \u00a0\u00a0\u00a0t u e s \u00a0\u00a0\u00a0_<\/p><p>79 2 2 6\u00a0 0\u00a0 1 6\u00a0\u00a0 0\u00a0\u00a0\u00a0 6 75 2\u00a0 0\u00a0\u00a0 5 78 72\u00a0 0\u00a0 71 75 85 82 71 75\u00a0 0\u00a0 1 6\u00a0 0\u00a0 73 3 85 2\u00a0 0\u00a0 80 79\u00a0 0\u00a0 6 84 2 83 0<\/p><p>We then group those numbers into five digit groupings and line them up under our pad (in Figure 1) starting\u00a0<strong><u>with the second grouping in the pad<\/u><\/strong>. The first five digit group stays the same as that is denoting which pad should be used for decoding the message.<\/p><p>32244 52687 97412 86319 11011 59341 73741 29248 65123 56878 19652 15821<\/p><p>\u2013 \u2013 \u2013 \u2013 \u2013\u00a0 79226 01606 75205 78720 71758 58271 75016 07338 52080 79068 42830<\/p><p>Notice how we didn\u2019t use the entire pad?\u00a0<strong><u>It doesn\u2019t matter. The rest of the pad needs to be trashed even though we used only a fraction of it for this message.<\/u><\/strong>\u00a0The pad \u201c32244\u201d will never again be used to send a message. Does this mean you need have a lot of pads created? Absolutely, which is why the ADL-1 is so awesome. You can spend an hour and generate hundreds of pads for use. But, I digress.<\/p><p>Below, Line 1 is the message to be encoded, Line 2 is the pad, and Line 3 is the encoded message that you would transmit to your receiver. To encode the message, subtract the number on the bottom (the pad) from the number on top (the plaintext message). This makes sense when subtracting a 5 from a 7. \u201cBut how do I subtract 6 from 2?\u201d you ask? In this case, add a \u201c1\u201d in front of the 2 to make it a 12 and now subtract 6 from 12. So, the math looks like this:<\/p><p>Line 1: \u2013 \u2013 \u2013 \u2013 \u2013 79226 01606 75205 78720 71758 58271 75016 07338 52080 79068 42830<\/p><p>Line 2: 32244 52687 97412 86319 11011 59341 73741 29248 65123 56878 19652 15821<\/p><p>Line 3: 32244 27649 14294 99996 67719 22417 85530 56878 42215 06212 60416 37019<\/p><p>Verify the message was encoded correct by decoding the message yourself (which we will walk through in the next section). If it is, then send the encoded message to whoever the recipient is.<\/p><p>REMEMBER: Line 1 is the message to be encrypted, Line 2 is the OTP Pad, and Line 3 is what is ACTUALLY TRANSMITTED.<\/p><p><strong>Message Decoding<\/strong><\/p><p>You have just received the message from your counterpart dictating where the next meeting will be. Time to decode the message! We start by looking at the first five digit grouping because that tells us which pad to use. Then, just as in encoding, we line the pad underneath the message.\u00a0<strong>Since we subtracted to encode, we now must add to decode.\u00a0<\/strong>If two numbers add up to a two digit number (6 + 6 = 12), just drop the leading \u201c1\u201d and keep the 6 \u2013 just as we added the \u201c1\u201d in order to perform subtraction when we encoded the message. Below, Line 1 is the encoded message you received, Line 2 is the pad, and Line 3 is the decoded message.<\/p><p>Line 1: 32244 27649 14294 99996 67719 22417 85530 56878 42215 06212 60416 37019<\/p><p>Line 2: 32244 52687 97412 86319 11011 59341 73741 29248 65123 56878 19652 15821<\/p><p>Line 3: \u2013 \u2013 \u2013 \u2013 \u2013 79226 01606 75205 78720 71758 58271 75016 07338 52080 79068 42830<\/p><p>We can now reference those numbers to our conversion table and get out message.<\/p><p>79 2 2 6\u00a0 0\u00a0 1 6\u00a0\u00a0 0\u00a0\u00a0\u00a0 6 75 2\u00a0 0\u00a0\u00a0 5 78 72\u00a0 0\u00a0 71 75 85 82 71 75\u00a0 0\u00a0 1 6\u00a0 0\u00a0 73 3 85 2\u00a0 0\u00a0 80 79\u00a0 0\u00a0 6 84 2 83 0<\/p><p>M e e t\u00a0\u00a0 _\u00a0\u00a0 a t\u00a0\u00a0\u00a0 _ \u00a0\u00a0\u00a0t h e\u00a0\u00a0\u00a0\u00a0 _\u00a0\u00a0\u00a0\u00a0 o l d\u00a0\u00a0\u00a0\u00a0 _\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 c h u r c h\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 _\u00a0\u00a0 a t\u00a0 _\u00a0\u00a0\u00a0\u00a0 f i v e\u00a0\u00a0\u00a0\u00a0 _\u00a0\u00a0\u00a0 p m\u00a0\u00a0 _\u00a0\u00a0\u00a0 t u e s\u00a0\u00a0\u00a0 _<\/p><p><strong>Final Thoughts and Conclusions<\/strong><\/p><p><strong>\u00a0<\/strong>There are ways to even strengthen your One Time Pad encryptions, such as utilizing Brevity Matrices. Again, my colleague NC Scout has you covered on his blog\u00a0<a href=\"https:\/\/brushbeater.wordpress.com\/2018\/04\/27\/the-brevity-matrix\/\">here<\/a>\u00a0on what a Brevity Matrix is and how to use one. Better yet, take his Advanced RTO course and get hands on \u201cmeatspace training\u201d on the topic as well as other methods of clandestine communications (<a href=\"https:\/\/brushbeater.wordpress.com\/training-calendar\/\">training calendar here<\/a>). Here is a great\u00a0<a href=\"https:\/\/brushbeater.wordpress.com\/2018\/11\/01\/advanced-rto-course-student-review\/\">After Action Report<\/a>\u00a0from my friend JohnyMac on the class (we took the class together, and I highly recommend it). You can also utilize encrypted flash drives to pass the encoded messages from person to person. Using a free program such as VeraCrypt can be a powerful tool for securing messages and files. Chad \u201cChainsaw\u201d Sawyer did a fantastic article for AP on VeraCrypt that can be found\u00a0<a href=\"https:\/\/www.americanpartisan.org\/2018\/11\/how-to-use-encrypted-usb-memory-sticks\/\">here<\/a>\u00a0and walks you through how to use it. Finally, you can use steganography to encode the message in plain sight! What is steganography? Stay tuned for my next article, because I will lay out what it is and how to use it.<\/p><p><strong><u>You have all of the tools you need to produce clandestine communications at your fingertips, and it all can be had for free! You just need to practice with it and set it up BEOFRE YOU NEED IT.<\/u><\/strong>\u00a0You absolutely will make mistakes, and that is okay \u2013 I still make mistakes on OTPs due to lapses in concentrations or simply adding\/subtracting wrong. This is why we practice!<\/p><p>Just imagine if someone was able to intercept that encrypted flash drive. They would first have to break the encryption on the flash drive. If they somehow did that, they would need the One Time Pad to even get the decoded message. Then, on top of that, they would need the Brevity Matrix to decode the code words and phrases used. That is a triple layer of protection (quadruple if using steganography) that, depending on the sensitivity of your message, may well be worth its\u2019 weight in gold.<\/p><\/div><div class=\"article-template__back element-margin-top center scroll-trigger animate--slide-in\">\u00a0<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Originally appears on American Partisan and in\u00a0The Guerrilla Dispatch, Volume 1. One Time Pad is the most robust form of encryption used for clandestine purposes as described in\u00a0The Guerrilla&#8217;s Guide&hellip;<\/p>\n","protected":false},"author":1,"featured_media":85728,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[200],"tags":[],"class_list":["post-85726","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-standard"],"_links":{"self":[{"href":"https:\/\/th.webtestsdev.com\/brushbeater-store\/wp-json\/wp\/v2\/posts\/85726","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/th.webtestsdev.com\/brushbeater-store\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/th.webtestsdev.com\/brushbeater-store\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/th.webtestsdev.com\/brushbeater-store\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/th.webtestsdev.com\/brushbeater-store\/wp-json\/wp\/v2\/comments?post=85726"}],"version-history":[{"count":4,"href":"https:\/\/th.webtestsdev.com\/brushbeater-store\/wp-json\/wp\/v2\/posts\/85726\/revisions"}],"predecessor-version":[{"id":85731,"href":"https:\/\/th.webtestsdev.com\/brushbeater-store\/wp-json\/wp\/v2\/posts\/85726\/revisions\/85731"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/th.webtestsdev.com\/brushbeater-store\/wp-json\/wp\/v2\/media\/85728"}],"wp:attachment":[{"href":"https:\/\/th.webtestsdev.com\/brushbeater-store\/wp-json\/wp\/v2\/media?parent=85726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/th.webtestsdev.com\/brushbeater-store\/wp-json\/wp\/v2\/categories?post=85726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/th.webtestsdev.com\/brushbeater-store\/wp-json\/wp\/v2\/tags?post=85726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}