element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Pi-Fest
  • Challenges & Projects
  • Design Challenges
  • Pi-Fest
  • More
  • Cancel
Pi-Fest
Blog Audio Encryption Project Blog 1: Research
  • Blog
  • Forum
  • Documents
  • Polls
  • Files
  • Leaderboard
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: juno
  • Date Created: 2 Aug 2022 5:46 AM Date Created
  • Views 665 views
  • Likes 7 likes
  • Comments 2 comments
  • Pi-Fest Design Challenge
  • raspberry pi pico
  • audio encryption
Related
Recommended

Audio Encryption Project Blog 1: Research

juno
juno
2 Aug 2022

Project Description

This entry is a group submission. Our team consists of the following students from Cal Poly Pomona under the supervision of Dr. Mohamed Aly.

Graduate Students:

Melvin Relf

Patricia Ankunda

Lino Mercado-Esquivias

Muhammed Zahid Kamil

Undergraduate Students:

Russell Hua

Alexander Ea

Shahzman Saqib


For this competition we will set out to safely encrypt and send an audio recording from one Raspberry Pi Pico to another. For the encryption we will use a lightweight cryptographic algorithm. We settled on the TinyJambu algorithm; one of the finalists in the NIST standardization process which can be found here. It would be pretty pointless to send the recording through a wire so we will send it over wifi. In order to exchange the encryption keys over wifi we will use an X3DH key exchange since this will allow for good scalability in the future. This project might be a bit ambitious for us since we have our hands in multiple research projects so we’ll cut stuff down as we see fit. Below is the simple top level design of our project. As can be seen, we will require three picos. To differentiate between the picos we gave them names. Bob sends the encrypted audio, Alice decrypts the audio and plays it, and the server is mainly there for scalability purposes in case the need for twenty Alices arises someday.

image

Figure: System level design

image

Figure: Bob flowchart

image

Figure: Server flowchart 

image

Figure: Alice flowchart

Research

Parts

We already had three picos lying around, so to start we did some research on some cheap modules we could buy to interface the picos to wifi, microphone, and speaker. We ended up buying:

  • X1 Adafruit I2S microphone module
  • X1 Adafruit I2S stereo decoder
  • X3 Espressif ESP-01 wifi module

The wifi module can interface to the pico using UART. The firmware preinstalled on the ESP-01 allows us to create an SSID, connect to a wifi signal, and send data. Both the mic and decoder interface using the i2s protocol. Unfortunately, the pico doesn't natively support i2s but we can implement it using the programmable I/O (PIO).

image

Figure: Microphone module

image

Figure: Stereo decoder module

image

Figure: Wifi module

Language

Now came time to choose a programming language. After looking around we noticed that Python would be the easiest language to interface the pico to the modules since it has all the libraries and plenty of documentation. However, the TinyJambu library is written in C. There were also some ideas floating around of using Go or Rust. Ideally we would run multiple languages on the Pico which we don’t know how to do. After some research we thought maybe an operating system might be the best way to run multiple languages. The two potential operating systems that caught our attention were FUZIX and RTOS. The alternative to the operating system is to write everything in C since we would rather not rewrite the TinyJambu code. Since our choice of language depends on getting the operating system to work, we decided we should start on that first.

  • Sign in to reply

Top Comments

  • shabaz
    shabaz over 3 years ago +1
    Hi, Interesting project. You might want to rename the title to the blog post, because all I can see is "Blog 1: Research" which doesn't describe what the blog is about, to a newcomer. Maybe "Audio…
  • juno
    juno over 3 years ago in reply to shabaz

    Thank you for your suggestions!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • shabaz
    shabaz over 3 years ago

    Hi,

    Interesting project. You might want to rename the title to the blog post, because all I can see is "Blog 1: Research" which doesn't describe what the blog is about, to a newcomer.

    Maybe "Audio Encryption Project: 1: Research" or similar would be better. Also, a tag with a project name, and any other useful tags, so that people can find the blog posts.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube