pythonaudiocryptographyanalog-digital-converterdigital-analog-converter

Audio encryption with analog conversion


I have recently started using python and I have no special knowledge of cryptography.

What I want to do: I want to transmit digital encoded data (speech/wav) trough an analog signal, record this analog signal and decode it after that. A little like this: http://www.cryptomuseum.com/crypto/voice.htm#digital but with AES instead a XOR-Operation.

My problem: I record a WAV file and Encrypt it with AES. The decryption of this file works fine. Now I play this signal through a speaker and record it with a microphone again. Now, when I decrypted the mic-recorded file, I get only a file full of noise.

Do I lose by its 2x analog/digital-conversion too much information to decipher to after that? Is AES perhaps the wrong encryption for my application?


Solution

  • As far as I know, no block based encryption/decryption schemes allow for bit errors to "gracefully" pass through the decryption, but I might be wrong. If any such schemes exist, they're propably quiet exotic and will create a bunch of other problems for you. Therefore, you need to do the analog transfer lossless.

    This problem has luckily been solved before. The solution is a modem. And it should be one tailored to the transmission channel, meaning you can't use the same modem for both telephone and air transmission channels.

    Modems are actually pretty hard to design and implement (even though they're dirt cheap), so unless you have experience in this area I would suggest to get some help :-)

    Regards