## 数学代写|密码学代写cryptography theory代考|CS355

2022年10月6日

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

• Statistical Inference 统计推断
• Statistical Computing 统计计算
• (Generalized) Linear Models 广义线性模型
• Statistical Machine Learning 统计机器学习
• Longitudinal Data Analysis 纵向数据分析
• Foundations of Data Science 数据科学基础
couryes™为您提供可以保分的包课服务

## 数学代写|密码学代写cryptography theory代考|Changing the Rijndael S-Box

After studying this previous section, you should realize that there are three factors in generating the AES s-box. Those are the selection of the irreducible polynomial, in this case it was $P=x 8+x 4+x 3+x+1$, which is $11 \mathrm{~B}$ in hexadecimal notation, or 100011011 in binary numbers. As we mentioned previously, the creators of the Rijndael cipher stated clearly that this number was chosen simply because it was the first one of the list of irreducible polynomials of degree 8 in the reference book they chose (Daemen and Rijmen 1999). That means that one could choose other irreducible polynomials.

There are a total of 30 irreducible polynomials of degree 8 to choose from. This gives you 29 alternatives to the traditional s-box for AES, each with well-tested security. For more details on this altemative, you can look into Rabin’s test for irreducibility. Das, Sanjoy, Subhrapratim, and Subhash demonstrated equally secure variation of the Rijndael, by changing the chosen irreducible polynomial. You can use any of the 30 possible irreducible polynomials, each of these is equally secure to the original Rijndael cipher s-box.

Altering the Rijndael s-box is only practical if you have the ability to ensure that all parties to encrypted communication will be using your modified s-box. If you simply modify the s-box on your end, then you would render communication with other parties impossible. Even though those other parties will have the same key, and the same algorithm (AES), they will be using standard s-boxes. This is why altering AES s-boxes is primarily an issue for government entities who want to have secure communication with a limited number of involved parties.

A second option, one that may be the simplest to implement, is to change the translation vector (the final number you xor with). Obviously, there are 255 possible variations. Rather than utilize 0x63, use any of the other possible variations for that final byte. While simple to implement, it may be more difficult to test. Some variations might adversely affect one of the three criteria we are attempting to maintain. In fact, selecting the wrong translation vector may lead to no change at all when applied to the product of the preceding matrix multiplication.

The third method is to change the affine transform. This can be more difficult to implement but safe if you simply alter parameters within the existing transform. Section $5.2$ of Sinha and Arya paper discusses this in detail. According to Cui, Huang, Zhong, Chang, and Yang, the choice of affine transformation matrix or irreducible polynomial has no significant impact on the security of the resultant ciphertext.

## 数学代写|密码学代写cryptography theory代考|What Is a Cryptographic Hash?

A cryptographic hash is a special type of algorithm. William Stallings describes a hash as follows:

1. H can be applied to a block of data of variable size.
2. H produces a fixed-length output.
3. $\mathrm{H}(\mathrm{X})$ is relatively easy to compute for any given $\mathrm{x}$, making both hardware and software implementations practical. $\mathrm{X}$ is whatever you input into the hash.
4. For any given value $h$, it is computationally infeasible to find $x$ such that $\mathrm{H}(\mathrm{x})=\mathrm{h}$. This is sometimes referred to in the literature as the one-way property.
5. For any given block $x$, it is computationally infeasible to find $y !=x$ such that $\mathrm{H}(\mathrm{y})=\mathrm{H}(\mathrm{x})$. This is sometimes referred to as weak collision resistance.
6. It is computationally infeasible to find any pair $x, y$ such that $H(x)=H(y)$
This is sometimes referred to as strong collision resistance.
This is a very accurate definition but may be a bit technical for the novice. Allow me to explain the properties of a cryptographic hash in a manner that is a bit less technical, but no less true. In order to be a cryptographic hash function, an algorithm needs to have three properties. The first property is that the function is one way. That means it cannot be “unhashed.” Now this may seem a bit odd at first. An algorithm that is not reversible? Not simply that it is difficult to reverse, but that it is literally impossible to reverse. Yes, that is exactly what I mean. Much like trying to take a scrambled egg and unscramble it and put it back in the eggshell, it is just not possible. When we examine specific hashing algorithms later in this chapter, the reason why a cryptographic hash is irreversible should become very clear.

The second property that any cryptographic has must have is that a variable length input produces a fixed length output. That means that no matter what size of input you have, you will get the same size output. Each particular cryptographic hash algorithm has a specific size output. For example, SHA-1 produces a 160-bit hash. It does not matter whether you input 1 byte or 1 terabyte, you get out 160 bits.

How do you get fixed length output regardless of the size of the input? Different algorithms will each use their own specific approach, but in general it involves compressing all the data into a block of a specific size. If the input is smaller than the block, then pad it. Consider the following example. This particular example is trivial and for demonstrative purposes only. It would not suffice as a secure cryptographic hash. We will call this trivial hashing algorithm or THA:

