Brilliant discussion, thank you guys for taking the time to explain all this.
So would the ECC chip provide options for more secure key exchange? Do any of these options offer us a possibility of maintaining good physical security? I am interested in making Flutter a viable system for very high security applications like communications amongst freedom fighters against a state actor. At least, if the difference is $0.20 I'd go that way.
It sounds like there are some unknowns with regards to power consumption. I am happy to customize some boards with both chips down the road if a user wanted to do some serious qualification of the performance of either approach.
Without having that information, I am getting the feeling that the ECC chip may offer more security options. Though it also sounds like doing AES in the CPU may interfere with operation? Most timekeeping in the chip is done by a hardware timer. Every millisecond it ticks a variable in software, but that's it. We get sub-millisecond resolution by setting that timer to fire early for one cycle. One of the Arduino modifications is that this timer is now the highest priority instead of the lowest, and the loop is written to avoid anything unnecessary. When it needs to hop frequencies or read data it fires a software interrupt at a lower priority to process things, so the timing loop can keep running.
Does it sound like we would be okay doing AES in software? Or the radio accelerator?
Would the ECC system have a common key between devices? There's only 16 key slots in the crypto chip. Or does that not make sense? I'm still wrapping my head around public/private key systems. I know how they work, but I am still not visualizing the use cases beyond secure email. If you do need individual keys for each device for it to be secure, would this system then be limited to 16 devices in this high security mode?
I need to spend more time looking over all this, but I wanted to chime in on the discussion and say thanks again for all this. This thread is super useful.