Portable Encoding Unit

The PEU, Portable Encoding Unit, is an end-to-end encoding and decoding device allowing secure communications across insecure channels

Similar projects worth following
With all that we've found out about the surveillance state, we know that cellphones and computers are not secure against exploitation and monitoring. The PEU is a one-function only device which is intended to allow encoding and decoding of messages only and nothing else. It avoids any kinds of mechanisms which can be exploited or which provide device signatures such as wifi, bluetooth and usb. Instead, it utilizes non-exploitable interfaces with existing cellphones, tablets and computers making them only pass-through communication channels. It utilizes modularized encoding modules to allow various algorithms and future growth capability.

There is a great need for this kind of system among people like activists and journalists. The ability to have relative security can allow freer communications and change the world from one of constant surveillance to one with freer press and the freedom to communicate unpopular ideas to others. It's a game changer for free speech.

In order to meet the usage requirements, the PEU must have the following characteristics:

1. It must be portable

2. It should be a single-purpose tool

3. It should not be a general purpose tool

4. It should do one thing well and only one thing

5. It should be able to encode/decode messages

6. It should be able to stream encoded messages to/from an external device using a relatively simple interface (e.g. audio modem or RS232)
a. Cellphones/smartphones
b. computers

7. It should only work with text-message size documents

8. It should be physically small enough to carry easily.

9. It should not have any reasonable radio signature

10. It should contain its own batteries

11. It should have reasonable battery life (?10 hours?)

12. It should have an actual keyboard with mostly qwerty keys

13. It should have no exploitable interfaces (e.g. USB, wifi, bluetooth) for input or output

14. It should have a display big enough to display reasonable messages (e.g. 128X64 pixels or better)

15. Parts Availability
a. Parts should be sourceable from multiple suppliers
b. Parts should be reasonably secure from "chipping"

