Homework 6: Side-channel safe programming for MPC
Your tasks are described in the lab slides:
Deadline: May 31st, 2025 23:59 EEST
Guidelines:
- Please present solutions to tasks 1 and 2, share the SecreC code. Send a zip file of the two SecreC source code files.
- In both code files, use comments (// and /* … */ both work) and explain your use of standard library operations outside shared3p and stdlib modules.
- E.g., if you had used sorting in the initial version of Task 2, you would explain what sorting achieves for this task.
- At the end of your main function, explain in code comments, how much about the input is leaked, in your code and in standard library functions you’ve added (how much declassify is used, is there a risk to privacy?)
Links:
- SecreC language tutorial: https://docs.sharemind.cyber.ee/sharemind-mpc/2023.09/prologue/overview.html
- SecreC language reference: https://docs.sharemind.cyber.ee/sharemind-mpc/2023.09/development/secrec-reference.html
- SecreC Standard Library functions: https://docs.sharemind.cyber.ee/sharemind-mpc/2023.09/API/secrec-stdlib/shared3p.html
- same content, but with different formatting: https://sharemind-sdk.github.io/stdlib/reference/modules.html - copy of this is also in the Sharemind SDK VM.
- SecreC Standard Library source code: https://github.com/sharemind-sdk/secrec-stdlib/tree/stable-2.8/lib
Grading:
- Task 1 will give up to 30% of points (as we'll solve this in the lab, but you have to comment it yourself further) and Task 2 up to 70%.
- Make sure your solutions compile without errors. If you have a solution idea, but get stuck with the programming language syntax then either comment clearly where you couldn't get the program compiling or write down your solution idea as comment (e.g., using syntax that you think should work). Solutions that do not compile and have no mention of it in the code comments, will not be graded!
- Plagiarism will not be tolerated.
Lahenduste esitamiseks peate olema sisse loginud ja kursusele registreerunud.