zoukankan      html  css  js  c++  java
  • 2018-2019-2 20165221课程设计学习-week1

    2018-2019-2 20165221课程设计学习-week1

    目录


    任务理解与分工

    • 团队任务
      • 小组讨论对课程设计任务的理解:
        • 我们的题目是基于python的GMSSL的实现,和老师及小组内部讨论后,认为我们的任务就是用Python编程实现国密算法。
      • 进行任务的功能划分和分工
        • 每人在国密算法中选一个算法,弄懂基本原理,用python语言跑通,后续的修改代码和添加小功能再由小组协助完成。
      • 任务的进度安排:
        • week1:完成所有的前期准备,学习Python的一些基本语法,理解自己所选的国密算法。
        • week2:继续Python的学习,网上搜集算法相关资料,开始准备代码。
        • week3:基本实现代码跑通,开始小组讨论后续加分项。
        • week4:进入收尾工作
    • 个人任务:
      • 我选择SM3算法的实现,进度安排同上,与小组进度保持一致。

    任务一:完成Python环境的搭建

    • 我选择在Windows下搭建Python的环境
    • 先到python官网下载安装包-->去配置环境变量-->path
    • 最终搭建成功后,找到存放目录,用命令行查看
    • 在Windows中打开

    任务二:完成git和上传码云的配置

    - 参考学长的博客和[度娘](https://www.jianshu.com/p/a6ac5ae5c810),搭建成功,并建立本地仓库,命名为```20165221 / 2018-2019-2课程设计``` ![](https://img2018.cnblogs.com/blog/1322987/201905/1322987-20190508105909395-542043930.png)

    任务三:尝试简单的Python代码编写并推到码云上

    - 使用Python编写的几个简单命令 ![](https://img2018.cnblogs.com/blog/1322987/201905/1322987-20190508110018019-1996056819.png) ![](https://img2018.cnblogs.com/blog/1322987/201905/1322987-20190509171307233-935042831.png)
    • 将其推到码云上


    • 完成代码量的统计

    • 使用statistics来进行代码的统计,使用方法是在.py文件存放目录中运行。

    任务四:了解熟悉几个国密算法

    • 国密即:国家密码管理局认定的国产密码算法。主要有:SM1,SM2,SM3,SM4.
    SM1 :为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。
    
    SM2 :为非对称加密,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。
    
    SM3 :消息摘要。可以用MD5作为对比理解。该算法已公开。校验结果为256位。
    
    SM4 :无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位。
    
    • 与密码学相对应的算法总结
    国密算法 对应密码学算法
    SM1 AES算法(高级加密标准)
    SM2 ECC (椭圆加密算法)
    SM3 MD5 (信息摘要算法)
    SM4 DES(数据加密标准)

    五 . 学习笔记

    编译和解释:

    • 编译:一次性翻译,之后不再需要源代码,类似于英文翻译

    • 解释:每次程序运行时随着翻译来执行,类似于实时的同声传译

    编程语言的分类

    • 根据执行方式的不同,分为两类
      • 静态语言 使用编译执行的语言-->C/C++,Java语言
      • 脚本语言 使用解释之行的编程语言-->Python语言/JavaScript语言/PHP语言

    程序的基本编写方法

    • IPO模式

    Python学习笔记

    • Python的的两种编写方式:
      • 交互式: 对每个输入语句即时运行结果
      • 文件式:批量执行一组语句并运行结果

    程序元素:

    • 注释:不会被计算机所执行

      • 单行注释以#开头,
      • 多行注释以'''开头,以'''结尾
    • 关联标识符与保留字

      • 关联标识符
      • 保留字
    • 输入函数:

      • <变量>=input(<提示性文字>),获得的用户输入存放在变量中,紧跟提示性文字后面出现
    • 输出函数:

      • 格式化使用方法
    • eval函数:

    • 缩进

      • 单层缩进
      • 多层缩进
    • 表达式:

      • 若字符串长度为L,则第一个字节的索引为0或-L,最后一个字节索引为L-1或-1。[0, L-1],[-L,-1]
      • 索引和切片
    • 实例分析

      • tHndex='python'

        • tHndex[1:-2]---->'yth'
        • tHndex[4]---->'o'
        • tHndex[-4]---->'t'
      • val =28c

        • val[0:2],表示的是28
        • val[0:-1],表示取除去最后一个字符外的字符串
    • 循环语句:for i in range (10),表示该循环执行10次。

    六 .本周学习总结

    - 本周自己只是做了一些基础的学习,完成了本次课设的所有前期准备工作 - 至于python的学习,在同组队友的推荐下,自己在慕课上,跟着北京理工大学老师的[**网课**](https://www.icourse163.org/course/BIT-268001)在学习,收获还是有的,但自己还是要加快进度,毕竟课设时间紧,任务重..... - 本周最大的难点还是在彻底搞懂自己选择的国密算法,但是自己在学,困难应该不是问题。 - 因为本周还没有完成课设代码,所以码云上的代码,都是自己找来练手的。 - [**码云链接**](https://gitee.com/tx0630/course_design_for_201810192)
  • 相关阅读:
    670. Maximum Swap
    653. Two Sum IV
    639. Decode Ways II
    636. Exclusive Time of Functions
    621. Task Scheduler
    572. Subtree of Another Tree
    554. Brick Wall
    543. Diameter of Binary Tree
    535. Encode and Decode TinyURL
    博客园自定义背景图片
  • 原文地址:https://www.cnblogs.com/0630tx/p/10830632.html
Copyright © 2011-2022 走看看