密码学代写 | COMP2300/COMP6300 Applied Cryptography
这个作业是测试对数论,抽象代数和公钥的知识密码学的掌握
COMP2300/COMP6300 Applied Cryptography
Assignment 2
Total marks: 30
Weighting: 15%
Deadline: Sunday (End of Week 12), 31 May 2020 (11:59 pm).
Note: Submit the assignment via Turnitin (Include Student Name and ID in assignment).
Objectives
This assignment has been designed to test your knowledge of number theory, abstract algebra, and public-key
cryptography.
Notes
• Assumptions (if any) must be stated clearly in your answers.
• There may not be one right answer for some of the questions. So, your explanations need to present
your case clearly. The explanations you provide do not have to be long; conciseness is preferred to
meandering.
• It is recommended that you use Pari/GP for the numerical components of the assignment. However, you
are free to use another programming language (such as Java) provided the question/answer/solution
can be naturally translated into a similar problem in that programming language.
1
• The hints to solutions of almost all questions in this assignment are in the textbook [Sma16].
Submission
• On line submission via Turnitin.
Assignments will be marked and returned online. There are no hardcopy submissions for written assignments.
Ensure you submit the correct file. The submission process shows you a complete preview of your entire
assignment after you have uploaded it but before you have submitted it. Carefully check through every
single page to ensure everything is there and the correct version has been uploaded.
Multiple submissions may be possible via Turnitin prior to the final due date and time of an assessment task
and originality reports may be made available to students to view and check their levels of similarity prior to
making a final submission. Students are encouraged to use these reports to ensure that they do not breach
the Academic Honesty Policy through high levels of similarity (plagiarism).
Teaching staff will use the report to judge whether plagiarism has occurred and whether penalties should
apply for breaches of the Academic Honesty Policy. Any similar text identified by Turnitin will be considered
carefully to see if it is indeed a breach of the Academic Honesty Policy.
2
Question 1 (10 marks)
This question tests your knowledge of what constitutes a group. Let n be a composite number. Let X =
{1, 2, . . . , n − 1}.
(a) Let x ∈ X. Show that if there are integers a, b such that ax + bn = 1, then gcd(x, n) = 1. (2 marks)
(b) Let x ∈ X. Show that if gcd(x, n) 6= 1 then ax ≡ 1 (mod n) has no solution for any integer a. (2
marks)
(c) Show that there is at least one element x ∈ X, such that gcd(x, n) 6= 1. (2 marks)
(d) Let ∗ be multiplication modulo n. That is, for x, y ∈ X, x ∗ y = xy (mod n). Prove that (X, ∗) is not a
group. (2 marks)
(e) Let n = 13424. Let a = 13314 and let b = 5889. What are the multiplicative inverses of a and b modulo
n? Show how you obtained the result. (2 marks)
Question 2 (5 marks)
Recall that a Carmichael number n is any composite number which satisfies Fermat’s little theorem, i.e.,
a
n−1 ≡ 1 (mod n),
for every a such that gcd(a, n) = 1. Such a number is also called a pseudoprime. Write a PARI/GP script
that finds and prints all Carmichael numbers less than or equal to 10,000. (Hint: You may use the isprime()
command in PARI/GP). (5 marks)
Question 3 (5 marks)
The discrete logarithm problem (DLP) is not always hard. In particular, we cannot simply choose any group
G with an operation (addition or multiplication; appropriately defined), and assume that DLP is hard in
that group. The following questions highlight this.
(a) Show that the discrete logarithm problem (DLP) is easy on the group of integers modulo a prime n under
addition, i.e., the group (Zn, +). More precisely, given g, h ∈ Zn, find an x such that x · g ≡ h (mod n). (3
marks)
COMP2300/COMP6300 Applied Cryptography
Assignment 2
Total marks: 30
Weighting: 15%
Deadline: Sunday (End of Week 12), 31 May 2020 (11:59 pm).
Note: Submit the assignment via Turnitin (Include Student Name and ID in assignment).
Objectives
This assignment has been designed to test your knowledge of number theory, abstract algebra, and public-key
cryptography.
Notes
• Assumptions (if any) must be stated clearly in your answers.
• There may not be one right answer for some of the questions. So, your explanations need to present
your case clearly. The explanations you provide do not have to be long; conciseness is preferred to
meandering.
• It is recommended that you use Pari/GP for the numerical components of the assignment. However, you
are free to use another programming language (such as Java) provided the question/answer/solution
can be naturally translated into a similar problem in that programming language.
1
• The hints to solutions of almost all questions in this assignment are in the textbook [Sma16].
Submission
• On line submission via Turnitin.
Assignments will be marked and returned online. There are no hardcopy submissions for written assignments.
Ensure you submit the correct file. The submission process shows you a complete preview of your entire
assignment after you have uploaded it but before you have submitted it. Carefully check through every
single page to ensure everything is there and the correct version has been uploaded.
Multiple submissions may be possible via Turnitin prior to the final due date and time of an assessment task
and originality reports may be made available to students to view and check their levels of similarity prior to
making a final submission. Students are encouraged to use these reports to ensure that they do not breach
the Academic Honesty Policy through high levels of similarity (plagiarism).
Teaching staff will use the report to judge whether plagiarism has occurred and whether penalties should
apply for breaches of the Academic Honesty Policy. Any similar text identified by Turnitin will be considered
carefully to see if it is indeed a breach of the Academic Honesty Policy.
2
Question 1 (10 marks)
This question tests your knowledge of what constitutes a group. Let n be a composite number. Let X =
{1, 2, . . . , n − 1}.
(a) Let x ∈ X. Show that if there are integers a, b such that ax + bn = 1, then gcd(x, n) = 1. (2 marks)
(b) Let x ∈ X. Show that if gcd(x, n) 6= 1 then ax ≡ 1 (mod n) has no solution for any integer a. (2
marks)
(c) Show that there is at least one element x ∈ X, such that gcd(x, n) 6= 1. (2 marks)
(d) Let ∗ be multiplication modulo n. That is, for x, y ∈ X, x ∗ y = xy (mod n). Prove that (X, ∗) is not a
group. (2 marks)
(e) Let n = 13424. Let a = 13314 and let b = 5889. What are the multiplicative inverses of a and b modulo
n? Show how you obtained the result. (2 marks)
Question 2 (5 marks)
Recall that a Carmichael number n is any composite number which satisfies Fermat’s little theorem, i.e.,
a
n−1 ≡ 1 (mod n),
for every a such that gcd(a, n) = 1. Such a number is also called a pseudoprime. Write a PARI/GP script
that finds and prints all Carmichael numbers less than or equal to 10,000. (Hint: You may use the isprime()
command in PARI/GP). (5 marks)
Question 3 (5 marks)
The discrete logarithm problem (DLP) is not always hard. In particular, we cannot simply choose any group
G with an operation (addition or multiplication; appropriately defined), and assume that DLP is hard in
that group. The following questions highlight this.
(a) Show that the discrete logarithm problem (DLP) is easy on the group of integers modulo a prime n under
addition, i.e., the group (Zn, +). More precisely, given g, h ∈ Zn, find an x such that x · g ≡ h (mod n). (3
marks)