ÖVNING 6. KRYPTOGRAFINS MATEMATISKA GRUNDER
Del A. Estimate the computational complexity of the following algorithms
a) Search in an unsorted array
The complexity of a sorting algorithm, which repeatedly copies into a new sorted array
the smallest still not copied element from an unsorted array of n elements, is O(n), since
on average n/2 element must be checked to find the next element to copy and this check
must be repeated n-1 times. Insertion sort's advantage is that it only scans as many
elements as needed to determine the correct location of the element.
b) Binary search in a sorted array
Binary insertion sort employs a binary search to determine the correct location to insert
new elements. It’s called subpolynomial COMPLEXITY O(f(n)), where 1<f(n)<n when
n, for example binary search in a sorted array of size n has logarithmic complexity
O(log2n). If the cost of comparisons exceeds the cost of swaps, as is the case for example
with string keys stored by reference or with human interaction, then maby binary search
is a good way.
c) Bubble sort of an unsorted array
Bubble sort works by repeatedly stepping through the list to be sorted, comparing each
pair of adjacent items and swapping them if they are in the wrong order.
Bubble sort is more efficient in practice than most other simple quadratic (i.e. O(n2))
algorithms. The average running time is n2/4, and the running time is linear in the best
case.
Del B. Show all calculation steps in an optimal calculation of
a) 6 mod 26 (start with 62 mod 26, 64 mod 26 and 68 mod 26)
6²mod26=10
6⁴ mod26=(10*10)mod26=22
6⁸ mod26=(22*22)mod26=16 (22*22/26-----0.61*26)
6¹⁵ mod26=6*6²*6⁴ *6⁸ mod26 = 6*10*22*16mod26=8
15
b) 5047 mod 47 (use Fermat's Theorem)
50⁴ ⁶ mod47=1
50⁴ ⁷ mod47 = 50⁴ ⁶ mod47*50mod47=3
Del C.
a) How many relative primes to 21 and smaller than 21 can be found? (use Euler's
Totient Function)
7*3 (relativ primtal * relativa primtal) = 21
6*2 (så här får man mängden relativa primtal (p-1) * (q-1)) =12
b) Which are these relative primes to 21?
21{1,2,4,5,8,10,11,13,16,17,19,20}
Del D.
a) Why is 288 mod 15 = 1? (apply Euler's Theorem)
3*5=15
2*4=8 (Eulers function av 15)
28 och 15 är relativa primtal för att det går att tillämpa Eulers Totient Function. Då det
här stämmer blir svaret alltid 1.
b) Show by calculation that 288 mod 15 is really 1
28mod15=13
13⁸ mod15=
13²mod15=4
13⁴ mod15=(4*4)mod15=1
13⁸ mod15=(1*1)mod15=1
Del E. Which discrete inverses exist/do not exist and why?
a) 17-1 mod 26
17 and 26 do not have common factors (so they are relative primes).
17⁻ ¹mod26 exists
b) 13-1 mod 26
13⁻ ¹mod26 do have an common factor that is 13, they are not relative primes.
13⁻ ¹mod26 does not exist.
Del F. Show that (n-1)-1 mod n = n-1 for any integer n>1
n and n-1 are always relative primes
(n-1)*(n-1)modn=
(n²-2n+1)mod n = n²mod n – 2n*mod n + 1*mod n = 0 - 0 + 1 = 1
The product of an integer and an inverse integer should be 1.
Del G. Modular inverse and division
a) Determine a-1 mod 200 for 3 values a, which are relative primes to 200. Use the
Extended Euclidean Algorithm. How many iterations are required? The calculation of 9-1
mod 26 in the example on the Course Portal requires 2 iteration steps until the answer 3
is obtained. Notice that the modulo should be applied to a possible negative answer. For
example, -17 mod 200 = (-17 + 200) = 183
7 and 143 are each others inverses with the help of three iterations
3 and 67 are each others inverses with the help of two iterations
133 and 197 are each others inverses with the help of three iterations
b) Calculate (9/13) mod 53
(9*(13⁻ ¹mod53))mod53
p=53=1*53+0*13
q=13=0*53+1*13
gcd(p,q)=gcd(q,r)
d=pdivq=53div13=4, r=p mod q 53mod13=1
9*1mod53 = 9
r=1=n1*53+n2*13 => n2=13^-1mod53 =>
r=p-d*q=53-(53div13)*13=1
since r=1 => n2=13^-1mod53 = ramod53=(1*13)mod53=3 (a = 13)
(3*9)mod53)=1 => OK
Del H. Discrete logarithm. Find the discrete logarithm of 10 in the basis 2 for modulo 11
(find x when 2x mod 11 = 10)
2¹ mod11 = 2
2² mod11 = 4
2³ mod11 = 8
2⁴ mod11 = 5
2⁵ mod11 = 10
Result: x is 5.
Del I. Integer vectorization.
a) Find x mod 165 when x mod 3 = 2, x mod 5 = 4, and x mod 11 = 7 (use Chinese
Remainder Theorem)
(m1,m2,m3) = (3, 5, 11), M1=165/3=55, M2=165/5=33, M3=165/11=15
c1=55*(55⁻ ¹mod3)=55*1 since (55*1)mod3=1
c2=33*(33⁻ ¹mod5)=33*2=66 since (33*2)mod5=1
c3=15*(15⁻ ¹mod11)=15*3=45 since (15*3)mod11=1
xmod165=(2*55+4*66+7*45)mod165=689mod165=29
Control: 29mod3=2, 29mod5=4, 29mod11=7
x = 29
b) Show that (x*x) mod 165 can also be obtained by modular vector multiplication.
(29*29)mod165 = 841mod165 = 16
16mod3 = 1, 16mod5 = 1, 16mod11 = 5
vektor representation of (29*29) is calculated to be (1,1,5)
vektor representation of 29 is (2,4,7)
modular vektor multiplication
((2*2)mod3, (4*4)mod5, (7*7)mod11) = (1,1,5))
Same vector from both approaches => OK
SAMULI KETOLA, MT4 12.11.2009