You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<p>These curves have the form $y^{2} = x^{3} + ax + b$.</p>
3
+
4
+
<p>For the purposes of cryptography, those elliptic curves are considered whose variables and coefficients are restricted to a finite field (either $Z_{p}$ or $GF(2^{n})$; we will consider only the former).</p>
5
+
6
+
<h2 id="elliptic-curves-over-z_p">Elliptic Curves over $Z_{p}$</h2>
7
+
<p>We consider the congruence $y^{2} \equiv x^{3} + ax + b$ (mod $p$), where $a$ and $b$ are constants in $Z_{p}$ such that $4a^{3} + 27b^{2} \not\equiv 0$ (mod $p$). This is equivalent to the set $E_{p}(a,b)$, consisting of solutions to the congruence together with the point at infinity $\mathfrak{O}$.</p>
8
+
9
+
<p>The number of points in $E_{p}(a,b)$ is denoted by $\mypound E$ and satisfies $p + 1 - 2\sqrt{p} \leq \mypound E \leq p + 1 + 2\sqrt{p}$.</p>
10
+
11
+
<p>A binary operation, called “addition” and denoted by $+$, is defined on $E_{p}(a,b)$. Under this operation, $E_{p}(a,b)$ forms an abelian group. Refer to slides (21 to 26) for details of addition, doubling, scalar multiplication and additive inverses of points.</p>
<p>ECC relies on the computational infeasibility of determining $k$ given $kP$ and $P$, even though it is relatively easy to determine $kP$ given $k$ and $P$. This is called the elliptic curve discrete logarithm problem (ECDLP).</p>
15
+
16
+
<h2 id="hierarchical-access-control-using-ecc">Hierarchical Access Control using ECC</h2>
17
+
<p>Refer to slides (32 to 34) for a general overview of hierarchical access control. In the system described by Chung et al., the security classes having higher clearance use publicly available information to determine the secret keys of any lower-clearance classes. Here and elsewhere, the terms “higher-clearance class” and “lower-clearance class” are equivalent to “predecessor class” and “successor class” respectively.</p>
<p>First, a large prime $p$, an elliptic curve $E_{p}(a,b)$ and a function $m: E_{p}(a,b) \rightarrow \mathbb{Z}$ over $Z_{p}$ are selected.</p>
24
+
25
+
<p>For each security class $SC_{j}$, the CA now:</p>
26
+
27
+
<p><strong>Step 1.</strong> Assigns a base point $G_{j}$, a secret key $sk_{j}$ and a sub-secret key $s_{j}$.</p>
28
+
29
+
<p><strong>Step 2.</strong> Computes $s_{i}G_{j} = (a_{j,i},b_{j,i})$ for all predecessor classes $SC_{i}$ of $SC_{j}$. In other words, it computes the product of the base point with the sub-secret key of each of the higher-clearance classes. The resulting point is converted into a number $m(a_{j,i},b_{j,i})$ using the function $m(\cdot)$.</p>
30
+
31
+
<p><strong>Step 3.</strong> Computes a polynomial $f_{j}(x)$ using the above numbers as:</p>
<p>In this phase, a security class $SC_{i}$ finds the secret keys $sk_{j}$ of all successor classes $SC_{j} \geq SC_{i}$, i.e., all classes with lower clearance.</p>
41
+
42
+
<p>First it computes $s_{i}G_{j} = (a_{j,i},b_{j,i})$, i.e., multiplies its sub-secret key with the lower class’s base point. It converts this point to a number using $m(\cdot)$. This number is $m(a_{j,i},b_{j,i})$.</p>
43
+
44
+
<p>By the definiton of $f_{j}$, this number is a root of $f_{j}(x) - sk_{j}$, i.e., $f_{j}(m(a_{j,i},b_{j,i})) - sk_{j} \equiv 0$ (mod $p$). Therefore, $f_{j}(m(a_{j,i},b_{j,i})) \equiv sk_{j}$ (mod $p$), and $SC_{i}$ has found $sk_{j}$.</p>
45
+
46
+
<p><strong>Note.</strong> The function $m(x,y)$ is generally defined using a hash function as $m(x,y) = h(x \Vert y)$, where $\Vert$ is a bit concatenation operator. The intermediate $m(\cdot)$ was introduced in this description for convenience.</p>
47
+
48
+
<h3 id="an-example">An Example</h3>
49
+
<p>Let us assume that the CA has completed the relationship-building phase and the key generation phase. Further, suppose that $SC_{2}$ would like to find the secret key $sk_{5}$ of its successor class $SC_{5}$. Other predecessor classes of $SC_{5}$ are, say, $SC_{1}$ and $SC_{4}$.</p>
50
+
51
+
<p>Therefore, for $SC_{5}$, the CA has computed $s_{1}G_{5} = (a_{5,1},b_{5,1})$, $s_{2}G_{5} = (a_{5,2},b_{5,2})$ and $s_{4}G_{5} = (a_{5,4},b_{5,4})$. From these, the public polynomial $f_{5}$ is computed and announced: $f_{5} \equiv (x - m(a_{5,1},b_{5,1}))(x - m(a_{5,2},b_{5,2}))(x - m(a_{5,4},b_{5,4})) + sk_{5}$ (mod $p$).</p>
52
+
53
+
<p>Now, $SC_{2}$ needs to find $sk_{5}$. It does this using $s_{2}$ (which only it knows), $m(\cdot)$, $G_{5}$ and $f_{5}$ (which are public).</p>
54
+
55
+
<p>First, it computes $s_{2}G_{5} = (a_{5,2},b_{5,2})$. This is converted to a number using $m(\cdot)$ ( i.e., $m(a_{5,2},b_{5,2})$ is calculated) and substituted in $f_{5}(x)$.</p>
56
+
57
+
<p>By the definiton of $f_{5}$, this number is a root of $f_{5}(x) - sk_{5}$. Therefore, $f_{5}(m(a_{5,2},b_{5,2})) \equiv sk_{5}$ (mod $p$), and $SC_{2}$ has found $sk_{5}$.</p>
58
+
59
+
<p>It is clear the successor classes of $SC_{5}$ have no way to determine $sk_{5}$ using $f_{5}$.</p>
Copy file name to clipboardExpand all lines: .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/2a/ee841273b377c61290e04d30aef24d392500c9f1249173719b0e26d862b727
<p>These curves have the form $y^{2} = x^{3} + ax + b$.</p>
3
+
4
+
<p>For the purposes of cryptography, those elliptic curves are considered whose variables and coefficients are restricted to a finite field (either $Z_{p}$ or $GF(2^{n})$; we will consider only the former).</p>
5
+
6
+
<h2 id="elliptic-curves-over-z_p">Elliptic Curves over $Z_{p}$</h2>
7
+
<p>We consider the congruence $y^{2} \equiv x^{3} + ax + b$ (mod $p$), where $a$ and $b$ are constants in $Z_{p}$ such that $4a^{3} + 27b^{2} \not\equiv 0$ (mod $p$). This is equivalent to the set $E_{p}(a,b)$, consisting of solutions to the congruence together with the point at infinity $\mathfrak{O}$.</p>
8
+
9
+
<p>The number of points in $E_{p}(a,b)$ is denoted by $# E$ and satisfies $p + 1 - 2\sqrt{p} \leq # E \leq p + 1 + 2\sqrt{p}$.</p>
10
+
11
+
<p>A binary operation, called “addition” and denoted by $+$, is defined on $E_{p}(a,b)$. Under this operation, $E_{p}(a,b)$ forms an abelian group. Refer to slides (21 to 26) for details of addition, doubling, scalar multiplication and additive inverses of points.</p>
<p>ECC relies on the computational infeasibility of determining $k$ given $kP$ and $P$, even though it is relatively easy to determine $kP$ given $k$ and $P$. This is called the elliptic curve discrete logarithm problem (ECDLP).</p>
15
+
16
+
<h2 id="hierarchical-access-control-using-ecc">Hierarchical Access Control using ECC</h2>
17
+
<p>Refer to slides (32 to 34) for a general overview of hierarchical access control. In the system described by Chung et al., the security classes having higher clearance use publicly available information to determine the secret keys of any lower-clearance classes. Here and elsewhere, the terms “higher-clearance class” and “lower-clearance class” are equivalent to “predecessor class” and “successor class” respectively.</p>
<p>First, a large prime $p$, an elliptic curve $E_{p}(a,b)$ and a function $m: E_{p}(a,b) \rightarrow \mathbb{Z}$ over $Z_{p}$ are selected.</p>
24
+
25
+
<p>For each security class $SC_{j}$, the CA now:</p>
26
+
27
+
<p><strong>Step 1.</strong> Assigns a base point $G_{j}$, a secret key $sk_{j}$ and a sub-secret key $s_{j}$.</p>
28
+
29
+
<p><strong>Step 2.</strong> Computes $s_{i}G_{j} = (a_{j,i},b_{j,i})$ for all predecessor classes $SC_{i}$ of $SC_{j}$. In other words, it computes the product of the base point with the sub-secret key of each of the higher-clearance classes. The resulting point is converted into a number $m(a_{j,i},b_{j,i})$ using the function $m(\cdot)$.</p>
30
+
31
+
<p><strong>Step 3.</strong> Computes a polynomial $f_{j}(x)$ using the above numbers as:</p>
<p>In this phase, a security class $SC_{i}$ finds the secret keys $sk_{j}$ of all successor classes $SC_{j} \geq SC_{i}$, i.e., all classes with lower clearance.</p>
41
+
42
+
<p>First it computes $s_{i}G_{j} = (a_{j,i},b_{j,i})$, i.e., multiplies its sub-secret key with the lower class’s base point. It converts this point to a number using $m(\cdot)$. This number is $m(a_{j,i},b_{j,i})$.</p>
43
+
44
+
<p>By the definiton of $f_{j}$, this number is a root of $f_{j}(x) - sk_{j}$, i.e., $f_{j}(m(a_{j,i},b_{j,i})) - sk_{j} \equiv 0$ (mod $p$). Therefore, $f_{j}(m(a_{j,i},b_{j,i})) \equiv sk_{j}$ (mod $p$), and $SC_{i}$ has found $sk_{j}$.</p>
45
+
46
+
<p><strong>Note.</strong> The function $m(x,y)$ is generally defined using a hash function as $m(x,y) = h(x \Vert y)$, where $\Vert$ is a bit concatenation operator. The intermediate $m(\cdot)$ was introduced in this description for convenience.</p>
47
+
48
+
<h3 id="an-example">An Example</h3>
49
+
<p>Let us assume that the CA has completed the relationship-building phase and the key generation phase. Further, suppose that $SC_{2}$ would like to find the secret key $sk_{5}$ of its successor class $SC_{5}$. Other predecessor classes of $SC_{5}$ are, say, $SC_{1}$ and $SC_{4}$.</p>
50
+
51
+
<p>Therefore, for $SC_{5}$, the CA has computed $s_{1}G_{5} = (a_{5,1},b_{5,1})$, $s_{2}G_{5} = (a_{5,2},b_{5,2})$ and $s_{4}G_{5} = (a_{5,4},b_{5,4})$. From these, the public polynomial $f_{5}$ is computed and announced: $f_{5} \equiv (x - m(a_{5,1},b_{5,1}))(x - m(a_{5,2},b_{5,2}))(x - m(a_{5,4},b_{5,4})) + sk_{5}$ (mod $p$).</p>
52
+
53
+
<p>Now, $SC_{2}$ needs to find $sk_{5}$. It does this using $s_{2}$ (which only it knows), $m(\cdot)$, $G_{5}$ and $f_{5}$ (which are public).</p>
54
+
55
+
<p>First, it computes $s_{2}G_{5} = (a_{5,2},b_{5,2})$. This is converted to a number using $m(\cdot)$ ( i.e., $m(a_{5,2},b_{5,2})$ is calculated) and substituted in $f_{5}(x)$.</p>
56
+
57
+
<p>By the definiton of $f_{5}$, this number is a root of $f_{5}(x) - sk_{5}$. Therefore, $f_{5}(m(a_{5,2},b_{5,2})) \equiv sk_{5}$ (mod $p$), and $SC_{2}$ has found $sk_{5}$.</p>
58
+
59
+
<p>It is clear the successor classes of $SC_{5}$ have no way to determine $sk_{5}$ using $f_{5}$.</p>
I"%<h2 id="introduction-to-cryptography">Introduction to Cryptography</h2>
2
+
<p>Cryptography is the study of mathematical techniques related to various aspects of information security.
3
+
Refer to slides for definitions of “adversary” (passive and active) and “channel” (secure and unsecure).</p>
4
+
5
+
<p>Encryption using the key $e$ and decryption using the key $d$ are represented as $E_{e}(\cdot)$ and $D_{d}(\cdot)$ respectively. The plaintext message is represented as $M$ and the ciphertext as $C$.</p>
6
+
7
+
<p>The aim in cryptography is for an encryption scheme to be unbreakable, i.e., for the problem of plaintext recovery (without prior knowledge of the key pair) to be computationally infeasible.</p>
8
+
9
+
<h2 id="symmetric-and-asymmetric-encryption">Symmetric and Asymmetric Encryption</h2>
10
+
<p>In symmetric-key encryption, the same key can be used for encryption as well as decryption. The key needs to be conveyed to the receiver via a secure channel for this form of communication.</p>
11
+
12
+
<p>In asymmetric-key encryption, however, there are two keys - a private and a public key. Each person has his or her own private key, known to no one else, and a public key, which is available to everyone. The private key can be used to decrypt a message encrypted using the public key, and vice versa. RSA is a common algorithm for asymmetric encryption.</p>
<p>This cryptosystem relies on modular arithmetic (specifically, Euler’s Theorem) and the computational infeasibility of factoring large numbers.
16
+
We will consider that Alice would like to send a message $M$ to her friend Bob.</p>
17
+
18
+
<p>The key includes a number $n$, which is the product of two large, distinct primes $p$ and $q$.
19
+
We know that $\phi(n) = (p-1)(q-1)$.</p>
20
+
21
+
<p>Both Alice and Bob have a private and a public key each. Their public keys are known to each other, while their private keys are not. Alice uses Bob’s public key $(e,n)$ to encrypt the message, and Bob decrypts it using his private key $(d,n)$.</p>
22
+
23
+
<p>$e$ and $d$ are numbers such that $d \equiv e^{-1}$ (mod $\phi(n)$), i.e., $ed \equiv 1$ (mod $\phi(n)$).</p>
24
+
25
+
<p>According to Euler’s Theorem,
26
+
if $gcd(a,n) = 1$, then $a^{\phi(n)} \equiv 1$ (mod n).</p>
27
+
28
+
<p>As $p$ and $q$ are both large primes, we take them both to be coprime to $M$, the plaintext message. Consequently, $gcd(M,n) = 1$.</p>
29
+
30
+
<h3 id="encryption">Encryption</h3>
31
+
<p>Alice raises the message $M$ to the power of Bob’s public key $e$ and takes the remainder modulo $n$ to obtain the ciphertext $C$, i.e.,</p>
32
+
33
+
<p>$C \equiv M^{e}$ (mod n).</p>
34
+
35
+
<h3 id="decryption">Decryption</h3>
36
+
<p>Bob receives the ciphertext $C$. To decrypt it, he raises it to the power of his private key $d$ and takes the remainder modulo $n$.</p>
37
+
38
+
<p>$C^{d} \equiv M^{ed}$ (mod n).</p>
39
+
40
+
<p>However, since $ed \equiv 1$ (mod $\phi(n)$), we know that $ed = k \phi(n) + 1$ for some $k$. Substituting this,</p>
41
+
42
+
<p>$M^{ed} = M^{k \phi(n) + 1}$</p>
43
+
44
+
<p>$= M^{k \phi(n)} \cdot M^{1}$</p>
45
+
46
+
<p>$= {(M^{\phi(n)})}^{k} \cdot M$</p>
47
+
48
+
<p>$\equiv 1^{k} \cdot M$ (mod n), by Euler’s Theorem and since $gcd(M,n) = 1$</p>
49
+
50
+
<p>$\equiv M$ (mod n).</p>
51
+
52
+
<p>Since $M < n$, the above yields $M$ itself, and Bob has decrypted the message.</p>
53
+
54
+
<h3 id="an-example">An Example</h3>
55
+
56
+
<p>Let the message be encoded as a number, say $M = 6$.</p>
0 commit comments