In Germany we use these devices called "tanJack" for secure online banking:http://www.reiner-sct.com/content/view/189/http://www.reiner-sct.com/component/option,com_docman/task,doc_view/gid,134/
What is does is when you do a bank transfer online the website displays some flashing blocks on a screen.
You put your bank card into the reader and hold it up against the screen where the website displays some flashing black&white blocks.
A photo-receptor in the device reads in the data and a small screen on the device shows the bank account and amount being transferred.
You then press a button on the device and it gives you a short (5 digit?) number (called "TAN") which you enter into the website to "sign" your bank transfer.
Here is a video how this works:http://www.youtube.com/watch?v=GOQeZGe83YM
Could we use these devices for making bitcoin wallets or transfers secure?
Apparently you can buy them for ony 15 Euros (http://www.starmoney.de/index.php?id=tanjack-optic-sr
I'm imagining a modified bitcoin client that uses either an encrypted or incomplete wallet file.
The only way the client can send money (i.e sign a transaction) is when it gets a proper TAN-number generated by the device (plus some card that is inserted into the device that contains the access key(?). This TAN-number would either enable the client to access the wallet file or it would be used to complete the incomplete private keys (I'm not exactly sure how this would work). Alternatively, this might be used for an online service like Mybitcoin.
Since you have a separate, trusted device with a separate screen this should be hacker-proof. It should work even on a totally compromised computer.
Do you think this would work for Bitcoin?