{"id":77,"date":"2018-07-21T10:43:56","date_gmt":"2018-07-21T10:43:56","guid":{"rendered":"http:\/\/csp11.epgpbooks.inflibnet.ac.in\/?post_type=chapter&#038;p=77"},"modified":"2018-12-27T10:00:07","modified_gmt":"2018-12-27T10:00:07","slug":"modular-exponentiation","status":"publish","type":"chapter","link":"https:\/\/ebooks.inflibnet.ac.in\/csp11\/chapter\/modular-exponentiation\/","title":{"rendered":"Modular Exponentiation"},"content":{"raw":"<div><span style=\"float: right\"><a href=\"https:\/\/youtu.be\/ub7qB1NWD9Y\" target=\"_blank\" rel=\"noopener\"><img src=\"http:\/\/epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/2018\/11\/download.png\" alt=\"epgp books\" width=\"75px\" height=\"75px;\" \/><\/a>\r\n<\/span><\/div>\r\n<div>\r\n\r\n&nbsp;\r\n\r\n&nbsp;\r\n\r\n&nbsp;\r\n\r\n&nbsp;\r\n\r\n<strong>Learning Objectives<\/strong>\r\n\r\n\u00d8\u00a0 To review the concept of Modular Exponentiation\r\n\r\n\u00d8\u00a0\u00a0 To define the purpose of Modular Exponentiation in cryptography\r\n\r\n\u00d8\u00a0\u00a0 To discuss about the inverse multiplication\r\n\r\n\u00d8\u00a0\u00a0 To understand these concepts with some examples\r\n\r\n&nbsp;\r\n\r\n<strong>7.1 Introduction<\/strong>\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\">Modular exponentiation is an<span style=\"text-decoration: underline\"> <a href=\"https:\/\/en.wikipedia.org\/wiki\/Exponentiation\">exponentiation\u00a0\u00a0<\/a><\/span>performed over a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Modular_arithmetic\">modulus. <\/a>It is useful in <a href=\"https:\/\/en.wikipedia.org\/wiki\/Computer_science\">computer science, <\/a>especially in the field of <a href=\"https:\/\/en.wikipedia.org\/wiki\/Public-key_cryptography\">public-key cryptography.<\/a><\/p>\r\n&nbsp;\r\n<p style=\"text-align: justify\">Consider the following scenario,<\/p>\r\n&nbsp;\r\n\r\nA<sup>B<\/sup> mod C = ( (A mod C)<sup>B<\/sup> ) mod C\r\n\r\n&nbsp;\r\n\r\nOften we want to calculate AB mod C for large values of B.\r\n\r\nUnfortunately, A<sup>B<\/sup> becomes very large for even modest sized values for B.\r\n\r\n&nbsp;\r\n\r\nFor Example:\r\n\r\n&nbsp;\r\n\r\n2<sup>90<\/sup> = 1237940039285380274899124224\r\n\r\n7<sup>256<\/sup> = 221359540004604815545018861547494593716251705026007306991636639052470\r\n\r\n4974007989996848003433\r\n\r\n<\/div>\r\n<div>\r\n\r\n\u00a0 \u00a0 837940380782794455262312607598867363425940560014856027866381946458951\r\n\r\n20583737911647366324673350968 0721264246243189632348313601\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\">These huge values cause our calculators and computers to return overflow errors and also it would take a long time to find the mod of these huge numbers directly.In order to implement exponentiation relative some modulo needs to be done a lot. So this operation better be doable, and fast.<\/p>\r\n&nbsp;\r\n\r\n&nbsp;\r\n\r\n<strong>7.2 Fast Modular Exponentiation<\/strong>\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\">For real-life needs of number theoretic computations, just raising numbers to large exponents isn't very useful, because extremely huge numbers start appearing very quickly, and these don't have much use. What's much more useful is <a href=\"http:\/\/en.wikipedia.org\/wiki\/Modular_exponentiation\">modular\u00a0<\/a><a href=\"http:\/\/en.wikipedia.org\/wiki\/Modular_exponentiation\">exponentiation, <\/a>raising integers to high powers . In such case, we can reuse the efficient algorithms developed in the previous article, with very few modifications to perform modular exponentiation as well. This is possible because of some convenient properties of modular arithmetic. In order to implement exponentiation relative some modulo needs to be done a lot. So this operation better be doable, and fast.<\/p>\r\n&nbsp;\r\n\r\n1)\u00a0 Q: How is it even possible to compute 2853<sup>3397<\/sup> mod 4559 ?\r\n\r\nAfter all, 2853<sup>3397<\/sup> has approximately 3397\u00b74 digits!\r\n\r\n&nbsp;\r\n\r\nA:\u00a0\u00a0 By taking the mod after each multiplication.\r\n\r\nexample:\r\n\r\n&nbsp;\r\n\r\n23<sup>3<\/sup> mod 30\u00a0=\u00a0\u00a0 -7<sup>3<\/sup> (mod 30)\r\n\r\n= (-7)<sup>2<\/sup> \u00b7(-7) (mod 30) 49 \u00b7 (-7) (mod 30) 19\u00b7(-7) (mod 30) -133 (mod 30)\r\n\r\n=17 (mod 30)\r\n\r\n&nbsp;\r\n\r\nTherefore, 23<sup>3<\/sup> mod 30 = 17.\r\n\r\n<\/div>\r\n&nbsp;\r\n<div>\r\n<p style=\"text-align: justify\">2)\u00a0 <strong>Q<\/strong>: What if had to figure out 23<sup>16<\/sup> mod 30. Same way tedious: need to multiply 15 times. Is there a better way?<\/p>\r\n&nbsp;\r\n\r\n<strong>A<\/strong>: Better way. Notice that 16 = 2\u00b72\u00b72\u00b72 so that 23<sup>16<\/sup> = 23<sup>2\u00b72\u00b72\u00b72<\/sup> = (((23<sup>2<\/sup>)<sup>2<\/sup>)<sup>2<\/sup>)<sup>2<\/sup>\r\n\r\n&nbsp;\r\n\r\nTherefore:\r\n\r\n&nbsp;\r\n\r\n23<sup>16<\/sup> mod 30\u00a0\u00a0\u00a0 (((-7<sup>2<\/sup>)<sup>2<\/sup>)<sup>2<\/sup>)<sup>2<\/sup> (mod 30)\r\n\r\n=(((49)<sup>2<\/sup>)<sup>2<\/sup>)<sup>2<\/sup> (mod 30)= (((-11)<sup>2<\/sup>)<sup>2<\/sup>)<sup>2<\/sup> (mod 30)\r\n\r\n=((121)<sup>2<\/sup>)<sup>2<\/sup> (mod 30) =((1)<sup>2<\/sup> )<sup>2<\/sup> (mod 30)\r\n\r\n=(1)<sup>2<\/sup> (mod 30) =\u00a0 1(mod 30)\r\n\r\nWhich implies that 2316 mod 30 = 1.\r\n\r\n&nbsp;\r\n\r\n3) <strong>Q<\/strong>: How about 23<sup>25<\/sup> mod 30 ?\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\"><strong>A<\/strong>: The previous method of repeated squaring works for any exponent that\u2019s a power of 2. 25. However, we can break 25 down as a sum of such powers: 25 = 16 + 8 + 1. Apply repeated squaring to each part, and multiply the results together. Previous calculation:<\/p>\r\n&nbsp;\r\n\r\n23<sup>8<\/sup> mod 30 = 23<sup>16<\/sup> mod 30 = 1\r\n\r\n&nbsp;\r\n\r\nThus: 23<sup>25<\/sup> mod 30\u00a0\u00a0\u00a0 23<sup>16<\/sup>+8+1 (mod 30)\r\n\r\n&nbsp;\r\n\r\nThe previous method of repeated squaring works for any exponent that\u2019s a power of\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\">2.\u00a0\u00a0\u00a0\u00a0 25. However, we can break 25 down as a sum of such powers: 25 = 16 + 8 + 1. Apply repeated squaring to each part, and multiply the results together. Previous calculation:<\/p>\r\n&nbsp;\r\n\r\n23<sup>8<\/sup> mod 30 = 23<sup>16<\/sup> mod 30 = 1\r\n\r\n&nbsp;\r\n\r\nThus: 23<sup>25<\/sup> mod 30\u00a0\u00a0 23<sup>16+8+1<\/sup> (mod 30) 23<sup>16<\/sup>\u00b723<sup>8<\/sup>\u00b723<sup>1<\/sup> (mod 30)\u00a0 1\u00b71\u00b723 (mod 30)\r\n\r\n&nbsp;\r\n\r\nFinal answer:\u00a0\u00a0 23<sup>25<\/sup> mod 30 = 23\r\n\r\n&nbsp;\r\n\r\n4)\u00a0 <strong>Q<\/strong>: How could we have figured out the decomposition 25 = 16 + 8 + 1 from the binary (unsigned) representation of 25?\r\n\r\n<\/div>\r\n<div>\r\n\r\n<strong>\u00a0 \u00a0 A<\/strong>: 25 = (11001)<sub>2<\/sub> This means that\r\n\r\n25 = 1\u00b716+1\u00b78+0\u00b74+0\u00b72+1\u00b71 = 16+8+1\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\">Can tell which powers of 2 appear by where the 1\u2019s are. This follows from the definition of binary representation.<\/p>\r\n&nbsp;\r\n\r\n<strong>7.3 Properties of Modular Arithmetic<\/strong>\r\n\r\n&nbsp;\r\n\r\n1.\u00a0\u00a0\u00a0\u00a0\u00a0 [(a mod n) + (b mod n)] mod n = (a + b) mod n\r\n\r\n2.\u00a0\u00a0\u00a0\u00a0\u00a0 [(a mod n) - (b mod n)] mod n = (a - b) mod n\r\n\r\n3.\u00a0\u00a0\u00a0\u00a0\u00a0 [(a mod n) x (b mod n)] mod n = (a x b) mod n\r\n\r\n&nbsp;\r\n\r\n<strong>7.3.1 Proof of property 1.<\/strong>\r\n\r\n&nbsp;\r\n\r\nLet (a mod n) = Ra and (b mod n) = Rb. Then, we can write a = Ra + jn for some integer j and b = Rb + kn for some integer k.\r\n\r\n&nbsp;\r\n\r\n(a + b) mod n = (Ra + jn + Rb + kn) mod n\r\n\r\n=\u00a0 [Ra + Rb + (k + j) n] mod n\r\n\r\n=\u00a0 (Ra + Rb) mod n\r\n\r\n=\u00a0 [(a mod n) + (b mod n)] mod n\r\n\r\n&nbsp;\r\n\r\n<strong>7.3.2 Example<\/strong>\r\n\r\n&nbsp;\r\n\r\n11 mod 8 = 3; 15 mod 8 = 7\r\n\r\n&nbsp;\r\n\r\n[(11 mod 8 ) + (15 mod 8)] mod 8 = 10 mod 8 = 2\r\n\r\n(11 + 15) mod 8 = 26 mod 8 = 2\r\n\r\n[(11 mod 8 ) - (15 mod 8)] mod 8 = -4 mod 8 = 4\r\n\r\n(11 - 15) mod 8 = -4 mod 8 = 4\r\n\r\n[(11 mod 8 ) x (15 mod 8)] mod 8= 21 mod 8 = 5\r\n\r\n(11 x 15) mod 8 = 165 mod 8 = 5\r\n\r\n<\/div>\r\n&nbsp;\r\n<div>\r\n\r\n<strong>7.4 Exponentiation<\/strong>\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\">Exponentiation is done by repeated multiplication, as in ordinary arithmetic. A good thing about modular arithmetic is that the numbers you are working with will be kept relatively small. At each stage of an algorithm, the mod function should be applied.<\/p>\r\n&nbsp;\r\n\r\nThus to multiply <em>39 * 15 mod 11<\/em> we first take mods to get\r\n\r\n&nbsp;\r\n\r\n<em>39 mod 11 = 6 <\/em>and<em> 15 mod 11= 4<\/em>\r\n\r\n&nbsp;\r\n\r\nThe multiplication required is now\r\n\r\n&nbsp;\r\n\r\n<em>6*4 mod 11 = 24 mod 11 = 2<\/em>\r\n\r\n&nbsp;\r\n\r\n<img class=\"alignnone size-full wp-image-80\" src=\"http:\/\/csp11.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/55\/2018\/07\/1-34.png\" alt=\"\" width=\"247\" height=\"111\" \/>\r\n\r\n<strong>7.5 Modular Division<\/strong>\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\">Modular division is defined when modular inverse of the divisor exists. The inverse of an integer \u2018x\u2019 is a another integer \u2018y\u2019 such that (x*y) % m = 1 where m is the modulus. When does inverse exist? Inverse a number \u2018a\u2019 exists under modulo \u2018m\u2019 if \u2018a\u2019 and \u2018m\u2019 are co-prime, i.e., GCD of them is 1.<\/p>\r\n&nbsp;\r\n\r\nWhat is <em>5 \u00f7 3 mod 11<\/em>?\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\"><strong>A<\/strong>: We need to multiply <em>5<\/em> by the <em>inverse<\/em> of <em>3 mod 11.<\/em>When you multiply a number by its inverse, the answer is 1.<\/p>\r\n&nbsp;\r\n\r\nThus the inverse of 2 is \u00bd since 2* \u00bd = 1\r\n\r\nThe inverse of <em>3 mod 11<\/em> is <em>4<\/em> since <em>3*4=1 mod 11<\/em>\r\n\r\nThus <em>5 \u00f7 3 mod 11 = 5*4 mod 11 = 9 mod 11<\/em>\r\n\r\n<\/div>\r\n<em>\u00a0<\/em>\r\n<div>\r\n\r\n<strong>7.6 Euclidean algorithm<\/strong>\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\">The Euclidean algorithm or Euclid's algorithm is an efficient method for computing the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Greatest_common_divisor\">greatest common divisor <\/a>(GCD) of two numbers, the largest number that divides both of them without leaving a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Remainder\">remainder. <\/a>It is named after the ancient Greek <a href=\"https:\/\/en.wikipedia.org\/wiki\/Mathematician\">mathematician <\/a><a href=\"https:\/\/en.wikipedia.org\/wiki\/Euclid\">Euclid, <\/a>who first described it in <a href=\"https:\/\/en.wikipedia.org\/wiki\/Euclid%27s_Elements\">Euclid's Elements <\/a>(c. 300 BC). It is an example of an <a href=\"https:\/\/en.wikipedia.org\/wiki\/Algorithm\">algorithm, <\/a>a step-by-step procedure for performing a calculation according to well-defined rules, and is one of the oldest algorithms in common use. It can be used to reduce <a href=\"https:\/\/en.wikipedia.org\/wiki\/Fraction_(mathematics)\">fractions <\/a>to their <a href=\"https:\/\/en.wikipedia.org\/wiki\/Irreducible_fraction\">simplest form, <\/a>and is a part of many other number-theoretic and cryptographic calculations.<\/p>\r\n&nbsp;\r\n<p style=\"text-align: center\">gcd(<em>a,b<\/em>) = gcd(<em>b, b<\/em> mod <em>a<\/em>)<\/p>\r\n<p style=\"text-align: center\">int Euclid(int a, int b) {<\/p>\r\n<p style=\"text-align: center\">if (b == 0) return a;<\/p>\r\n<p style=\"text-align: center\">else return Euclid(b, b % a)<\/p>\r\n<p style=\"text-align: center\">}<\/p>\r\n&nbsp;\r\n\r\n<strong>7.6.1 Finding Inverses in Z<\/strong><strong>n<\/strong>\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\">The numbers that have inverses in Zn are relatively prime to n. We can use the Euclidean Algorithm to see if a given \u201cx\u201d is relatively prime to \u201cn\u201d; then we know that an inverse does exist. How can we find the inverse without looking at all the remainders? A problem for large n.For example if we are trying to find x with 4 x \u2261 1 ( mod 13 ) 4x\u22611(mod13). Since you already have 13 = 4 \u22c5 3 + 1 13=4\u22c53+1, it follows that 4 \u22c5 3 \u2261 \u2212 1 ( mod 13 ) 4\u22c53\u2261\u22121(mod13). That's almost, but not quite what you need.<\/p>\r\n&nbsp;\r\n\r\nSo let's multiply left and right by -1. Then you get:\r\n\r\n4 \u22c5 \u2212 3 \u2261 1 ( mod 13 )\r\n\r\n4\u22c5\u22123\u22611(mod13) Much closer.\r\n\r\nIt follows that 4\u22121\u2261\u22123\u226110(mod13).\r\n\r\n<\/div>\r\n&nbsp;\r\n<div>\r\n\r\n<strong>7.6.2 Using the Extended Euclidean Algorithm<\/strong>\r\n\r\n&nbsp;\r\n\r\nThe extended Euclidean algorithm is particularly useful when a and b are coprime, since x is the modular multiplicative inverse of a modulo b, and y is the modular multiplicative inverse of b modulo a. Similarly, the polynomial extended Euclidean algorithm allows one to compute the multiplicative inverse in algebraic field extensions and, in particular in finite fields of non prime order. It follows that both extended Euclidean algorithms are widely used in cryptography.\r\n\r\n&nbsp;\r\n<ul>\r\n \t<li>Formalizing the backward steps we get this formula:<\/li>\r\n<\/ul>\r\ny0 = 0\r\n\r\ny1 = 1\r\n\r\nyi = (yi-2 \u2013 [yi-1 * qi-2]); i &gt; 1\r\n\r\n&nbsp;\r\n\r\nRelated to the \u201cMagic Box\u201d method\r\n\r\n&nbsp;\r\n\r\n<img class=\"alignnone size-full wp-image-81\" src=\"http:\/\/csp11.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/55\/2018\/07\/1-35.png\" alt=\"\" width=\"631\" height=\"468\" \/>\r\n\r\n<\/div>\r\n&nbsp;\r\n<div>\r\n\r\nUsing the Extended Euclidean Algorithm\r\n\r\n&nbsp;\r\n\r\ny0 = 0\r\n\r\ny1 = 1\r\n\r\nyi = (yi-2 \u2013 [yi-1 * qi-2]); i &gt; 1\r\n\r\n&nbsp;\r\n\r\nTry it for\u2026\r\n\r\n&nbsp;\r\n\r\n1)\u00a0\u00a0\u00a0\u00a0 13 mod 22\r\n\r\n2)\u00a0\u00a0\u00a0\u00a0 17 mod 97\r\n\r\n&nbsp;\r\n\r\n<strong>A:\u00a0\u00a0 <\/strong><strong>13 mod 22<\/strong>\r\n\r\n&nbsp;\r\n\r\n22 = 1 * 13 + 9\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 y[0]=0\r\n13 = 1 * 9 + 4\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0y[1]=1\r\n9 = 2 * 4 + 1\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 y[2]=0 - 1 * 1 mod 22 = 21\r\n4 = 4 * 1 + 0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0y[3]=1 - 21 * 1 mod 22 = 2\r\n\r\n&nbsp;\r\n\r\nLast Step: y[4]=21 - 2 * 2 mod 22 = 17\r\n\r\nCheck: 17 * 13 = 221 = 1 mod 22\r\n\r\n&nbsp;\r\n\r\n&nbsp;\r\n\r\n&nbsp;\r\n\r\nA: 17 mod 97\r\n97 = 5 * 17 + 12\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0x[0]=0\r\n17 = 1 * 12 + 5\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0x[1]=1\r\n12 = 2 * 5 + 2\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0x[2]=0 - 1 * 5 mod 97 = 92\r\n5 = 2 * 2 + 1\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0x[3]=1 - 92 * 1 mod 97 = 6\r\n2 = 2 * 1 + 0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 x[4]=92 - 6 * 2 mod 97 = 80\r\nLast Step:\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0x[5]=6 - 80 * 2 mod 97 = 40\r\nCheck: 40 * 17 = 680 = 1 mod 97\r\n\r\n<\/div>\r\n&nbsp;\r\n\r\n<strong>Summary<\/strong>\r\n<ul>\r\n \t<li>Outlined the purpose of Modular Exponentiation<\/li>\r\n \t<li>Discussed about the inverse multiplication and extended Euclidean<\/li>\r\n \t<li>Discussed about the fast exponentiation method<\/li>\r\n \t<li>Worked with various examples related with modular exponentiation and inverse.<\/li>\r\n<\/ul>\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td><strong>you can view video on Modular Exponentiation<\/strong><\/td>\r\n<td><a href=\"https:\/\/youtu.be\/ub7qB1NWD9Y\" target=\"_blank\" rel=\"noopener\"><img class=\"alignnone wp-image-120\" src=\"http:\/\/epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/2018\/11\/download.png\" alt=\"\" width=\"36\" height=\"36\" \/><\/a><\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n\r\n<img class=\"size-full wp-image-82 alignleft\" src=\"http:\/\/csp11.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/55\/2018\/07\/1-36.png\" alt=\"\" width=\"638\" height=\"546\" \/>","rendered":"<div><span style=\"float: right\"><a href=\"https:\/\/youtu.be\/ub7qB1NWD9Y\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"http:\/\/epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/2018\/11\/download.png\" alt=\"epgp books\" width=\"75px\" height=\"75px;\" \/><\/a><br \/>\n<\/span><\/div>\n<div>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Learning Objectives<\/strong><\/p>\n<p>\u00d8\u00a0 To review the concept of Modular Exponentiation<\/p>\n<p>\u00d8\u00a0\u00a0 To define the purpose of Modular Exponentiation in cryptography<\/p>\n<p>\u00d8\u00a0\u00a0 To discuss about the inverse multiplication<\/p>\n<p>\u00d8\u00a0\u00a0 To understand these concepts with some examples<\/p>\n<p>&nbsp;<\/p>\n<p><strong>7.1 Introduction<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Modular exponentiation is an<span style=\"text-decoration: underline\"> <a href=\"https:\/\/en.wikipedia.org\/wiki\/Exponentiation\">exponentiation\u00a0\u00a0<\/a><\/span>performed over a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Modular_arithmetic\">modulus. <\/a>It is useful in <a href=\"https:\/\/en.wikipedia.org\/wiki\/Computer_science\">computer science, <\/a>especially in the field of <a href=\"https:\/\/en.wikipedia.org\/wiki\/Public-key_cryptography\">public-key cryptography.<\/a><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Consider the following scenario,<\/p>\n<p>&nbsp;<\/p>\n<p>A<sup>B<\/sup> mod C = ( (A mod C)<sup>B<\/sup> ) mod C<\/p>\n<p>&nbsp;<\/p>\n<p>Often we want to calculate AB mod C for large values of B.<\/p>\n<p>Unfortunately, A<sup>B<\/sup> becomes very large for even modest sized values for B.<\/p>\n<p>&nbsp;<\/p>\n<p>For Example:<\/p>\n<p>&nbsp;<\/p>\n<p>2<sup>90<\/sup> = 1237940039285380274899124224<\/p>\n<p>7<sup>256<\/sup> = 221359540004604815545018861547494593716251705026007306991636639052470<\/p>\n<p>4974007989996848003433<\/p>\n<\/div>\n<div>\n<p>\u00a0 \u00a0 837940380782794455262312607598867363425940560014856027866381946458951<\/p>\n<p>20583737911647366324673350968 0721264246243189632348313601<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">These huge values cause our calculators and computers to return overflow errors and also it would take a long time to find the mod of these huge numbers directly.In order to implement exponentiation relative some modulo needs to be done a lot. So this operation better be doable, and fast.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>7.2 Fast Modular Exponentiation<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">For real-life needs of number theoretic computations, just raising numbers to large exponents isn&#8217;t very useful, because extremely huge numbers start appearing very quickly, and these don&#8217;t have much use. What&#8217;s much more useful is <a href=\"http:\/\/en.wikipedia.org\/wiki\/Modular_exponentiation\">modular\u00a0<\/a><a href=\"http:\/\/en.wikipedia.org\/wiki\/Modular_exponentiation\">exponentiation, <\/a>raising integers to high powers . In such case, we can reuse the efficient algorithms developed in the previous article, with very few modifications to perform modular exponentiation as well. This is possible because of some convenient properties of modular arithmetic. In order to implement exponentiation relative some modulo needs to be done a lot. So this operation better be doable, and fast.<\/p>\n<p>&nbsp;<\/p>\n<p>1)\u00a0 Q: How is it even possible to compute 2853<sup>3397<\/sup> mod 4559 ?<\/p>\n<p>After all, 2853<sup>3397<\/sup> has approximately 3397\u00b74 digits!<\/p>\n<p>&nbsp;<\/p>\n<p>A:\u00a0\u00a0 By taking the mod after each multiplication.<\/p>\n<p>example:<\/p>\n<p>&nbsp;<\/p>\n<p>23<sup>3<\/sup> mod 30\u00a0=\u00a0\u00a0 -7<sup>3<\/sup> (mod 30)<\/p>\n<p>= (-7)<sup>2<\/sup> \u00b7(-7) (mod 30) 49 \u00b7 (-7) (mod 30) 19\u00b7(-7) (mod 30) -133 (mod 30)<\/p>\n<p>=17 (mod 30)<\/p>\n<p>&nbsp;<\/p>\n<p>Therefore, 23<sup>3<\/sup> mod 30 = 17.<\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<div>\n<p style=\"text-align: justify\">2)\u00a0 <strong>Q<\/strong>: What if had to figure out 23<sup>16<\/sup> mod 30. Same way tedious: need to multiply 15 times. Is there a better way?<\/p>\n<p>&nbsp;<\/p>\n<p><strong>A<\/strong>: Better way. Notice that 16 = 2\u00b72\u00b72\u00b72 so that 23<sup>16<\/sup> = 23<sup>2\u00b72\u00b72\u00b72<\/sup> = (((23<sup>2<\/sup>)<sup>2<\/sup>)<sup>2<\/sup>)<sup>2<\/sup><\/p>\n<p>&nbsp;<\/p>\n<p>Therefore:<\/p>\n<p>&nbsp;<\/p>\n<p>23<sup>16<\/sup> mod 30\u00a0\u00a0\u00a0 (((-7<sup>2<\/sup>)<sup>2<\/sup>)<sup>2<\/sup>)<sup>2<\/sup> (mod 30)<\/p>\n<p>=(((49)<sup>2<\/sup>)<sup>2<\/sup>)<sup>2<\/sup> (mod 30)= (((-11)<sup>2<\/sup>)<sup>2<\/sup>)<sup>2<\/sup> (mod 30)<\/p>\n<p>=((121)<sup>2<\/sup>)<sup>2<\/sup> (mod 30) =((1)<sup>2<\/sup> )<sup>2<\/sup> (mod 30)<\/p>\n<p>=(1)<sup>2<\/sup> (mod 30) =\u00a0 1(mod 30)<\/p>\n<p>Which implies that 2316 mod 30 = 1.<\/p>\n<p>&nbsp;<\/p>\n<p>3) <strong>Q<\/strong>: How about 23<sup>25<\/sup> mod 30 ?<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><strong>A<\/strong>: The previous method of repeated squaring works for any exponent that\u2019s a power of 2. 25. However, we can break 25 down as a sum of such powers: 25 = 16 + 8 + 1. Apply repeated squaring to each part, and multiply the results together. Previous calculation:<\/p>\n<p>&nbsp;<\/p>\n<p>23<sup>8<\/sup> mod 30 = 23<sup>16<\/sup> mod 30 = 1<\/p>\n<p>&nbsp;<\/p>\n<p>Thus: 23<sup>25<\/sup> mod 30\u00a0\u00a0\u00a0 23<sup>16<\/sup>+8+1 (mod 30)<\/p>\n<p>&nbsp;<\/p>\n<p>The previous method of repeated squaring works for any exponent that\u2019s a power of<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">2.\u00a0\u00a0\u00a0\u00a0 25. However, we can break 25 down as a sum of such powers: 25 = 16 + 8 + 1. Apply repeated squaring to each part, and multiply the results together. Previous calculation:<\/p>\n<p>&nbsp;<\/p>\n<p>23<sup>8<\/sup> mod 30 = 23<sup>16<\/sup> mod 30 = 1<\/p>\n<p>&nbsp;<\/p>\n<p>Thus: 23<sup>25<\/sup> mod 30\u00a0\u00a0 23<sup>16+8+1<\/sup> (mod 30) 23<sup>16<\/sup>\u00b723<sup>8<\/sup>\u00b723<sup>1<\/sup> (mod 30)\u00a0 1\u00b71\u00b723 (mod 30)<\/p>\n<p>&nbsp;<\/p>\n<p>Final answer:\u00a0\u00a0 23<sup>25<\/sup> mod 30 = 23<\/p>\n<p>&nbsp;<\/p>\n<p>4)\u00a0 <strong>Q<\/strong>: How could we have figured out the decomposition 25 = 16 + 8 + 1 from the binary (unsigned) representation of 25?<\/p>\n<\/div>\n<div>\n<p><strong>\u00a0 \u00a0 A<\/strong>: 25 = (11001)<sub>2<\/sub> This means that<\/p>\n<p>25 = 1\u00b716+1\u00b78+0\u00b74+0\u00b72+1\u00b71 = 16+8+1<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Can tell which powers of 2 appear by where the 1\u2019s are. This follows from the definition of binary representation.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>7.3 Properties of Modular Arithmetic<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>1.\u00a0\u00a0\u00a0\u00a0\u00a0 [(a mod n) + (b mod n)] mod n = (a + b) mod n<\/p>\n<p>2.\u00a0\u00a0\u00a0\u00a0\u00a0 [(a mod n) &#8211; (b mod n)] mod n = (a &#8211; b) mod n<\/p>\n<p>3.\u00a0\u00a0\u00a0\u00a0\u00a0 [(a mod n) x (b mod n)] mod n = (a x b) mod n<\/p>\n<p>&nbsp;<\/p>\n<p><strong>7.3.1 Proof of property 1.<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>Let (a mod n) = Ra and (b mod n) = Rb. Then, we can write a = Ra + jn for some integer j and b = Rb + kn for some integer k.<\/p>\n<p>&nbsp;<\/p>\n<p>(a + b) mod n = (Ra + jn + Rb + kn) mod n<\/p>\n<p>=\u00a0 [Ra + Rb + (k + j) n] mod n<\/p>\n<p>=\u00a0 (Ra + Rb) mod n<\/p>\n<p>=\u00a0 [(a mod n) + (b mod n)] mod n<\/p>\n<p>&nbsp;<\/p>\n<p><strong>7.3.2 Example<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>11 mod 8 = 3; 15 mod 8 = 7<\/p>\n<p>&nbsp;<\/p>\n<p>[(11 mod 8 ) + (15 mod 8)] mod 8 = 10 mod 8 = 2<\/p>\n<p>(11 + 15) mod 8 = 26 mod 8 = 2<\/p>\n<p>[(11 mod 8 ) &#8211; (15 mod 8)] mod 8 = -4 mod 8 = 4<\/p>\n<p>(11 &#8211; 15) mod 8 = -4 mod 8 = 4<\/p>\n<p>[(11 mod 8 ) x (15 mod 8)] mod 8= 21 mod 8 = 5<\/p>\n<p>(11 x 15) mod 8 = 165 mod 8 = 5<\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<div>\n<p><strong>7.4 Exponentiation<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Exponentiation is done by repeated multiplication, as in ordinary arithmetic. A good thing about modular arithmetic is that the numbers you are working with will be kept relatively small. At each stage of an algorithm, the mod function should be applied.<\/p>\n<p>&nbsp;<\/p>\n<p>Thus to multiply <em>39 * 15 mod 11<\/em> we first take mods to get<\/p>\n<p>&nbsp;<\/p>\n<p><em>39 mod 11 = 6 <\/em>and<em> 15 mod 11= 4<\/em><\/p>\n<p>&nbsp;<\/p>\n<p>The multiplication required is now<\/p>\n<p>&nbsp;<\/p>\n<p><em>6*4 mod 11 = 24 mod 11 = 2<\/em><\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-80\" src=\"http:\/\/csp11.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/55\/2018\/07\/1-34.png\" alt=\"\" width=\"247\" height=\"111\" srcset=\"https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-content\/uploads\/sites\/55\/2018\/07\/1-34.png 247w, https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-content\/uploads\/sites\/55\/2018\/07\/1-34-65x29.png 65w, https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-content\/uploads\/sites\/55\/2018\/07\/1-34-225x101.png 225w\" sizes=\"auto, (max-width: 247px) 100vw, 247px\" \/><\/p>\n<p><strong>7.5 Modular Division<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Modular division is defined when modular inverse of the divisor exists. The inverse of an integer \u2018x\u2019 is a another integer \u2018y\u2019 such that (x*y) % m = 1 where m is the modulus. When does inverse exist? Inverse a number \u2018a\u2019 exists under modulo \u2018m\u2019 if \u2018a\u2019 and \u2018m\u2019 are co-prime, i.e., GCD of them is 1.<\/p>\n<p>&nbsp;<\/p>\n<p>What is <em>5 \u00f7 3 mod 11<\/em>?<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><strong>A<\/strong>: We need to multiply <em>5<\/em> by the <em>inverse<\/em> of <em>3 mod 11.<\/em>When you multiply a number by its inverse, the answer is 1.<\/p>\n<p>&nbsp;<\/p>\n<p>Thus the inverse of 2 is \u00bd since 2* \u00bd = 1<\/p>\n<p>The inverse of <em>3 mod 11<\/em> is <em>4<\/em> since <em>3*4=1 mod 11<\/em><\/p>\n<p>Thus <em>5 \u00f7 3 mod 11 = 5*4 mod 11 = 9 mod 11<\/em><\/p>\n<\/div>\n<p><em>\u00a0<\/em><\/p>\n<div>\n<p><strong>7.6 Euclidean algorithm<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">The Euclidean algorithm or Euclid&#8217;s algorithm is an efficient method for computing the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Greatest_common_divisor\">greatest common divisor <\/a>(GCD) of two numbers, the largest number that divides both of them without leaving a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Remainder\">remainder. <\/a>It is named after the ancient Greek <a href=\"https:\/\/en.wikipedia.org\/wiki\/Mathematician\">mathematician <\/a><a href=\"https:\/\/en.wikipedia.org\/wiki\/Euclid\">Euclid, <\/a>who first described it in <a href=\"https:\/\/en.wikipedia.org\/wiki\/Euclid%27s_Elements\">Euclid&#8217;s Elements <\/a>(c. 300 BC). It is an example of an <a href=\"https:\/\/en.wikipedia.org\/wiki\/Algorithm\">algorithm, <\/a>a step-by-step procedure for performing a calculation according to well-defined rules, and is one of the oldest algorithms in common use. It can be used to reduce <a href=\"https:\/\/en.wikipedia.org\/wiki\/Fraction_(mathematics)\">fractions <\/a>to their <a href=\"https:\/\/en.wikipedia.org\/wiki\/Irreducible_fraction\">simplest form, <\/a>and is a part of many other number-theoretic and cryptographic calculations.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center\">gcd(<em>a,b<\/em>) = gcd(<em>b, b<\/em> mod <em>a<\/em>)<\/p>\n<p style=\"text-align: center\">int Euclid(int a, int b) {<\/p>\n<p style=\"text-align: center\">if (b == 0) return a;<\/p>\n<p style=\"text-align: center\">else return Euclid(b, b % a)<\/p>\n<p style=\"text-align: center\">}<\/p>\n<p>&nbsp;<\/p>\n<p><strong>7.6.1 Finding Inverses in Z<\/strong><strong>n<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">The numbers that have inverses in Zn are relatively prime to n. We can use the Euclidean Algorithm to see if a given \u201cx\u201d is relatively prime to \u201cn\u201d; then we know that an inverse does exist. How can we find the inverse without looking at all the remainders? A problem for large n.For example if we are trying to find x with 4 x \u2261 1 ( mod 13 ) 4x\u22611(mod13). Since you already have 13 = 4 \u22c5 3 + 1 13=4\u22c53+1, it follows that 4 \u22c5 3 \u2261 \u2212 1 ( mod 13 ) 4\u22c53\u2261\u22121(mod13). That&#8217;s almost, but not quite what you need.<\/p>\n<p>&nbsp;<\/p>\n<p>So let&#8217;s multiply left and right by -1. Then you get:<\/p>\n<p>4 \u22c5 \u2212 3 \u2261 1 ( mod 13 )<\/p>\n<p>4\u22c5\u22123\u22611(mod13) Much closer.<\/p>\n<p>It follows that 4\u22121\u2261\u22123\u226110(mod13).<\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<div>\n<p><strong>7.6.2 Using the Extended Euclidean Algorithm<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>The extended Euclidean algorithm is particularly useful when a and b are coprime, since x is the modular multiplicative inverse of a modulo b, and y is the modular multiplicative inverse of b modulo a. Similarly, the polynomial extended Euclidean algorithm allows one to compute the multiplicative inverse in algebraic field extensions and, in particular in finite fields of non prime order. It follows that both extended Euclidean algorithms are widely used in cryptography.<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li>Formalizing the backward steps we get this formula:<\/li>\n<\/ul>\n<p>y0 = 0<\/p>\n<p>y1 = 1<\/p>\n<p>yi = (yi-2 \u2013 [yi-1 * qi-2]); i &gt; 1<\/p>\n<p>&nbsp;<\/p>\n<p>Related to the \u201cMagic Box\u201d method<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-81\" src=\"http:\/\/csp11.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/55\/2018\/07\/1-35.png\" alt=\"\" width=\"631\" height=\"468\" srcset=\"https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-content\/uploads\/sites\/55\/2018\/07\/1-35.png 631w, https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-content\/uploads\/sites\/55\/2018\/07\/1-35-300x223.png 300w, https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-content\/uploads\/sites\/55\/2018\/07\/1-35-65x48.png 65w, https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-content\/uploads\/sites\/55\/2018\/07\/1-35-225x167.png 225w, https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-content\/uploads\/sites\/55\/2018\/07\/1-35-350x260.png 350w\" sizes=\"auto, (max-width: 631px) 100vw, 631px\" \/><\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<div>\n<p>Using the Extended Euclidean Algorithm<\/p>\n<p>&nbsp;<\/p>\n<p>y0 = 0<\/p>\n<p>y1 = 1<\/p>\n<p>yi = (yi-2 \u2013 [yi-1 * qi-2]); i &gt; 1<\/p>\n<p>&nbsp;<\/p>\n<p>Try it for\u2026<\/p>\n<p>&nbsp;<\/p>\n<p>1)\u00a0\u00a0\u00a0\u00a0 13 mod 22<\/p>\n<p>2)\u00a0\u00a0\u00a0\u00a0 17 mod 97<\/p>\n<p>&nbsp;<\/p>\n<p><strong>A:\u00a0\u00a0 <\/strong><strong>13 mod 22<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>22 = 1 * 13 + 9\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 y[0]=0<br \/>\n13 = 1 * 9 + 4\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0y[1]=1<br \/>\n9 = 2 * 4 + 1\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 y[2]=0 &#8211; 1 * 1 mod 22 = 21<br \/>\n4 = 4 * 1 + 0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0y[3]=1 &#8211; 21 * 1 mod 22 = 2<\/p>\n<p>&nbsp;<\/p>\n<p>Last Step: y[4]=21 &#8211; 2 * 2 mod 22 = 17<\/p>\n<p>Check: 17 * 13 = 221 = 1 mod 22<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>A: 17 mod 97<br \/>\n97 = 5 * 17 + 12\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0x[0]=0<br \/>\n17 = 1 * 12 + 5\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0x[1]=1<br \/>\n12 = 2 * 5 + 2\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0x[2]=0 &#8211; 1 * 5 mod 97 = 92<br \/>\n5 = 2 * 2 + 1\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0x[3]=1 &#8211; 92 * 1 mod 97 = 6<br \/>\n2 = 2 * 1 + 0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 x[4]=92 &#8211; 6 * 2 mod 97 = 80<br \/>\nLast Step:\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0x[5]=6 &#8211; 80 * 2 mod 97 = 40<br \/>\nCheck: 40 * 17 = 680 = 1 mod 97<\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<p><strong>Summary<\/strong><\/p>\n<ul>\n<li>Outlined the purpose of Modular Exponentiation<\/li>\n<li>Discussed about the inverse multiplication and extended Euclidean<\/li>\n<li>Discussed about the fast exponentiation method<\/li>\n<li>Worked with various examples related with modular exponentiation and inverse.<\/li>\n<\/ul>\n<table>\n<tbody>\n<tr>\n<td><strong>you can view video on Modular Exponentiation<\/strong><\/td>\n<td><a href=\"https:\/\/youtu.be\/ub7qB1NWD9Y\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-120\" src=\"http:\/\/epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/2018\/11\/download.png\" alt=\"\" width=\"36\" height=\"36\" \/><\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-82 alignleft\" src=\"http:\/\/csp11.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/55\/2018\/07\/1-36.png\" alt=\"\" width=\"638\" height=\"546\" srcset=\"https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-content\/uploads\/sites\/55\/2018\/07\/1-36.png 638w, https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-content\/uploads\/sites\/55\/2018\/07\/1-36-300x257.png 300w, https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-content\/uploads\/sites\/55\/2018\/07\/1-36-65x56.png 65w, https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-content\/uploads\/sites\/55\/2018\/07\/1-36-225x193.png 225w, https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-content\/uploads\/sites\/55\/2018\/07\/1-36-350x300.png 350w\" sizes=\"auto, (max-width: 638px) 100vw, 638px\" \/><\/p>\n","protected":false},"author":3,"menu_order":6,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":["dr-kulothungan"],"pb_section_license":""},"chapter-type":[],"contributor":[58],"license":[],"class_list":["post-77","chapter","type-chapter","status-publish","hentry","contributor-dr-kulothungan"],"part":3,"_links":{"self":[{"href":"https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-json\/pressbooks\/v2\/chapters\/77","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-json\/wp\/v2\/users\/3"}],"version-history":[{"count":6,"href":"https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-json\/pressbooks\/v2\/chapters\/77\/revisions"}],"predecessor-version":[{"id":534,"href":"https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-json\/pressbooks\/v2\/chapters\/77\/revisions\/534"}],"part":[{"href":"https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-json\/pressbooks\/v2\/parts\/3"}],"metadata":[{"href":"https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-json\/pressbooks\/v2\/chapters\/77\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-json\/wp\/v2\/media?parent=77"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-json\/pressbooks\/v2\/chapter-type?post=77"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-json\/wp\/v2\/contributor?post=77"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/ebooks.inflibnet.ac.in\/csp11\/wp-json\/wp\/v2\/license?post=77"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}