# 数学代写|密码学作业代写Cryptography代考|Setting up EIGamal

#### Doug I. Jones

Lorem ipsum dolor sit amet, cons the all tetur adiscing elit

couryes™为您提供可以保分的包课服务

couryes-lab™ 为您的留学生涯保驾护航 在代写密码学Cryptography方面已经树立了自己的口碑, 保证靠谱, 高质且原创的统计Statistics代写服务。我们的专家在代写密码学Cryptography代写方面经验极为丰富，各种代写密码学Cryptography相关的作业也就用不着说。

## 数学代写|密码学作业代写Cryptography代考|Setting up EIGamal

We now describe how to set up key pairs for use in ElGamal. Each user who wishes an ElGamal key pair conducts the following process:

Choose a large prime $\boldsymbol{p}$. We will present a simplified version of ElGamal which works with numbers modulo $p$. In practice, ElGamal is often based on a slightly more general number system (and in the case of elliptic curve variants, is based on quite different number systems). By ‘large’ we mean a prime of similar size length to an RSA modulus. Thus, a reasonable length would be in the order of 3072 bits.

Choose a special number $\boldsymbol{g}$. The special number $g$ must be what is known as a primitive element modulo $p$. This number must be between 1 and $p-1$, but cannot be any such number because not all numbers in this range are primitive. It suffices to accept $g$ as being ‘special’, but if you wish to learn more about what primitive means then see the Mathematics Appendix.

Choose the private key. The private key $x$ can be any number bigger than 1 and smaller than $p-1$. We assume the private key is generated using a suitably random process, which results in it being extremely unlikely that two users of the same system have the same private key.

Compute the last part of the public key. The value $y$ is computed from the parameters $p, g$ and the private key $x$ as follows:
$$y=g^x \bmod p .$$
The ElGamal public key consists of the three parameters $(p, g, y)$.
As an example, suppose $p=23$ and $g=11$ (we confirm 11 is a primitive element modulo 23 in the Mathematics Appendix). The private key $x$ can be any number bigger than 1 and smaller than 22, so we choose $x=6$. The value $y$ is then computed as follows:
$$y=11^6=9 \quad \bmod 23 .$$

## 数学代写|密码学作业代写Cryptography代考|Encryption and decryption using EIGamal

While the generation of an ElGamal key pair is arguably simpler than the equivalent process for RSA, encryption and decryption are slightly more complex than RSA.
ELGAMAL ENCRYPTION
Suppose we wish to send a plaintext to someone whose ElGamal public key is $(p, g, y)$. ElGamal encryption operates on numbers modulo $p$. Thus, the first task is to represent our plaintext as a series of numbers modulo $p$. Just as we did for RSA, we assume there is some agreed method of doing this.
Suppose we now want to encrypt the first plaintext $P$, which we have already represented as a number modulo $p$. The encryption process to obtain the ciphertext $C$ is as follows:

1. Randomly generate a number $k$;
2. Compute two values $C_1$ and $C_2$, where:
\begin{aligned} C_1 & =g^k \quad \bmod p, \ C_2 & =P y^k \quad \bmod p ; \text { then } \end{aligned}
3. Send the ciphertext $C$, where $C$ consists of the two separate values $\left(C_1, C_2\right)$, sent together.
We now look more carefully at $C_1$ and $C_2$ in order to determine what role in the ciphertext each plays:
• The value $k$ is randomly generated for this ciphertext, and only for this ciphertext. The next time a plaintext is encrypted, even if it is exactly the same plaintext as before, a new $k$ should be randomly generated. The use of this value means that EIGamal provides probabilistic encryption (see Section 5.2.4). We can think of $k$ as being a temporary (one-time) ‘ $k$ ey’. The first component $C_1$ of the ciphertext is $g^k \bmod p$. Recall from Section 5.1.4 that modular exponentiation (of which this is an example) is believed to be a one-way function. This means calculating $C_1$ is easy, but determining $k$ from $C_1$ is believed to be hard. Thus, $C_1$ is best thought of as a one-way representation of the temporary key $k$.
• The second ciphertext component $C_2$ is a function of the plaintext $P$, the public-key component $y$, and the temporary key $k$. More precisely, it is $P$ multiplied by $y^k$, and then reduced modulo $p$. Thus, $C_2$ can be thought of as the encryption of $P$ using both the public-key component $y$ and the temporary key $k$.

# 密码学代写

## 数学代写|密码学作业代写Cryptography代考|Setting up EIGamal

$$y=g^x \bmod p .$$
ElGamal公钥由三个参数组成$(p, g, y)$。

$$y=11^6=9 \quad \bmod 23 .$$

## 数学代写|密码学作业代写Cryptography代考|Encryption and decryption using EIGamal

\begin{aligned} C_1 & =g^k \quad \bmod p, \ C_2 & =P y^k \quad \bmod p ; \text { then } \end{aligned}

## 有限元方法代写

tatistics-lab作为专业的留学生服务机构，多年来已为美国、英国、加拿大、澳洲等留学热门地的学生提供专业的学术服务，包括但不限于Essay代写，Assignment代写，Dissertation代写，Report代写，小组作业代写，Proposal代写，Paper代写，Presentation代写，计算机作业代写，论文修改和润色，网课代做，exam代考等等。写作范围涵盖高中，本科，研究生等海外留学全阶段，辐射金融，经济学，会计学，审计学，管理学等全球99%专业科目。写作团队既有专业英语母语作者，也有海外名校硕博留学生，每位写作老师都拥有过硬的语言能力，专业的学科背景和学术写作经验。我们承诺100%原创，100%专业，100%准时，100%满意。

## MATLAB代写

MATLAB 是一种用于技术计算的高性能语言。它将计算、可视化和编程集成在一个易于使用的环境中，其中问题和解决方案以熟悉的数学符号表示。典型用途包括：数学和计算算法开发建模、仿真和原型制作数据分析、探索和可视化科学和工程图形应用程序开发，包括图形用户界面构建MATLAB 是一个交互式系统，其基本数据元素是一个不需要维度的数组。这使您可以解决许多技术计算问题，尤其是那些具有矩阵和向量公式的问题，而只需用 C 或 Fortran 等标量非交互式语言编写程序所需的时间的一小部分。MATLAB 名称代表矩阵实验室。MATLAB 最初的编写目的是提供对由 LINPACK 和 EISPACK 项目开发的矩阵软件的轻松访问，这两个项目共同代表了矩阵计算软件的最新技术。MATLAB 经过多年的发展，得到了许多用户的投入。在大学环境中，它是数学、工程和科学入门和高级课程的标准教学工具。在工业领域，MATLAB 是高效研究、开发和分析的首选工具。MATLAB 具有一系列称为工具箱的特定于应用程序的解决方案。对于大多数 MATLAB 用户来说非常重要，工具箱允许您学习应用专业技术。工具箱是 MATLAB 函数（M 文件）的综合集合，可扩展 MATLAB 环境以解决特定类别的问题。可用工具箱的领域包括信号处理、控制系统、神经网络、模糊逻辑、小波、仿真等。

Days
Hours
Minutes
Seconds

# 15% OFF

## On All Tickets

Don’t hesitate and buy tickets today – All tickets are at a special price until 15.08.2021. Hope to see you there :)