【学习打卡】220904-C01学习密码学

1 篇文章 0 订阅
  • 课程名称:人人都该懂密码学,通用密码学原理与应用实战
  • 章节名称:
    • 第3章:密码学核心-Hash函数
    • 函数
      • 3-1:Hash函数-本章导学
      • 3-2:无处不在的Hash应用
      • 3-3:介绍Hash函数的性质
  • 讲师姓名:马里布
  • 时间:2022-09-04 21:15

课程内容220904

  • cryptographic hash function

  • What is a hash function:

    • Hash函数有很多别名

      • 摘要算法
      • 杂凑算法
      • 数字指纹
      • 哈希值
      • 散列值
      • 检验和
      • ……
    • Hash brown:薯饼

      • hash切细;弄糟;反复推敲,这里指把马铃薯切成细条
      • brown:这里是动词意思,把东西烤成棕色的意思
      • 放在一起就是把切成细条的马铃薯烤成饼状
      • 把无限多转化为固定的状态过程叫hashing
    • Hash函数的数学表示

      • 一个函数 H ( x ) = y H(x) = y H(x)=y被称为Hash函数
      • H : { 0 , 1 } ∗ → { 0 , 1 } n H: \{0, 1\}^* \rightarrow\{0, 1\}^n H:{0,1}{0,1}n
      • 函数特性
        • 随机性:输出的 y y y是均匀分布的
        • 单向性:给定 y y y x x x是不可行的
        • 无爪性:无法有效找到不同 x 1 , x 2 x_1, x_2 x1,x2,使得 H ( x 1 ) = H ( x 2 ) H(x_1)=H(x_2) H(x1)=H(x2)
        • 有效性:能够快速计算
    • Hash函数的关注点

      • 是否密码学Hash:可以反映函数的计算复杂度与安全性问题
      • 摘要长度
      • 使用场景
    • 常见Hash方法

      密码学Hash应用非密码学Hash应用
      md4左侧以下推荐使用Murmur3(32, 64, 128)C++标准库;Nginx;Hadoop等
      md5Fnv(32-1024)Python与golang中有使用
      sha1Siphash(64)
      sha224Adler32
      SM3(256)我国国秘算法系列Crc(16, 32, 64)压缩包,以及网络协议中数据报文检验码中
      sha256……
      sha384
      sha512
    • Java hashCode方法原码

      • public int hashCode() {
            int h = hash;
            if (h == 0 && value.length > 0) {
                char val[] = value;
                for (int i = 0; i < value.length; i++) {
                    h = 31 * h + val[i];
                }
                hash = h;
            }
            return h;
        }
        
      • 将上述代码写成公式:

        • ∑ i = 0 n S [ i ] 3 1 n − i ( m o d   2 32 ) \sum^n_{i=0}S_{[i]}31^{n-i}(mod\ 2^{32}) i=0nS[i]31ni(mod 232)

学习心得220904

Hash函数内容学习,感觉难度不小,这课听了很长时间,再查找一些资料,感觉才啃了下来

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值