Step 1: if the input is less than 64 bits, then pad it with zeros until you achieve 64 bits. If it is greater than 64 bits, then divide it into 64-bit segments. Make sure the last segment is exactly 64 bits, even if you need to pad it with zeros.
Step 2. Divide each 64-bit block into two halves.
Step 3: XOR the left have of each block with the right half of the block.
Step 4: If there is more than one block, start at the first block XORing it with the next block. Continue this until you get to the last block. The output from the final XOR operation is your hash. If you had only one block, then take the result of XORing the left half with the right half and that is your hash.

Now I cannot stress enough this would not be a secure hashing algorithm. In fact, it likely would not be referred to as a cryptographic hashing algorithm. It is very easy to envision collisions occurring in this scenario, and quite easily in fact. However, this does illustrate a rather primitive way in which the input text can be condensed (or padded) to reach a specific size. Actuall hashing algorithms that we will explore later in this chapter are more complex. However this trivial psuedo-hash should give you a feel for the process.

Finally, the algorithm must be collision resistant. But what precisely does that mean? A collision occurs if two different inputs produce the same output. If you use SHA-1, then you have a 160 -bit output. That means $2^{160}$ possible outputs. Clearly, you could have trillions of different inputs and never see a collision. It should be noted that the size of the output (also called a digest or message digest) is only one factor in collision resistance. The nature of the algorithm itself also has an impact on collision resistance.

# 密码学代写

.

## 数学代写|密码学代写密码理论代考|什么是密码哈希?

1. H可以应用于可变大小的数据块。
2. H输出定长。
3. $\mathrm{H}(\mathrm{X})$对于任何给定的$\mathrm{x}$都相对容易计算，这使得硬件和软件实现都非常实用。$\mathrm{X}$是您输入到散列中的内容。
4. 对于任何给定的值$h$，在计算上不可能找到$x$使得$\mathrm{H}(\mathrm{x})=\mathrm{h}$。这在文献中有时被称为单向属性。
5. 对于任何给定的块$x$，在计算上无法找到$y !=x$，使得$\mathrm{H}(\mathrm{y})=\mathrm{H}(\mathrm{x})$。这有时被称为弱抗碰撞能力。
6. 在计算上不可能找到任何一对$x, y$，以至于$H(x)=H(y)$
这有时被称为强抗碰撞性。
这是一个非常准确的定义，但对新手来说可能有点专业。请允许我用一种不那么技术性，但同样真实的方式来解释加密散列的属性。为了成为一个加密哈希函数，一个算法需要有三个属性。第一个性质是函数是单向的。这意味着它不能被“撤销”。乍一看，这可能有点奇怪。一个不可逆的算法?这不仅是很难逆转，而且实际上是不可能逆转的。是的，我就是这个意思。就像试图把一个炒鸡蛋整理好再放回蛋壳里一样，这是不可能的。当我们在本章后面讨论特定的哈希算法时，密码哈希不可逆的原因应该变得非常清楚任何密码学都必须具备的第二个属性是，可变长度的输入产生固定长度的输出。这意味着不管你有多大的输入，你会得到相同大小的输出。每个特定的加密哈希算法都有特定大小的输出。例如，SHA-1生成一个160位的哈希。不管你输入的是1字节还是1 tb，你得到的都是160位如何获得固定长度的输出而不考虑输入的大小?不同的算法将使用各自特定的方法，但通常它涉及到将所有数据压缩到特定大小的块中。如果输入小于块，则填充它。考虑下面的例子。这个特殊的例子是微不足道的，仅用于演示目的。它作为安全的加密散列是不够的。我们将称之为平凡哈希算法或THA:步骤1:如果输入小于64位，则用0填充，直到达到64位。如果大于64位，则将其划分为64位段。确保最后一段正好是64位，即使您需要用0填充它。
步骤2。将每个64位块分成两半。
步骤3:将每个块的左部分与该块的右部分异或。步骤4:如果有多个块，从第一个块开始用下一个块XORing它。继续这样做，直到你到达最后一个区块。最后的XOR操作的输出是您的散列。如果你只有一个块，那么将左一半和右一半进行XORing的结果，这就是你的哈希值现在我必须强调这不是一个安全的哈希算法。事实上，它可能不会被称为加密哈希算法。在这种情况下很容易想象碰撞的发生，事实上也很容易。然而，这确实说明了一种相当原始的方法，可以将输入文本压缩(或填充)以达到特定的大小。实际上，我们将在本章后面讨论的哈希算法更加复杂。然而，这个简单的伪散列应该会让您对这个过程有一个感觉最后，算法必须是抗碰撞的。但这到底意味着什么呢?如果两个不同的输入产生相同的输出，就会发生碰撞。如果使用SHA-1，则有160位的输出。这意味着$2^{160}$可能的输出。很明显，你可能有数万亿种不同的输入，却永远看不到碰撞。应该注意的是，输出(也称为摘要或消息摘要)的大小只是抗碰撞性的一个因素。算法本身的性质对抗碰撞性也有影响

## 有限元方法代写

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 环境以解决特定类别的问题。可用工具箱的领域包括信号处理、控制系统、神经网络、模糊逻辑、小波、仿真等。