醫療標準及術語(期末作業-訊息加密) === :::info Finall HomeWork from [郭冠良老師的網頁](https://www.csie.ntu.edu.tw/~d93009/scholar.php) ::: # 作業內容及需求<small>[HW頁面](https://www.csie.ntu.edu.tw/~d93009/mydoc/slide/2022_Spring_FJ_HW_0221.pdf)</small> - 運用非對稱金鑰實作,保證只有對方可以看到您的照片,也讓對方可以確定照片確實是您寄的。 - 將==學號.enc==及==key.bin.enc==寄到老師或助教信箱(找line群) # 開始 <small>for windows</small> ## 0.事先準備 ### 環境 - 下載[msys2-x86_64-20220503.exe](https://github.com/msys2/msys2-installer/releases/download/2022-05-03/msys2-x86_64-20220503.exe) - 接著無腦下一步,最後直接勾選`Run MSYS2 64bit now.`,會出現一個像是cmd的視窗 - 先輸入`pacman -Syu`,若出現`[y/n]`則輸入`y` ### 要加密的訊息(圖片) - 找一張要交出去的照片,並將其命名為`自己的學號.jpg` - 把這張照片存在`C:/msys64/home/user`裡面 ### 取得接收方的public key - 到[冠良的public key](https://www.csie.ntu.edu.tw/~d93009/mydoc/public_key.pem) - 按右鍵另存新檔 1. 將其命名為`public_key.pem` 2. 存檔類型選所有檔案,這樣附檔名才會變成.pem ![](https://i.imgur.com/Vv0et82.jpg) 3. 存檔位置跟上面一樣是`C:/msys64/home/user` ## 1.指令<small>學號改成自己的</small> 1. 從`C:/msys64`先開啟`msys2.exe` 2. 接下來安裝tar,輸入`pacman -Ss tar`確認可安裝版本 3. `pacman -S tar # Installs msys/tar version 1.29-1`開始安裝 4. `openssl`確認openssl 5. `exit`回到Linux shell 6. `openssl genrsa -out private_key_alice.pem 1024`![](https://i.imgur.com/mjWIfHO.png) 7. `openssl rsa -in private_key_alice.pem -out public_key_alice.pem -outform PEM -pubout` 8. `openssl dgst -sha256 學號.jpg`會出現一段SHA256的碼 9. `openssl dgst -sha256 -sign private_key_alice.pem -out 學號.jpg.dgst.sign 學號.jpg` 10. `tar czvf 學號.tar.gz 學號.jpg.dgst.sign 學號.jpg public_key_alice.pem`![](https://i.imgur.com/GGbv7O5.png) 11. `openssl rand -base64 64 > key.bin` 12. `openssl enc -aes-256-cbc -pbkdf2 -salt -in 學號.tar.gz -out 學號.enc -pass file:key.bin`![](https://i.imgur.com/6FtHC77.png) 13. `openssl rsautl -encrypt -inkey public_key.pem -pubin -in key.bin -out key.bin.enc` ## 2.交作業 1. 在`C:/msys64/home/user`裡面可以找到要交出去的兩個檔案==學號.enc==及==key.bin.enc== 2. 寄老師或助教信箱 ###### tags: `醫療標準及術語` `FJU-MIIA` `1102` `2021` <style> .navbar-brand::after { content: " × FJUMIIA"; } </style>