@Yobgod Ababua - Wish I could fully agree with you.
Wish I could fully agree with you.
You're correct about the CNC process and 3D printers and the production processes etc. However, I wasn't specifically referring to them anyway. Sorry if I didn't make this fully clear (I was actually referring to substituting superficially identical chips but which have super-set instructions into production lines for manufactured equipment. (How chips are actually made is somewhat irrelevant to the topic, thus a wide-ranging discussion covering everything from silicon compilers, tweaking/reprogramming microcode, designing chips with internal bond-outs etc. etc. would serve little purpose.)
The fact remains that synergies that result from different and improving manufacturing processes are making ASICs easier and cheaper to produce, hence the easier it is to obfuscate what they actually do. In fact it's an issue now and increasingly more so as time goes on.
Let me skirt around specific sensitive stuff by giving some ancient and trite examples.
- The Intel 8085 and Zilog Z-80 are essentially identical to many programs written for them (similarly the Intel 8088 and V20). However, the Z-80's super-set instructions put it in a class apart for programs that are specifically written for it, the 8085 knows nothing of them and an 8085 system will crash unless a substitute 8085 library is available. Even then, emulation cannot always substitute as some functions are just too different. Unlike the known differences between an 8085 and Z-80, especially designed ASICs can contain super-sets that are very difficult to find.
- Today, the operation of many chips are disguised/obfuscated by labeling them incorrectly, or omitting labeling or deliberately removing them, such nefarious activities have been going on for many years. As chip design becomes cheaper so do the super-sets become easier to disguise and manufacture, eventually hidden internals will replace all labeling tricks. Just think back to the days of the false parity chips on memory--a chip designed with no other function other than to fool the system (and user) into 'thinking' that it/he had 9 memory chips when in fact it was only 8. It was a nasty unethical deception and remains so (but memory manufactures actually got away with it).
- Many electronic appliances, TVs etc., contain ASIC ICs with factory setups that are even unknown to the service industry (many common instructions you will be given but try to find how to increase the line or field scan drive amplitude and you'll be almost certainly be stymied). The facts are that these hidden techniques are already in service, the next step will be much tighter integration within the chip itself.
- And that is happening already. For the most part this is to ward of one's competitors, but taken to the logical next step it'll soon be commonplace to have chips whose parameters aren't fully published but also neither will swathes of hidden super-set instructions. Take Linksys routers for instance, the WRT310N etc. have special unpublished talk-home features that are inaccessible to normal users and whose exact purpose remains obscure. Why this issue hasn't been more controversial also remains unclear.
- Nowadays, chips are incredibly easy to produce when compared to say 20/30 yeas ago, moreover there is a plethora of suppliers and often the source of the silicon cannot be guaranteed or easily identified with any certainty let alone properly authenticated for function (least w/o very considerable effort).
- I don't see hidden architectures in ASICs as part of some massive conspiracy, it's just that it's developed in similar ways as to what happened over compiled code. If all that Microsoft had to write Windows with was a basic interpreter then the whole issue of product authentication would either not exist or would be very different indeed. Just as compilation makes it very difficult to reverse engineer code, easier access to ASIC design and development will provide much more opportunity to obfuscate their function.
That said, I've had to investigate 'louseware' within ASICs, although I can't be more specific.