New communications book for the library

The “Multinational Capability Development Campaign” is a follow-on to the Multinational Experiment (MNE) series initiated by United States Joint Forces Command in 2001. It is designed to develop and introduce new capabilities to enhance the coalition force’s operational effectiveness in joint, interagency, multinational, and coalition operations. While it maintains the foundational blocks that made the MNE series successful, MCDC incorporates significant changes in scope, mission, and governance that improve responsiveness, agility, and relevance. 

Their handbook :”Military Strategic Communications in Coalition Operations” gives insight into strategic communications at the Joint Taskforce level.    While the material is a bit bureaucratic for the small team, the information in it is useful for understanding communications organizations at the high level.

From the handbook:

This handbook is intended for use by commanders and their staff at the operational Joint Task Force
(JTF) level, but could be used at any level as a reference. The purpose of the publication is to describe
the fundamental operational aspects of Strategic Communication (StratCom) in the military, and
propose guidance for the implementation of StratCom in support of a deployed JTF.
The primary audience of this handbook comprises the JTF Command Group and HQ Special Staff; the
members of the StratCom staff element(s); the Intelligence staff; the Operations staff; the Plans staff;
the Information Operations (Info Ops) staff and Public Affairs Officers (PAOs) at all levels.
Additional audiences include: personnel involved in the UN Integrated Missions Planning Process or
similar processes at the inter-governmental or strategic-political level; decision-makers, planners and
analysts at the military-strategic level; the operational-level Civil-Military Cooperation (CIMIC) staff;
staff members involved in liaison and Joint Military Commission (JMC) activities; and related staff and
commanders at the Component Command (CC) level.
Chapter 7 – Military Strategic Communication in a Nutshell – is intended to provide a concise first
overview of the subject for anyone not (yet) familiar with or not directly involved in the execution of
StratCom tasks.2
It should also be read by the StratCom staff to derive incentives for discussions with,
and education and training of non-StratCom personnel, as required.

Updated version of DRYAD generator

A “Bombe” early computer, used to break the German Enigma code

After I released the DRYAD generator, I received  few reports that it would generate the same output every time.    This is not good, even for training.   Work, family, and life put my programming efforts on the back burner for a while.   When I finally got back to it, I discovered that I committed an amateur programming mistake. 

I forgot to seed the random generator

Computers are “deterministic” machines.   That means that every action has a predictable action, or that the actions are “determined” by the programming.   That is a good thing because computers would not be very useful if their output changed at random.   However for generating cryptographic materials you need good randomness.   In order to create the appearance of randomness computers use a “Pseudo Random Number Generator” (PRNG).   A PRNG basically takes a number as input called the “seed”, and then runs it through a complicated series of mathematical equations that gives you a result that seems random, with no correlation to the input seed.   For example, a seed of “1” might yield a result of “72542” while a seed of “2” might result in “17”.

My DRYAD bug

I forgot to add a line defining a seed, so most likely it would default to “0”
resulting in the same DRYAD page being generated every time the program was run.

The Seed is the key

In order to get pseudo randomness that does not repeat, many programming classes teach using a value of time as the random seed.   Computers keep time by counting the number of seconds since some predetermined date/time reference (called an “epoch”)
Since real time does not repeat I.E. it will only be 12:01 PM on January the 1st, 2017 once, using it as a seed guarantees that our seed is never repeated.   
This is what I have added to the 1.01 version of the DRYAD generator.
Link HERE!

While it is pseudo random, it is still not good enough

While this is unpredictable enough for video games and entertainment, it sucks for real cryptography.   For a single line on a DRYAD sheet, there are 403,291,461,126,605,635,584,000,000 possible combinations.   That is over 403 Septillion combinations.   However there are only just over 35 million seconds in a year.   If you know the formula a given crypto uses, and you know it uses “time” as the seed, then you can run the formula and simply increment the seed, starting at the earliest possible time the computer was used.   A modern computer can test years of “time” based seed in a few minutes, leaving a searchable database of every possible DRYAD sheet that could be generated in a given year.   Not very secure by a determined adversary.

This is why the current version of the DRYAD generator should be limited to training purposes ONLY!

I hope to have an improved version later that will solve the “seed” problem.
An ideal crypto-secure seed would come from a very large unpredictable source.   Government grade high level crypto use special devices that use an “entropy” source.
“Entropy” is defined as “lack of order or predictability.”  

Imagine a very sensitive thermometer that can accurately read to 1/1000 of a degree.   If that thermometer is in a computer case, it will measure the fluctuations of temperature inside.      The temperature is affected by ambient room temperature, how hard the CPU and graphics cards are running, fan speed, etc.   The temperature can fluctuate by as much as twenty degrees.   twenty degrees doesn’t sound like a lot, a fluctuation between 100.0001 and 100.9999 degrees overs a much larger range of unpredictability. 

Government certified entropy devices have been designed AND tested to insure that they are truly entropic (unpredictable) and evenly distributed. (if they generate a number between 1 and 10, a sample of a million tests should have roughly equal quantities of each value.)   

Because of the value of entropic seeds in generating random numbers for cryptography, most modern computer operating systems now have “entropy pools” to be used in seeding PRNGs.   These entropy pools combine mouse movements, keyboard timings, temperatures, hard drive seek times, and other unpredictable sources to populate the pool.

The next version of the DRYAD generator

I hope to include strong entropy and a better PRNG for the next version of the DRYAD generator.   After that, I hope to add a GUI.   I won’t put a timeframe on it, because if I do, life will guarantee that I won’t make the deadline.

P.S.   The big numbers:

The number of possible combinations on a single DRYAD line:
aka 403.29 Septillion

The number of possible combinations for a full DRYAD sheet:
I can not count that high.   

Number of seconds in a year: (and possible time based random seeds for a given year)
aka 31.54 Million

Estimated age of the universe:
13.82 Billion years old
Number of Seconds in the universe so far:
About 484,000,000,000,000,000
aka 484 Quadrillion
aka orders of magnitude fewer seconds in the history of the universe, than possible combinations for a single line of a DRYAD sheet!