区块链中的数学 - 模运算的运算规则

  • blocksight
  • 更新于 2020-05-16 17:47
  • 阅读 3072

本节将总结下模运算的运算规则。更好地理解之前文章中一些推导过程。

写在前面

很高兴看到最近又有不少新朋友关注,说明区块链技术越来越得到大家的认可。建议新来的朋友按照从前往后的文章顺序阅读,以便有更好的学习效果。当然,大牛除外,欢迎交流! 下面接着上一节继续说,上一节我们在迪菲-赫尔曼密钥交换提到,由于模运算广泛存在于密码学相关算法中,所以本节将总结下模运算的运算规则。更好地理解之前文章中一些推导过程。

为什么模运算

之前我们经常说密码学的安全大都是基于求解离散对数问题的困难性。问题来了,什么是离散对数?这要分成两部分来理解,离散对数包含两层含义: 对数+离散。

对数很好理解,是幂运算的逆运算。离散含义是什么呢?怎么让对数的运算离散化?由于实数域是连续的,实数域上的幂运算很容易通过对数运算求出底和指数,于是密码学中大都选取整数域+模运算,将整数运算结果取余(可能若干次),这样就很难直接求出原像。

需要说明的是,模运算和取余运算有一点不同,主要的区别在于对负整数进行除法运算时操作不同。

模运算规则

模运算与基本四则运算类似,但是除法除外。其规则如下: (1)(a + b) % p = (a % p + b % p) % p (2)(a - b) % p = (a % p - b % p ) % p (3)(a b) % p = (a % p b % p) % p (4)$a^b$ % p = (a % p )^b % p

其中(4)在上一节中迪菲赫尔曼秘钥交换中用到。

满足规律

  1. 结合律: ((a+b) % p + c) % p = (a + (b+c) % p) % p ((ab) % p c)% p = (a (bc) % p) % p

  2. 交换律: (a + b) % p = (b+a) % p (a b) % p = (b a) % p

  3. 分配律: (a+b) % p = ( a % p + b % p ) % p ((a +b)% p c) % p = ((a c) % p + (b * c) % p) % p

  4. 重要定理 (1)若a≡b (% p)[注:≡ 符号代表模等于,即a%p=b%p],则对于任意的c,都有(a + c) ≡ (b + c) (%p); (2)若a≡b (% p),则对于任意的c,都有(a c) ≡ (b c) (%p); (3)若a≡b (% p),c≡d (% p),则 (a + c) ≡ (b + d) (%p), (a - c) ≡ (b - d) (%p), (a c) ≡ (b d) (%p);

总结

这一次讲了模运算的相关规则较为基础,限于篇幅原因,没有给出详细证明过程,例如上面说的几个定理,都是可以经过证明的。有了这些基础才能继续前行,理解更高级的如欧拉定理等。 还有一点,仔细阅读的朋友可能已经发现,运算规则中只讲了+ ,-,* 没有除法运算规则,这是因为除法运算比较特殊,跟普通数除有很大不同,且有多种求法。所以打算单独写一篇来介绍,这样可以详尽说明,而不是一笔带过,不求甚解。

欢迎关注公众号:blocksight

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
blocksight
blocksight
江湖只有他的大名,没有他的介绍。