A security core on a processor your spacecraft already flies with. It detects and quarantines attacks as they occur without ground contact, in just 114 KB of software, at the same constant cost per packet. With no new chip, no additional mass, no modification to power budget.
Every satellite in orbit today trusts whatever reaches it.
Spacecraft security is nearly exclusively a ground segment affair. If the link gets jammed, if the spacecraft loses contact, or if the ground station itself is compromised, the spacecraft has nothing on board to help it distinguish a real command, or a real command altered in transit, from an imposter. Quaranet puts that judgment call down onto the spacecraft as a deterministic core that is programmed with high-dimensional arithmetic, not a neural network, so the cost of each packet is precisely the same and a stray bit-flipping error in space cannot change the answer without being noticed.
The 2022 Viasat attack disabled tens of thousands of terminals across Europe and it never left the ground segment. As the ground hardens, the attack climbs the chain: the spacecraft is the next link.
You cannot carry the firewalls of Earth up into space. Dynamic memory cannot perform without fragmentation and potential lockup under a hard real time deadline. Standard models go softly corrupt under cosmic rays: the answer changes, nothing notices. Data-dependent execution paths invalidate flight software certification. Small quantized nets will run on flight hardware, but come without constant time performance and fault-tolerant model memory. Orbit demands deterministic, highly efficient arithmetic.
For twenty years spacecraft security meant securing the ground station. Three things changed that at roughly the same time, and none of them is a sales argument we invented.
In March 2026 the IEEE Standards Association accepted P3536, a new international standard meant to make cybersecurity a part of a space system's design, not something added later in life to systems once they are already in space. The standard includes definitions of controls for multiple modules, from the ground system, the link layer and an integration layer, down to the vehicle itself. Space systems that are only protecting their ground segments have no capability to offer controls for that vehicle column.
In 2020, US Space Policy Directive-5 established guidelines on space system cybersecurity that specifically included protecting commands, control and telemetry from interference and outside control. For most of a space vehicle's life the ground station is not even in sight of the vehicle. Ground based control is no control at all in these cases.
A constellation is all but identically cloned spacecraft operating a single software image. Any system that must ship on a per vehicle basis must be qualified, and the cooling and power paid for on every ship. A system that ships as a software bundle only has to be written once and costs nothing to replicate. It seems clear this disparity will determine which defenses are actually flying on these constellations.
Quaranet is a library linked into the existing flight software you are writing. It is not a box that bolts to the bus. All measurements hereafter are at the current software core. If there is a target rather than a product, it is noted as such.
Quaranet compiles into your flight image and runs bare-metal on your Cortex-R or Cortex-M
family ARM processor that is already in the box. No new part number. No
supplier qualification. No new bus interface or addition to power or thermal budgets.
Integration is linking against an existing no_std static library through a C
interop interface.
The model fits in 116,808 bytes and fits into the 256 KB tightly coupled RAM of an R5F within a Zynq UltraScale+ chip. It runs at 44.6% utilization, so it sits outside cache and in deterministic memory.
There is an FPGA accelerator, verified at RTL simulation in single-clock latency. This could be an option in new hardware, but is not needed.
Software-first · FPGA optionalEach packet will take the same amount of time. There is no split, no recursion, and no branching dependent on the data, and so the worst case and the normal case is the same number, and traffic cannot move it. This is the property that flight software is certified on, and the reason why a flood cannot make response time grow.
303.6 µs end-to-end per packet on a Cortex-R5 at 600 MHz, of which 19.9 µs
belongs to the classification itself. Not measured using a stopwatch but counted instruction by
instruction, based on the compiled armv7r code, and hence a static bound.
Radiation causes errors by flipping bits in memory. Quaranet distributes decisions over a large number of weights, spread across 10,000 bits, so single bit errors just shift the final answer and do not completely change the output. The internal data structure uses Hamming-SECDED encoding, which corrects single bit flips at runtime within the model while refreshing the double-bit error by pulling new bits from ROM.
For a model that has 2.5% of its memory deliberately corrupted, performance drops from 94.19% accuracy to 93.70% accuracy, while an int8 network experiences an accuracy drop of 96.32% to 53.60%.
Three things a buyer is actually interested in: does it stop attacks, what can go wrong, is the product you are testing the product that is flying. All are answered below.
On 7,200 packets of data that it had not seen during its training period, the model successfully identified 3,347 of 3,619 attacks, and successfully classified 3,435 of 3,581 clean packets as clean, to achieve an overall accuracy of 94.19%.
It also gave 146 false alarms, yielding a false-positive rate of 4.08%. We make this number appear in print as prominently as the overall accuracy, since any false positive alarm spends the attention of an onboard operator, and 4.08 percent is too much. Driving the false positive rate down to less than 1 percent is currently open engineering work.
Precision 95.82%. When it says an attack, 96 out of 100 times it will be correct. Recall 92.48%. It will find 92 out of 100 attacks on average. Those usually work against each other, and how tightly a detector can hold them both gives a good approximation as to whether it has really learned something.
It separates out attacks from non-attacks with an ROC-AUC of 0.9911 irrespective of the alarm threshold. That is why we front-load it instead of accuracy.
The model used for training was in Python. What is actually flying is Rust, cross-compiled for the spacecraft processor. And the two are far from just equivalent. They are exactly the same, bit for bit. Every time you build it, it tests the Rust core against stored golden reference vectors and compares all ten thousand bits in question, and the resulting decision.
This is, by and large, the step that all the published benchmarks omit, and
the step that can actually distinguish if a benchmark matters once you take the code off the
laptop. Currently the flight code passes 27 out of 27 tests and all builds
are clean for the
armv7r-none-eabihf flight
target.
| Checked | Compared | Result |
|---|---|---|
| Golden vectors | 8 stored cases | 8 / 8 match |
| Hypervector | every bit | 10,000 / 10,000 |
| Verdict | threat decision | identical |
| Flight core | unit + parity suite | 27 / 27 pass |
Quaranet's advantage on constrained orbital hardware is not really a software gimmick. Each of the following is from something you can actually verify, such as a published paper, a standard, or a measurement we publish. A source is provided for each.
Pick two random 10,000-bit patterns and see how many of the bits differ between them. They are 5,000 places apart almost always, usually only varying by about 50. Three standard deviations is 150 bits, which on 10,000 bits is pretty near negligible, to the point of rounding error. Everything is reliably and boringly separate in this space at this size and scale.
The entire point of using 10,000 dimensions is size. At this scale, randomness does not even have a tiny chance of accidentally finding a learned threat signature. The distinction is purely a property of the geometry and something it does not even need to learn, and we have a 10,000 bit region for every single one of your new threats, as long as you train that system with enough bad traffic.
A neural network does matrix multiplications, and the complexity depends on what goes into them. Quaranet's work is to exclusive-or pairs of bit patterns and count the ones. A 64-bit processor takes 64 bits per clock cycle, meaning a comparison of 10,000 bits has a machine work equivalent of 157 machine words against every stored pattern.
Two stored patterns took 11,959 cycles, 19.9 µs on a Cortex-R5 at 600 MHz, and the complete pipeline was at 303.6 µs. Since this whole path does not depend on the data, the load does not affect the cost. On the optional FPGA the comparison simplifies to one clock cycle.
An admission. Our first published figure was 6,343 cycles. The analysis tool had counted one loop while the compiler had issued two, and a similar mistake had made the encoder look about 190 times quicker than it is. We found it, checked against the generated assembly, re-published and bumped it up. The numbers on this page are our corrected ones.
armv7r assembly. In-order,
non-speculative core, and every access is assumed to hit tightly coupled memory.Charged particles corrupt bits in memory. In the context of a neural network this is a corrupted weight, and changing any bit changes the output with no indication it occurred. The spread throughout all 10,000 bits that Quaranet gives for any decision ensures corrupted bits only shift the output by a tiny amount, rather than change the whole output.
For 2.5% corrupt, 250 bits, a deviation distance of only 250 against a 5,000 bit separation, accuracy of Quaranet comes down from 94.19% → 93.70%. Compare this to a typical int8 network, where accuracy drops from 96.32% → 53.60%, essentially flipping a coin but confidently continuing. Even at the deepest levels, Hamming-SECDED coding alone would restore any bit upset, correcting all single bit upsets and reading the remainder out of ROM for any double bit upset.
Conceptually treat the uplink as a queue. One Cortex-R5 core processes 3,294 packets per second end-to-end with the model in fast memory. Dump a 1,000 packet per second flood at it, very much more than a real rate for telecommands, and the processor is running at 30.4%, with only a tenth of a packet queued up on average. Since the queue size is mathematically bounded, it cannot continue increasing indefinitely and the buffer does not overflow.
At the rates the spacecraft actually experiences, the processor load is a rounding error: about 3.0% for 100 packets per second, and 1.0% at 33 packets per second. We can say that because of the aforementioned property. Since every packet has the exact same cost, its service rate is a fixed quantity and not just an average rate.
Since vacuum has no air to take heat away, any spacecraft can only radiate heat away from itself. Each watt is one that must be disposed of at an already budgeted and paid for area, and each kilogram added to the mission must also be paid for again in propellant. For that reason, "just add a co-processor" is a far bigger ask than it at first sounds: new hardware must be qualified, powered, cooled, radiator-budgeted and hauled about for its whole life.
Quaranet does none of these. It is just 116,808 bytes of program that already runs upon a processor the platform powers, already cools and has already accounted for in its thermal budget. The only additional cost is one in duty cycle, roughly 3 percent of the use of one CPU core at a hundred packets a second, rather than hardware or mass. No additional component is ever added.
Eight lines of primary evidence: the cryptography, the radiation-hardened memory, the synthesizable silicon, the instruction-level timing proof, actual NASA spacecraft telemetry, and the red team attack that we ran against our own detector, published with the results that went against us.
Explore the evidence →Pick a processor, choose an attack, and dial up the intensity. The Quaranet lane is driven by the same measured cycle budget as the rest of this page. It is not a demo animation with numbers written on it.
That was a model. The real thing runs on NASA telemetry.
Fifteen minutes, live, with the actual flight core, including the parts that fail.
We say plainly which is which. Nothing below is marked complete unless it has been built and checked.
Whether you're a space agency, satellite manufacturer, defense fund or deep-tech investor, we'd be glad to walk you through the architecture and the measurements behind it, including the ones that went against us.