Your own Encryption algorithm for installation into our ADB-820 range of encryption modules

We are able to supply you with the functional boards and supporting documentation for you to assemble you own algorithm for installation into our modules.  However, we are unable to provide engineering support or guidance on your project other than the supporting material we provide.  All project testing is your own responsibility.


With the hardware we provide:

  1.  A document is provided to give guidance for you the Customer of VHF Encryption Board project to develop the implementation of your own encryption algorithm suitable for loading into supplied encryption boards.
  2. Chapters include information such as
    a) The defined requirements for this implementation (referred hereinafter as “embedded encryption module” or just “module”).
    b) Details on how this module should interact with main firmware of encryption board.
    c) Guidance on how encryption module should be built from source code and loaded into encryption board.


Conception of Embedded Encryption Module
The Embedded encryption module is a set of executable code organised in functions and constants, that are compiled and linked in the stand-alone binary module.  This module is loaded in a fixed area of the Flash memory allocated specially for this purpose.  All Functions are called trough call table that is placed in the beginning of this area, and the Stack is shared between main (host) firmware and the module.

All variables of your algorithm are stored in contexts.  Contexts are allocated by the host firmware and passed to all service functions of the module by a pointer.  The module also has if required a small dedicated area of RAM intended mainly for debugging purpose.


Requirements for functional characteristic’s
Requirements for implemented functions are as follows:

Main function
The “Board” supports the following main functions:

  1. Encryption of speech transmitted over the air.
  2. Decryption of speech received from the air interface
  3. Loading key to “Board” through a cable.  eg our USB programming ADP-9-USB
  4. Loading to “Board” (module) of the encrypted algorithm developed by Purchaser
  5. Ability to Update main firmware of “Board”, without interfering with encryption algorithm loaded previously into “Board”.


Requirements for structure of input and output data

  • The Encryption key, loaded into “Board” should consist of 64 hex symbols or more, which contains 256 bit of information.
  • The MSB of key should be in MSB of the first symbol.
  • The Service software represents the key for entry as 8 parts of 8 hex symbols in each.
  • The files which contain the key and configuration data of the “Board” should be located on local or removable drives, formatted in according with operation system requirements.
  • Service software should be able to open and save files only in our special format, which it supports.
  • Work with different file formats is not supported.
  • Any work with different files formats but with same extension, corrupted files, files located on network drives and drives not supported by the operation system is not supported.


Requirements for a set of developer documentation and software
For support and development of your own encryption algorithm, we APJ1 Media Services Ltd will transfer to you the ‘Purchaser’ the following materials:

  1. Comprehensive list of requirements for your encryption module (algorithm)
  2. Description of principles of operation of your encryption module within firmware of the “Board”
  3. Include and command files necessary to build encryption algorithm
  4. Software for loading your encryption module (algorithm) into “Board”
  5. Source code of factory default AES 256 bit encryption module (algorithm) as a locked working file.
  6. Source code of test dummy module (algorithm) – with no encryption.


Costings and for further information please use our contact form below:


Back to our encryption systems.
Read our frequently asked questions…