Inspiration

Web security and anonymity Image processing The lack of a product in the market with this sort of functionality

What it does

safesender solves the problem of sending images securely over the internet. even if messages are end-to-end encrypted, a hacker can see the contents of the messages easily. safesender is a desktop app that locally encrypts and decrypts images so that they cannot be seen or decrypted by a potential hacker. safesender achieves encryption and decryption by generating invertible matrices (key) and then computes the ciphered image using that key. the deciphered image is computed using the inverse of the key matrix. futhermore, each app user has a unique address generated for them which is encrypted using the bcrypt library. using this address, the image is decrypted only when the intended recipient is trying to decrypt the ciphered image in safesender. otherwise, the decryption algorithm detects a mismatch in the address and rejects the decryption process.

How we built it

javascript, html, css, electron js, node js, and python javascript, html, css, electron js, and node js were used to create the gui python libraries like bcrypt, numpy, and opencv were used to hash, create the encryption/decryption matrices, and handle/process images, respectively

Challenges we ran into

image dimensions matching array dimensions; especially given the large number of entries required for an image using 3D arrays randomly generating invertible matrices with a high level of reliability so as to not corrupt the data of the image creating a dynamically generated username and hash system so only specific users can decrypt the image

Accomplishments that we're proud of

the algorithm of randomly generating an invertible matrix that encrypts the image that can then be decoded with its key (inverse matrix). The security of which is then improved with the addition of a dynamic user system

What we learned

how to hash in python how to use electron js to make a desktop app gui development how to work with large, multidimensional arrays of dynamic size

What's next for SafeSender

gui improvements with modals and better layout design having a more robust image encryption algorithm using lorenz hyperchaotic systems implementing some sort of scalability with sending larger amounts of images.

Share this project:

Updates