UA-8295-NSA
This project contains a fully reverse-engineered and re-implemented version of the NSA backdoored encryption algorithm of the UA-8295 Short-Burst Message Terminal.
rad:z46AkAERuXAzqZcDRKvE7byRbkga1
Visibility
public
Delegates
did:key:z6Mkp4xT755Ur1aYRGFymiKLbeoyZtJ7pQetERAppc9h2yD1
Default branch
master → 7a27b7a350ccadadc2d1bd776747a06393fb50ab (Sun Feb 15 18:32:42 2026)
Threshold
1
README.md
# Reverse-engineering of the NSA backdoored firmware of the UA-8295 Short-Burst Message Terminal This project contains a fully reverse-engineered and re-implemented version of the NSA backdoored encryption algorithm of the UA-8295 Short-Burst Message Terminal. It comes also with possibility to run the original crypto algorithm in two different emulators. > The UA-8295 was an Electronic Message Unit (EMU) 1 with built-in encryption, developed by Nokia in Finland and marketed from 1984 onwards by Philips Usfa in Eindhoven (Netherlands). It can be used with telephone and radio equipment, and is based on the Nokia DA-8520 message terminal; in the Finnish Army known as the Sanomalaite m/90 (SANLA). The intial version uses DES, but some versions use an encryption algorithm developed by the US National Security Agency (NSA). src: https://www.cryptomuseum.com/crypto/philips/ua8295/  The firmware that this reverse-engineering was based on were kindly published by the fine people of the https://www.cryptomuseum.com/ as were all kind of manuals and [https://www.cryptomuseum.com/crypto/philips/ua8295/sbt.htm](preliminary analysis of the backdoored algorithm). This code is available on radicle: rad:z46AkAERuXAzqZcDRKvE7byRbkga1 ## Contents - `writeup.org` and `writeup.pdf`: an analysis of the algorithm and the implementation itself, start here for a top down view on the whole of it. - `src/`: re-implementation in C as close as possible to the original FW, some is (abandoned) WIP. - `ROM.hex` and `SBT.rom`: the original firmware in Intel HEX and binary formats. - `ghidra_project.gpr`, `ghidra_project.rep` and `fixprint.py`: a Ghidra project containing the annotated firmware. - `sbt.[ch]` a slightly optimized version of the crypto algorithm, for use in analysis and attacks. - `mcu.py`: a simple 8051 emulator written purely in python, adapted from https://github.com/estarq/i8051emu (c) Paul Lloyd - MIT license - `emu-decrypt.py` & `emu-encrypt.py` two simple scripts using the python-based emulator running the firmware to encrypt and decrypt. - `analysis/`: a directory containing a lot of tools and experiments to understand the firmware. - `attacks/`: a directory containing a few (failed) attempts at an algebraic attack against the algorithm. - `emu8051-3102.py`: emulation using an alternative emulator by Hugo Villeneuve, get the headless fork from radicle: `rad:zRr7zaEsJMgoVsF3qYtsfRbadECa` or you can get the patched emu8051 sources from https://rad.ctrlc.hu/nodes/rad.ctrlc.hu/rad:zRr7zaEsJMgoVsF3qYtsfRbadECa using git or a zip download. - `des-variant/`: the firmware for the original DES variant, only for comparison, not actively used in this project. - `notes.org`: random notes