16. It should have a changeable code module in a secure door (at least with screws)

  • 1 × HY32D 3.2" TFT LCD with 16 bit parallel interface
  • 48 × ENG_CD_1825910_C9 6mm Tactile Switch, Thru-hole
  • 1 × PCB-PEU PEU Terminal Printed Circuit Board 4.1" W X 5.7" H
  • 1 × Teensy 3.6

  • Prototype Terminal Board 1

    codemonky04/30/2017 at 17:19 0 comments

    I received some of the parts I need for developing the prototype of the PEU. I have the display, the key buttons and a proto pcb. I've soldered these parts together and here's a picture.

    For the prototype, I'll probably use a separate board of the same type to mount the Teensy 3.6 main processor and the code module. In a final design, I'm planning on laying out a PCB using mostly surface-mount parts with the Teensy 3.6 and code module mounting on the back-side behind the display.

  • 3D Printed Case Idea

    codemonky04/29/2017 at 20:08 0 comments

    Here's a realistic 3D printable case idea. Larger than I want for a final design, it will be sufficient for a prototype.

    It's 4.6" W X 6.2" H X 1.25" D. It would use 3D printed keys as well.

    There's still a lot of mechanical design that will have to be done to be able to mount everything properly inside of it. There's dimensioning and tolerances of the various key holes, the display, the battery holder door, and the code module door. There would also be an on/off switch, a DB9F connector and an audio jack on the top.

  • Elaborating Design

    codemonky04/25/2017 at 01:08 0 comments

    With full deference to Maximilian Strauch's Apple II emulator and Jorj Bauer's Apple IIe emulator, here's my first concept for the initial prototype of the terminal board. I've already ordered some of the parts.

    I had to re-arrange the pins to get the functionality I wanted. I'm multitasking some of the display data lines with the keyboard scanning to save pins. I've also fleshed out some of the design for the interfaces such as an RS232 interface to talk directly to a PC (through a USB-Serial converter), the modem signals and the interface to the code module. I'm just using logic-level serial to the code module; this should be general enough of an interface to work with all sorts of different module implementations.

    The current concept for the code module is to just use a Teensy 3.2 in a 28-pin socket. I currently think that it is a general enough interface that all kinds of different implementations of different processors and technology could be used. Even if a code module is physically larger than that, it could just be a larger mezzanine board with a socket and screw holes to allow robust mounting.

    The code module would implement a basic serial command interface allowing keys to be downloaded, packets to be downloaded, encoded and uploaded back to the terminal where encoded data could be output on either the RS232 interface or the modem interface. The reverse would occur to decode messages and then show them on the display.

    I have some concern about the keyboard scanning approach, but I'm going to go with this simplest approach for now. I want to get something up and running to validate as many of the other ideas as possible sooner than later. In particular, I think that there is some possibility of signal radiation that would allow a snooper to monitor key inputs, so later I'll probably change the key scanning interface.

    For the modem interface, there are several different possible "modes" that might be utilized to transfer data into and out of the PEU and into or out of devices such as phones. Here's a list:

    1. 110/300/600 baud modem direct over cellphone audio - I've developed software modems in this
    range on systems like the Teensy before. With a 180 MHz Cortex-M4F, there should be plenty
    of horsepower for a simple software modem.

    2. Capture the audio file on the target device, send audio file, play back audio file.

    3. An App that can convert audio into binary (software modem on phone). Send the binary data file. The app then converts the binary file back to audio. Play back over speaker/headphone.

    4. Use a USB device which can convert data to/from audio from/to data.
    Sent data as file over email/txt.

    Anyway, I have more design work to do (e.g. the power supply) as well as parts selection
    before full-up prototyping.

  • Start Selecting Parts and Layout

    codemonky04/23/2017 at 00:43 0 comments

    I've started selecting parts and have updated the components list. I've also started laying out and sizing the board prototype.

    Although not as small as I'd like, it's pretty small. If i figure several stages of prototypes, then I can relax dimensional standards until I have a working circuit.

  • PEU Usage

    codemonky04/22/2017 at 03:58 0 comments

    The following diagram shows a typical use case for the PEU.

    Messages would be entered on the PEU (an IM-ME shown for reference), a speaker/microphone cable would connect the device to a phone and messages could be sent. Obviously, as audio signals, there would need to be some kind of modem which could be implemented in software on the PEU.

  • Is this world changing?

    codemonky04/22/2017 at 03:38 0 comments

    With what we know from events in the past few years, we see that all states around the world continuously surveil their own citizens as well as resident and non-resident non-citizens. We know that virtually all current communication and computing devices have been compromised and turned into tracking and monitoring devices.

    There is a real need for people seeking the realization of their basic human rights to be able to communicate without surveillance (or at least by making such surveillance more difficult). Individuals, non-governing political groups, monitoring NGO's, activists and journalists must be able to freely communicate without fear of surveillance. The absense of that situation stifles free speech and free expression.

    There are currently no existing easy solution to this problem. This project aims to start development of a system which could lead towards greater freedom of speech, and freedom of expression and communications for all people around the world. Having widely available secure communication can be world-changing.

  • Alleviating Secure Communication Problems

    codemonky04/22/2017 at 03:29 0 comments

    The issue of having relatively secure communications is an important one for many people.

    Executing the development of such systems is not easy, as it often requires knowledge and experience with the kinds of attacks and compromises one might face. Often, security is compromised by trying to do too much in one system. Therefore, the idea of "do one thing well" is important to making this happen properly.

    An additional issue is that, faced with sophisticated attackers, there are many compromises that may be possible. Therefore, the user must be able to trust the encoding module. The ability to develop their own encoding modules or to use a trusted source for them is important to ensuring security. The encoding modules must be projects little more in scope than arduino-scale projects and be able to be plugged into the PEU. It must be a well-defined mechanical and electrical standard which is easily complied with. The code modules should be able to utilize the most advanced algorithms available and old, known-compromised algorithms must be easily replaced.

    So, the project will entail the development of the following major assemblies:

    1. Terminal subsystem electronics

    2. 3D printed enclosure

    3. Encoding module

    The initial unit will utilize a non-ordinance/non-ITAR quality coding module to demonstrate the principle and to define the design and relevant standards. Further development will be up to future users.

  • Project Challenge

    codemonky04/22/2017 at 03:14 0 comments

    The challenge is to develop a general purpose communication tool which is portable, relatively secure, easy to build, easy to use and avoids the mistakes that we've found out about with smart phones and computers.

    The biggest challenge will be in packaging components that are readily available into a small, durable, usable device. Doing this in a reasonably cheap unit is also important.

    So, the project entails two major subsystems: 1) a portable communication terminal which can accept 2) various code modules.

    The standardization of the interface between the terminal and the code module is crucial to allowing other hackers to develop their own code modules for the terminal system.

    It is seen that a 3D printed packaging will be necessary to make the unit durable and portable.

View all 8 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates