What am I proposing? I am proposing all students adopt the RSA encryption application I developed to ensure digital privacy.
This is the link to upload your public JSON file.
https://drive.google.com/drive/folders/1RYt8gtBAnEMxMdlU4CkAecZYaHEJx7Zc?usp=sharing
What is JSON / RSA
What is JSON (pronounced as Jason)? JSON is like a convenient way to store multiple numbers, words or data into a single, structured block. Here is what a sample JSON file could look like:
{
"message": 211049460139873479722763380360964439513065622054757539875153415652565226739584587435023429252388437572948704752299230563475117918960329023119233211299899187721735271846806498541580000590682903169096846049056569021065974366908146919033279323008847320806941817,
"signed_message": 5734257813149530865684549062737335865343514771640021775612947780658839925183525241021323616502278129825271958748438705869769432087426626813213032151480808654795213244784050672482001557073654876273135169257894272098290704552920583487194538805967948355902162525514296496638119350345402500593718433581626295061355463590888069404493666036885675336861900379811676227418757734281942040162520490416972810026486304313739532967254856356437085583017714189709225484424495686780013777776521367122541272965751831054580098376533677971891509168127713311681744619313969777708780440290352707521755364459239900947306523141807477655161,
"n": 13028620201814797791858326238728865138274084607305037146056206412285553198864136126831793186837737535516105619841140754798918976903565807957866180842002228743174758013659649596689726477965841615521866950953256373934368397784255506536632471845771669232906880741908955594730645838598486766532574772719040967082400857362657481460984611135893719188371991969911915897667644227829715114075543791895931165351346721918961227886831025390772779519524387965508777737733576937447400348195723707210149312031116944510634858964361876552304929491646241044618189141253672850145350048856436549733442796159249347457823679639237690093453,
"e": 65537,
"length": 107
}
The data structure represented with two curly braces {} is called a DICTIONARY. Here is how it works.
{
"name": "Junxi Liu",
"age": 14,
"Second Enrichment Test Score": 92
}
This dictionary allows us to group multiple named attributes of an element. For example, we can retrieve the name, age or Second Enrichment Test Score of this dictionary.
The data structure represented by two square brackets [] is called a LIST. Think of an ordered set
[1, 2, 3, 4, 5] # "If you have nothing to hide then you have nothing to fear", is an entirely authoritarian idea. People need to remember that authoritarians are always trying to play around with an emotive shift to gain over a moral narrative.
This list allows us to store multiple elements. To access each element, we do something like list[1]=2, list[0]=1. The list’s beginning index starts at zero, not one.
Ultimately, here is what a proper-structured JSON file could look like,
{
"data_storage": {
"distance_pos": [
0.0,
0.0,
0.0
]
},
"hud_data": {
"seed": -4514862819476258936,
"spawn_chunk_radius": 2
},
"entities": {},
"shapes": {
"shapes": [
{
"type": "despawn_sphere",
"color": 553648127,
"enabled": true,
"display_name": "Pillager Despawn Sphere",
"render_type": "outer_edge",
"layers": {
"mode": "ALL",
"axis": "y",
"layer_single": 0,
"layer_above": 0,
"layer_below": 0,
"layer_range_min": 0,
"layer_range_max": 0,
"hotkey_range_min": false,
"hotkey_range_max": false
},
"snap": "center",
"combine_quads": false,
"center": [
-1911.478282999299,
213.00031586456188,
-6.541463091832624
],
"main_axis": "UP",
"radius": 128.0,
"margin": 1.5
},
{
"type": "circle",
"color": 1613803696,
"enabled": true,
"display_name": "Circle / Cylinder",
"render_type": "outer_edge",
"layers": {
"mode": "ALL",
"axis": "y",
"layer_single": 0,
"layer_above": 0,
"layer_below": 0,
"layer_range_min": 0,
"layer_range_max": 0,
"hotkey_range_min": false,
"hotkey_range_max": false
},
"snap": "center",
"combine_quads": false,
"center": [
218.5,
-64.0,
86.5
],
"main_axis": "UP",
"radius": 1.0,
"height": 384
},
{
"type": "sphere_blocky",
"color": 1613803696,
"enabled": true,
"display_name": "Sphere (block-based)",
"render_type": "outer_edge",
"layers": {
"mode": "ALL",
"axis": "y",
"layer_single": 0,
"layer_above": 0,
"layer_below": 0,
"layer_range_min": 0,
"layer_range_max": 0,
"hotkey_range_min": false,
"hotkey_range_max": false
},
"snap": "center",
"combine_quads": true,
"center": [
284.5,
47.0,
-536.5
],
"main_axis": "UP",
"radius": 5.0
},
{
"type": "sphere_blocky",
"color": 1613803696,
"enabled": true,
"display_name": "Sphere (block-based)",
"render_type": "outer_edge",
"layers": {
"mode": "ALL",
"axis": "y",
"layer_single": 0,
"layer_above": 0,
"layer_below": 0,
"layer_range_min": 0,
"layer_range_max": 0,
"hotkey_range_min": false,
"hotkey_range_max": false
},
"snap": "center",
"combine_quads": false,
"center": [
254.3282327684404,
46.0,
-509.57584449220764
],
"main_axis": "UP",
"radius": 6.0
},
{
"type": "circle",
"color": 1613803696,
"enabled": true,
"display_name": "Circle / Cylinder",
"render_type": "outer_edge",
"layers": {
"mode": "ALL",
"axis": "y",
"layer_single": 0,
"layer_above": 0,
"layer_below": 0,
"layer_range_min": 0,
"layer_range_max": 0,
"hotkey_range_min": false,
"hotkey_range_max": false
},
"snap": "center",
"combine_quads": false,
"center": [
268.53178898638635,
47.0,
-509.67808066828104
],
"main_axis": "EAST",
"radius": 10.0,
"height": 1
},
{
"type": "can_spawn_sphere",
"color": 1621114960,
"enabled": true,
"display_name": "Can Spawn Sphere ( \u003e 24)",
"render_type": "outer_edge",
"layers": {
"mode": "ALL",
"axis": "y",
"layer_single": 0,
"layer_above": 0,
"layer_below": 0,
"layer_range_min": 0,
"layer_range_max": 0,
"hotkey_range_min": false,
"hotkey_range_max": false
},
"snap": "center",
"combine_quads": false,
"center": [
333.41195241364574,
203.0,
-420.74668214842933
],
"main_axis": "UP",
"radius": 24.0,
"margin": 0.0
},
{
"type": "despawn_sphere",
"color": 1621114960,
"enabled": false,
"display_name": "Despawn Sphere ( \u003e 128)",
"render_type": "outer_edge",
"layers": {
"mode": "ALL",
"axis": "y",
"layer_single": 0,
"layer_above": 0,
"layer_below": 0,
"layer_range_min": 0,
"layer_range_max": 0,
"hotkey_range_min": false,
"hotkey_range_max": false
},
"snap": "center",
"combine_quads": false,
"center": [
333.41195241364574,
203.0,
-420.74668214842933
],
"main_axis": "UP",
"radius": 128.0,
"margin": 1.5
}
]
}
}
This allows the server and the client to access databases. How does the encryption work?
First of all, let’s break it down so that a 6th grader could understand. A prime number is a number that can be divided by only 1 and itself.
[7, 13, 11, 23, 29, 31, 37, 17, 19] # These are primes
[14, 56, 28, 10, 24, 55, 77, 76, 63, 126] # These are not primes
Now, it is difficult to factor a large number of 300 – 600 digits into two individual primes. So here is how the RSA encryption algorithm works. You take two very large prime number, p and q. Your public key, n is equal to p times q. Then, you encrypt a message with your recipient’s public key. This allows your recipient to decode the message with their private key, but not the public key. This means that the recipient is the only one who can decode all messages sent to him.
How to install the program and set up keys
Now, what do I need you to do?
Well, first, drag the cryptography folder into your ~/bin folder.
By typing ~/ into your spotlight search, you get to open the ~/usr folder, or the secondary root directory.
Then, find a bin folder (If you don’t find one, just create one instead).
Drag your cryptography folder into the bin folder.
Here is what it should look like
- Documents
- Desktop
- Applications
- bin
- cryptography
- Decrypt
- Encrypt
- KeyGen
- Sign
- Verify
- Vote
- keys.json
- vote.json
- message.json
- public.json
- cryptography
- Downloads
- etc
Now, download and install the latest version of python. https://www.python.org/downloads/
Almost done! All you have to do now is to open your terminal (Just go into spotlight search and type in “terminal”)
then, run each of these commands one line at a time
ln -s ~/bin/Cryptography/Encrypt ~/bin/Encrypt
chmod +x ~/bin/Encrypt
ln -s ~/bin/Cryptography/Decrypt ~/bin/Decrypt
chmod +x ~/bin/Decrypt
ln -s ~/bin/Cryptography/Sign ~/bin/Sign
chmod +x ~/bin/Sign
ln -s ~/bin/Cryptography/Verify ~/bin/Verify
chmod +x ~/bin/Verify
ln -s ~/bin/Cryptography/KeyGen ~/bin/KeyGen
chmod +x ~/bin/KeyGen
ln -s ~/bin/Cryptography/Vote ~/bin/Vote
chmod +x ~/bin/Vote
Now to add ~/bin to PATH
export PATH="$HOME/bin:$PATH"
source ~/.zshrc
Troubleshooting
| Issue | Fix |
|---|---|
Command not found | Ensure ~/bin is in PATH |
Permission denied | Run chmod +x ~/bin/Cryptography/Encrypt |
| Script doesn’t run | Check shebang (#!/usr/bin/env python3) |
If there are any more issues, contact my email.
Worst Case scenario, ask DeepSeek.
Now, the fun part. First, you generate your keys by typing
KeyGen
Into the terminal. It will ask you for your name. Type your FULL NAME out, then press enter.
Finally, upload the file <your_name>.json to the google drive.
You are now set to Encrypt, Decrypt and Sign messages.
If for any reason you believe that your keys are leaked, I can assist you in regenerating your keys. Safeguards are present to prevent you from regenerating keys.
How to encrypt and decrypt messages
Encrypt Messages
To encrypt messages, what you want to do is to type this command into your terminal
encrypt "Hello World" "message"
After pressing enter, you will see a prompt to write the public key of the recipient you want to send it too. Take the database, and find the person who’s name you want to send to, and then copy and paste the public key into the prompt. Take good care not to accidentally press space or enter, unless submitting the message
Then, you will see a file labeled message.json in your ~/bin/Cryptography folder. Open the file, and then send it to your recipient. You can change the contents of the file by modifying the first argument, “hello world”, the name of the file by modifying the second argument “message”, or the recipient by modifying the public key used to encrypt the message.
Decrypt Messages
To decrypt messages, type the command into your terminal.
decrypt "message"
Obviously, replace message with the file name you want to decrypt. It will use your private keys to decrypt the message (Keep in mind, a malicious agent might want to decrypt with someone else’s private keys. This is another safeguard)













