Go Down

Topic: Play only Proprietary Sound Files (Read 1 time) previous topic - next topic

zeee

First, I know that "proprietary" is kind of an eye sore, but this is just a project so please bear with me.  XD

The project makes use of an Arduino, an Music player IC (Mp3 or MIDI maybe), SD, and a speaker. Basically, the system should only play "proprietary" sound files stored in the SD. The questions is, how can I easily achieve this? (I'm thinking of a PC script to encrypt "proprietary" sound files, then in the Arduino, it checks first if it is properly encrypted.)

But I don't have a concrete approach yet on how to achieve this, (e.g. do I need to encrypt the whole file, what library may be used, etc.).

Thanks in Advance! :)

Grumpy_Mike

One simple way would to exclusive or every byte in the file with a key value to scramble it. Then on play back you unscramble it by exclusive oring every byte with the same key value thus restoring the file.
The snag is that this would only work with wav files stored on SD cards. Any unscra
Mbling has to be done my the player so that would rule out MP3 players and the like.

PeterH

What exactly are you trying to achieve?

You're trying to restrict the device to only play media files that come from you?

You're trying to ensure that no other players can play the media files you create?

How important is it for you to achieve this i.e. what lengths are you willing to go to to prevent people from overcoming your restrictions?
I only provide help via the forum - please do not contact me for private consultancy.

zeee

Sorry for the delayed reply.

@Grumpy_Mike - at first .WAV was an option, but now its fixed to an MP3 player.

@PeterH -
Quote
You're trying to restrict the device to only play media files that come from you?

You're trying to ensure that no other players can play the media files you create?

Yes and Yes.

Quote
what lengths are you willing to go to to prevent people from overcoming your restrictions?

I'm willing to create a script (for encrypting in PC) and sketch that makes use of already existing cryptographic libraries.

I forgot to mention that the proprietary sound file should only be played with one dedicated player (for proof of concept).
e.g. a sound file (SOUND_1.*) can only be played with DEVICE_1 (arduino + mp3 player) and should not be usable/playable with DEVICE_2.
SOUND_1.* is the encrypted propietary sound file. DEVICE_1 and DEVICE_2 are the hardware projects. :)

I'm thinking that this maybe achieved by assigning IDs to the SOUND file before encryption, which is paired with only one DEVICE.

pylon

I strongly suggest using another platform for you project. The Arduino is not powerful enough to do a decryption really worth that name in real time (which would be necessary for your project). There are lots of cheap ARM architectures available on the market using an embedded Linux which are powerful enough for this task (Raspberry Pi to give you just one example).

Go Up