diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/material_theme_project_new.xml b/.idea/material_theme_project_new.xml
new file mode 100644
index 0000000..c764730
--- /dev/null
+++ b/.idea/material_theme_project_new.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..f8a22e9
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..9661ac7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..2e347e3
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,321 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ "history": [
+ {
+ "assignee": "vernuser"
+ }
+ ],
+ "lastFilter": {
+ "assignee": "vernuser"
+ }
+}
+ {
+ "selectedUrlAndAccountId": {
+ "url": "https://github.com/vernuser/cryptography_homework.git",
+ "accountId": "8b7e9b97-86ab-4db0-a673-929e037f7c36"
+ }
+}
+ {
+ "associatedIndex": 6
+}
+
+
+
+
+
+
+
+
+ {
+ "keyToString": {
+ "Python.client.executor": "Run",
+ "Python.encryption_utils.executor": "Run",
+ "Python.file_transfer.executor": "Run",
+ "Python.generate_key.executor": "Run",
+ "Python.generate_keys.executor": "Run",
+ "Python.receiver.executor": "Run",
+ "Python.sender.executor": "Run",
+ "Python.server.executor": "Run",
+ "Python.utils.executor": "Run",
+ "RunOnceActivity.ShowReadmeOnStart": "true",
+ "RunOnceActivity.git.unshallow": "true",
+ "git-widget-placeholder": "annn",
+ "last_opened_file_path": "D:/college/大三/应用密码学课设",
+ "node.js.detected.package.eslint": "true",
+ "node.js.detected.package.tslint": "true",
+ "node.js.selected.package.eslint": "(autodetect)",
+ "node.js.selected.package.tslint": "(autodetect)",
+ "nodejs_package_manager_path": "npm",
+ "vue.rearranger.settings.migration": "true"
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1733790319291
+
+
+ 1733790319291
+
+
+
+
+
+
+
+
+
+
+ 1733793465023
+
+
+
+ 1733793465023
+
+
+
+ 1733801157608
+
+
+
+ 1733801157608
+
+
+
+ 1733810790769
+
+
+
+ 1733810790769
+
+
+
+ 1733815825091
+
+
+
+ 1733815825091
+
+
+
+ 1734489312302
+
+
+
+ 1734489312302
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_packet.json b/data_packet.json
new file mode 100644
index 0000000..ca12c10
--- /dev/null
+++ b/data_packet.json
@@ -0,0 +1 @@
+{"nonce": "viRm4Dv0Hc1LnifER06rOw==", "ciphertext": "4Q==", "tag": "HD05+MIgwuWKStAA1DAelA==", "encrypted_key": "YkZ48DIhZzn4mjkzyajDZ8QCDvLFvp3+5N9stM4Bk8elaroz8hPY0UFfewxfYrj0Uz8jimYYANULsXE9itCHKWIaZC+XIIBfd13+eh4rDGuFipXy1ua6EwGDM8arGass4Prwy3G9pxX8j4iPKHWSgfSeqfKpMMBTVqadO5zPFXUOxqFjDOoKAO2lYusOdCIN5/X0sNQd7Bbc9RS59vG8N6yOGagwaATtEciSYr/4SVaqUTlyGiyegOb8OSoplj7jOyOvbUsaHEy3mVE7q992zImyPm+mvQjbWHS0gat+vzTMWRTVmbd8AdnXy3xnCDKhizsowKBtu6x4ksct1u9A5Q==", "signature": "ZUD0Nb2/4AAQRW1KQZIPrlZI7MtPbjM144TP3uIsBwtVTEO2Ew1g5cEb/ZAGSzIlyAiyqN/HVPYOKqpmzdLDHZtn2bQB6AjphLTgl0wwLjOhVc7QLHddWBQoetEhetSXdNZqCaQRb05p0TCA4J01fThVDbmonpEoAaR4xkDPw2zQKIFnYohkQY7xpqOFHfVCa4v/98LgUKkGkMOVXxLqvgVuUwmCWw+Or3WcIA9pxz4438v/VC1fuYGzk3bXHfnSoDstrXCQvfpsQ22O9vY3wwb2gxSxOHZWMMn8b542tzGAw9Ul/x8yCnjcdF1GxbEHoljgR5iSlqsJ85r2WNIo6A==", "filename": "1.txt"}
\ No newline at end of file
diff --git a/private.pem b/private.pem
new file mode 100644
index 0000000..138f6d8
--- /dev/null
+++ b/private.pem
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBPQIBAAJBAKJRCS1LQm9GAgZejtry1W0wMANwQQau01PeezV6DY7TOG+G08cv
+boN4UaS5comyK7QKIr6WVi/4o+Pm5UcZsQ0CAwEAAQJAY0EgVnUd48Mwe8qYmmRB
+hCoiQggDi12eVjvGpbXDPWF3yHX+mVbqrJY3oi9Ub9iJW8Lqw97DcBp/74fvvxd/
+9QIjAPQTvQk8a7yTItR/Tyl/UStL0e+3KY6wuhWeEzACMV7JFcMCHwCqPtsRTG8e
+ZBgat2p3ih2tkkO/XNshxOLibUZiIO8CIwCpH2A2HSK96OoSeiB9LZYtvPy78Jug
+Hr7iKcU719kjx4wHAh8AqULQ/wPlPmv54yYUfkEdfKJ9JNcnLw3XHZPTdGCVAiJa
+N3aZQDyYTX+/8V0E7vxaUlYJMgwXtXs+94qi25rsIWQr
+-----END RSA PRIVATE KEY-----
diff --git a/public.pem b/public.pem
new file mode 100644
index 0000000..9cb3710
--- /dev/null
+++ b/public.pem
@@ -0,0 +1,4 @@
+-----BEGIN RSA PUBLIC KEY-----
+MEgCQQCiUQktS0JvRgIGXo7a8tVtMDADcEEGrtNT3ns1eg2O0zhvhtPHL26DeFGk
+uXKJsiu0CiK+llYv+KPj5uVHGbENAgMBAAE=
+-----END RSA PUBLIC KEY-----
diff --git a/receiver_private.pem b/receiver_private.pem
new file mode 100644
index 0000000..8aefb56
--- /dev/null
+++ b/receiver_private.pem
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpAIBAAKCAQEAqcmg7dhBByM+WbVKZ+5wfEO2eCRD0OhyjGZaVMEkfkv9jWon
+H8nY9HT8lziJByNbs6ZbZnFkPoUxBi52938Bq2pTAJ3Z5l06qLfd6ryVdAO0IxZG
+3+RZ2mfL4Jwg7jTrJ5ygRaiV/K8FjSzAkrEYHGwKc7mfxkyqmWbdq4f4ETBsiZ6d
+SCoMqtDiSmeZ6/zjryAOGhqHDX/Zh3BqqOcapT1jm6Kf4Pc/BcpsHYQzblve3Frj
+DWnQCzHGBN4AfQ8qmrQAXCaFa8xzAnzgvznVk411Bu2Rmsp1EWrBC5uY8x0IYF7b
+MDi2/Bl5XAbPU32fCo141v2r/NeSV20p2k7DxwIDAQABAoIBAEY3qFHlBxOsHCue
+gayU3DlQCaULHm7FyyXMaJw3ml+PDsfOuGp5oDuNLC9gBq+IjHKyIIev6my+yaUM
+T1AQ2wBowvX00jpmoQ1IqULchhSKOZPvMRWECzL7jUIRX78T7JKfwFq+m3T6bxnR
+Ab1I9zc96V6tzGmGqGEzvQYk/88fYglzuU8xz2uXiKj4/T8XnejuQj7hGKzPdKyf
+zrDTbZ1vrFQutmgWMUMakAyFvn81KFzezhld53VgLSh+6k7tH8bxgzJ/b6BD74Wg
+Na6XkM0xu2OamduNZczpBq2S3QkDPtihSfcZYUQ+z/VGLKsM2LkIGZ7VMgz447y4
+TquhrDUCgYEAvqXVpYm9jPRWPGOMNA00wT3nbA3LjiddVtDFte2JN+JxiYRHvNtj
+ALVZKifpKAmZSm6wVXWZ39LrGv4L0lNvKsGb3JM3bExJ4FmZsqpMzWCOkKM+Q9Cc
+7tVwr2f13Gm2OYAn3dHpXo2knDtsDi2rwDmyAyOUEgANPFCj2v0NViMCgYEA4/05
+Mawn0QTGsIhKHjtWWh3zOQUhroEPR7jqO19/BAE9srJEPuI6rOC4e6exiv/s81zR
+qVsUQMHNfVaV7ka4yCmrUJHPYmvWNA9bZYSXH6AxMmd48SO9gAQx1nMR6YQrxZGW
+GkzihxcGi7e8slXeJsCQ2tY0truJy2R4CYglTA0CgYEArhP8Zb/EnW0JRPDctzaL
+whtFMYvTHwTgnIHa1ciEL8wLQbbQTijAWIg+V1jD83P4TVeOmSndi9sqI6Zuouje
+K9tG9vxRcgiiuED4L4SCxlDxPC5ij0dv1EB+ORujClRYOF7FiCzAez64XJOBkdyv
+48CKw4T8EgeMDlPPmgjP4aMCgYAs3atAtDFNt9Pl75wuYNz4dQZlRTZAohNAuQoX
+Tw6u2hOrM9usSFblqH+FjhWpVf3qUmzMGClfKQRoUv7EWlSIx3J4M4mNQ81uh0sk
+KjiXN64WzjgFtFPZennYSuLOgn0eryzL1i+KCCT4n9rZeX5zP9gByL+s6jEOvqHE
+tm8ojQKBgQCxId3KRqYnmgFbefuuuqbonILGPNPZhkgRNT2l3J85v2IoofhZLsGB
+AfS4mrkQ7UwzoaWdMOsfUYX/H0IWBs6blE/WL2OLPIfDWnmCTNftvbQouKhdMCwd
+rOCwEZ3bH99O8rzvcdEmsgx+AK1g/3PpVFs4P8QGa0qNAIoORWKBbw==
+-----END RSA PRIVATE KEY-----
\ No newline at end of file
diff --git a/receiver_public.pem b/receiver_public.pem
new file mode 100644
index 0000000..83df805
--- /dev/null
+++ b/receiver_public.pem
@@ -0,0 +1,9 @@
+-----BEGIN PUBLIC KEY-----
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqcmg7dhBByM+WbVKZ+5w
+fEO2eCRD0OhyjGZaVMEkfkv9jWonH8nY9HT8lziJByNbs6ZbZnFkPoUxBi52938B
+q2pTAJ3Z5l06qLfd6ryVdAO0IxZG3+RZ2mfL4Jwg7jTrJ5ygRaiV/K8FjSzAkrEY
+HGwKc7mfxkyqmWbdq4f4ETBsiZ6dSCoMqtDiSmeZ6/zjryAOGhqHDX/Zh3BqqOca
+pT1jm6Kf4Pc/BcpsHYQzblve3FrjDWnQCzHGBN4AfQ8qmrQAXCaFa8xzAnzgvznV
+k411Bu2Rmsp1EWrBC5uY8x0IYF7bMDi2/Bl5XAbPU32fCo141v2r/NeSV20p2k7D
+xwIDAQAB
+-----END PUBLIC KEY-----
\ No newline at end of file
diff --git a/sender_private.pem b/sender_private.pem
new file mode 100644
index 0000000..ab6233c
--- /dev/null
+++ b/sender_private.pem
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAtSEr81A8CZPXnscsBgOkbQcrn3/JELmndlf2Ysez8sKCgz04
+pB4XII0o7f2FZkDNLOu5fqs5OmSQd1IZReknGudcw5QJTUEvTKLzbkJNSJzhf0+k
+H5yv9M3nS9DB6+VftjP0Hl84148UqpMUq71BygfwCFiUwgvUBbCfpO+gqth+oa38
+wmcHQUeHYFhsJRGn2wI3URNuZIcJjOax2SCVAqRM/vyAS0Q7MSiGNV0BkVudhWkG
+0/uaIvCRxO/F3TB9F4x5mHgCt1/cnHeQ4H8a7EsEmypSQ2oGB+oRt4GsvfFHwZGz
+8uOUxQkGGCqNt1cLcHoOHuFJBHCSWwN/kF1feQIDAQABAoIBABjj/BQtnHJ8fI73
+M9eHvJq294mtl8XSnW6n29XrN5FOpXy/dv8mm2r/uvYpdqF8mjVoF0+O3AhoNWoQ
+QCTZS2RpEthViYmyQXu4kNdACTrHRD2ohhdKAuwTN4u1nlB6btKtBQj/cOI+aUqf
+d6G6GkZXHOcotRiNY498nBOgUmXnqw+AMEDabzO2v2je+XBX5QCcHnfoTCsvlmqL
+Am2Jr2Oq1pdO2kEDkDTPEJNdqNvVzVhcF5FSIR09jMsMEAUW9zyfcG+WvCWWDwC0
+IcLSXmPYyfa2RNNaUoow3vTqFKBLt2KfE1FArwZkVIsVWwW+ucgEbvtXTbCOUrKl
+oFyga9kCgYEAzWpRazlPsHHoYu/n40q8BdS/xWnchIlWgMKJCPXRDcJ4FLs3DpeU
+tD/gyQCzZQ25sa8FpGhXvsaXibkY+f8TlFvUTNptP+5HRDfiZhJgCrdAiAQ8bu8U
+u82nSf2w6paLmt7cR6yIEk/lLmHBsNICH2HvXk22HGOEFjQIV3Mh2/8CgYEA4bvY
+grmCN6bIDq0Ws4KwcUnv7GqTS1BAsPr9YiZVst+wrNyozb9YZY913NwGcVJhebug
+nXLP2OCQdc778lKvsGfYUoTfnlW9VSxhtC/YMUnQniVVmOwXuS+lf2rgdlxfX7qs
+KHE5G1stbIIcDd6+ggIy7/OOLfCvcr6JXoNtpIcCgYEAgM5FJa43WRXkOX3j83Oe
+eS2R3vFltLoFwxG5KiQyJaWm9KD8girstSZFBuVomFpF8bQlHpXLR7ZxuYuWrNSU
+63e1pUdmMCtzBsTgM08caDvGvEOjvZAveSAY4V2x/TfPbJqImG0Imir9M9tawEy/
+xfv8RC8Inb6NSfrwrB1mwvMCgYA1GvYyuuXRpeEG4t2mWaac4GIbYm9IlpbBjCq0
+PoSG0m1EHZ1w2gU3z2pRDUpOuqzH8MY2hF41jY8uyAUp2x4OCEAyGaRqIY2rTgem
+VmMsJUt5CRt8IH7sSDNNKJ2p+s1NPiNmWEyxDOBA2NM0yCRVfaLyJIBcenUsL3st
+ywmuXQKBgDkgYTRIh3DtGZ9+NhjgkFJNwKHt3j5bq+7ySnDERBtJHcsKfQN/1f1f
+JVbHAw6D4fJwp+F3ZMAWcgxHuuTSaus1i5Wb1vrvcEUzaYUjOkEDCV2Ow/Qb/Ssc
+vSjFMSE4KhB4z3ry3UnK8dOtIVudBKNTAmEREx7H/ClDMm/3GEGn
+-----END RSA PRIVATE KEY-----
\ No newline at end of file
diff --git a/sender_public.pem b/sender_public.pem
new file mode 100644
index 0000000..cc78e47
--- /dev/null
+++ b/sender_public.pem
@@ -0,0 +1,9 @@
+-----BEGIN PUBLIC KEY-----
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtSEr81A8CZPXnscsBgOk
+bQcrn3/JELmndlf2Ysez8sKCgz04pB4XII0o7f2FZkDNLOu5fqs5OmSQd1IZRekn
+Gudcw5QJTUEvTKLzbkJNSJzhf0+kH5yv9M3nS9DB6+VftjP0Hl84148UqpMUq71B
+ygfwCFiUwgvUBbCfpO+gqth+oa38wmcHQUeHYFhsJRGn2wI3URNuZIcJjOax2SCV
+AqRM/vyAS0Q7MSiGNV0BkVudhWkG0/uaIvCRxO/F3TB9F4x5mHgCt1/cnHeQ4H8a
+7EsEmypSQ2oGB+oRt4GsvfFHwZGz8uOUxQkGGCqNt1cLcHoOHuFJBHCSWwN/kF1f
+eQIDAQAB
+-----END PUBLIC KEY-----
\ No newline at end of file