密码学中的数学基础:二进制与数论入门
1. 二进制数的转换与运算
人类通常更习惯使用十进制数,因此常常需要在二进制和十进制之间进行转换。一种常见的二进制转十进制的方法是利用二进制数中各个位对应2的幂次方这一特性。例如,对于二进制数10111001,我们可以将其按位拆解为2的幂次方:
| 2的幂次方 | 2⁷ | 2⁶ | 2⁵ | 2⁴ | 2³ | 2² | 2¹ | 2⁰ |
| — | — | — | — | — | — | — | — | — |
| 对应的值 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| 二进制数 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 1 |
| 实际值 | 128 | 0 | 32 | 16 | 8 | 0 | 0 | 1 |
将这些实际值相加,即128 + 32 + 16 + 8 + 1 = 185,就得到了对应的十进制数。这种方法虽然可能不是最快的,但易于理解。
在二进制运算方面,我们可以像处理十进制数一样进行各种数学运算。在密码学中,主要关注的三种运算为:与(AND)、或(OR)和异或(XOR)。下面以两个4位二进制数1101和1100为例,介绍这三种运算:
- 二进制与(AND) :只有当两个对应位都为1时,结果位才为1,否则为0。
- 二进制或(OR) :只要两个对应位中有一个为1,结果位就为1。
- 二进制异或(XOR) :当两个对应位不同时,结果位为1;相同时,结果位为0。异或运算在密码学算
超级会员免费看
订阅专栏 解锁全文
47

被折叠的 条评论
为什么被折叠?



