对分课堂总结

1 你觉得对分课堂最有益的部分是什么?请具体说明

  • 我觉得对分课堂补充了我的知识架构。
    通过查看组内其他人写的“亮闪闪”部分,我能发现一些自己在学习、复习时没有注意到的知识点,我将这部分知识点重新纳入自己的知识体系中,能够帮助我完善和补充知识架构,查漏补缺,更好的掌握课程所学。
  • 我觉得对分课堂改变了我的学习习惯。
    之前我一直习惯从“面”到“线”再到“点”的学习方式,即必须由浅入深,成体系成逻辑的学习知识,但这种学习方式不太适合在大学中使用,大学的知识有时只需要先学会“点”,能够成功应用,然后在应用的过程中掌握“线”,了解知识和知识之间的联系,最后再形成体系,织成“面”。对分课堂改变了我的学习习惯,让我习惯从分点开始,学习掌握新知识。
  • 我觉得对分课堂激发了我的更多思考。
    因为要写“亮闪闪”部分,所以在上课学习和课后复习时,我都开始尝试问自己“我学到了什么?”;因为要写“考考你”和“帮帮我”部分,所以对于每一个重点难点内容,我都开始尝试问自己“为什么是这样?”、“如果更换了某某条件会有什么变化?”、“如果想达到某某效果应该做什么改变?”。
  • 我觉得对分课堂加强了组内的相互交流。
    在对分课堂开展期间,我们组的小组群聊也活跃了起来,大家都能在群中畅所欲言,提出自己的问题,发表自己的看法,积极思考,互相学习,共同进步,组内的学习氛围也得到了很好的改善,大家的积极性都被激发起来了。

2 觉得对分课堂最需要改进的部分是什么?请具体说明

  • 我举得对分课堂应该合理调整时长。
    在进行对分课堂的过程中,我们组有过因为觉得时间紧,怕不能按时提交总结好的“亮闪帮”内容,所以没有充分思考,只是机械的想到什么写什么,所以“亮闪闪”部分没有真正做到充分总结,“帮帮我”和“考考你”部分问题提出的不够有条理、不够深刻。
  • 我觉得对分课堂应该避免AI代劳。
    这个问题是上一个问题的延申。因为时间不充裕,所以我们组有过一时想不出合适的内容撰写,迫不得已几乎全盘使用AI代劳的情况,但就事论事、平心而论,我认为“亮考帮”不应该是使用AI代劳的内容,更不应该是偷懒、敷衍对待的任务,而是应该充分自主思考、充分小组交流的成果。
  • 我觉得对分课堂应该交流更加自由。
    本学期的对分课堂平均是3周才有一次,由老师课上发布任务,时间很固定,我认为这是具有一定的局限性和强制性的,并不利于“亮考帮”活动的更好开展和实施,我认为应该时间随机、内容灵活的进行对分课堂,才能更加自由的进行组内学习交流,提高“亮考帮”的效果。

3 总结对分课堂中自己的考考你,列出所有问题,并对回答进行点评

第1,2,3周

  • 如何平衡安全性和性能,以最小化计算和存储的需求?
    • 正确答案
      选择高效的加密算法:
      AES: 比如使用AES,它相较于3DES有更好的性能。
      ECC: 在公钥加密中选择椭圆曲线密码学(ECC),相同安全级别下,ECC密钥长度更短,计算效率更高。
      利用硬件加速:
      AES-NI指令集: 现代处理器提供了AES指令集,可以大幅提高AES加密和解密的速度。
      TPM和HSM: 可信平台模块(TPM)和硬件安全模块(HSM)可以提供安全且高效的密钥存储和加密运算。
      优化密钥管理:
      密钥生命周期管理: 定期更新密钥以保证安全性,并且避免长期使用同一密钥。
      密钥长度选择: 根据具体应用选择合适长度的密钥,128位的AES密钥通常足够安全。
      分层安全措施:
      数据分类加密: 根据数据的敏感程度选择不同强度的加密措施,对极敏感数据采用最强的加密方法,而对一般数据使用轻量级的加密方法。
      存储优化:
      压缩后加密: 在加密前对数据进行压缩,可以减少加密后数据的大小,从而节省存储空间。
      安全存储策略: 使用高效的数据库加密和存储解决方案。

第4周

  • 如何在分布式计算环境中保护通信的安全?
    • 正确答案
      加密通信:
      TLS/SSL: 使用TLS/SSL加密所有节点间的通信,确保数据传输的机密性和完整性。
      VPN: 通过虚拟专用网络(VPN)建立安全的通信隧道,保护数据在传输过程中的安全。
      身份验证:
      双向认证: 双方使用数字证书进行身份验证,确保通信双方的身份真实性。
      多因素认证: 使用多因素认证(MFA),如密码加短信验证码,提高安全性。
      密钥管理:
      公钥基础设施(PKI): 通过PKI管理数字证书和密钥的发放、更新和吊销。
      自动化工具: 使用自动化工具进行密钥轮换和证书更新,减少人为错误。
      入侵检测和防御:
      网络入侵检测系统(NIDS): 部署NIDS实时监控网络流量,识别和响应潜在威胁。
      日志分析: 进行实时的日志分析,及时发现异常活动和攻击迹象。

第7周

  • RSA算法在数字签名中的应用是如何保证认证的不可抵赖性的?
    • 正确答案
      私钥签名:发送方使用自己的私钥对消息进行签名,生成数字签名。
      公钥验证:接收方使用发送方的公钥验证签名的真实性,从而确认签名者的身份。
      不可抵赖性:由于只有私钥持有者才能生成有效的签名,签名者无法否认自己签署了该消息,从而保证了不可抵赖性。
  • RSA算法素数选择过程对安全性和算法效率的影响?
    • 正确答案
      安全性:
      大素数:选择足够大的素数(如2048位或以上)以防止因数分解攻击。
      随机性:使用高质量的随机数生成器选择素数,防止预测攻击。
      效率:
      计算复杂性:较大的素数增加了加密和解密操作的计算复杂性,影响效率。
      权衡:在保证安全性的前提下,选择合适大小的素数以平衡性能和安全性。

第10周

  • 分组密码中初始化向量的作用?初始化向量是否属于敏感数据?是否需要加密保护?
    • 正确答案
      作用:
      随机性:初始化向量(IV)提供随机性,确保相同的明文在不同加密过程中生成不同的密文。
      防止模式分析:IV防止攻击者通过分析密文模式来推测明文内容。
      敏感性:
      不保密但防重复:IV本身不需要保密,但应防止在不同加密操作中重复使用相同的IV。
      保护:
      安全传输:IV应与密钥一起通过安全通道传输,防止被篡改或重用,虽然不需要加密,但需要确保其完整性。
  • 现在使用的分组密码密钥长度最少为多少?
    • 正确答案
      AES:目前推荐的AES密钥长度最少为128位。
      实际应用:根据数据敏感性和安全需求,可以选择128位、192位或256位的AES密钥。

第11周

  • 使用git的什么命令可以查看两个提交之间的区别?
    • 正确答案
      git diff
      此命令比较两个提交之间的差异,显示出哪些文件和内容发生了变化。
  • 使用git的什么命令可以添加单个文件到暂存区?
    • 正确答案
      git add
      此命令将指定的文件添加到暂存区,为下次提交做好准备。

4 总结对分课堂中自己的帮帮我,列出所有问题,并对回答进行点评

第1,2,3周

  • 如果散列函数出现部分消息碰撞,如何才能修复?
    • 正确答案
      更换散列函数:
      强散列函数: 使用更强的散列函数如SHA-256或SHA-3来代替已知有碰撞风险的MD5或SHA-1。
      添加盐值:
      盐值保护: 在消息中添加随机盐值,再进行散列,增加碰撞难度和成本。
      唯一性: 确保每个消息的盐值唯一,防止重复攻击。
      组合散列函数:
      双散列: 使用两个不同的散列函数对同一消息进行两次散列,增加碰撞难度。

第4周

  • 在详细设计中提到了修复传输层以防止消息顺序颠倒的情况,具体是如何实现的?这种处理方式是否对通信性能有影响?
    • 正确答案
      实现方法:
      消息序列号: 每个消息附带唯一的序列号,接收方根据序列号重排消息,确保按顺序处理。
      确认机制: 发送方等待接收方确认消息接收情况,以确保消息按顺序到达。
      窗口控制: 使用滑动窗口协议,控制发送消息的数量,并按序接收。
      性能影响:
      增加开销: 序列号和确认机制会增加额外的网络和计算开销。
      优化策略: 通过批量处理和高效算法最小化性能影响,如使用快速确认机制减少延迟。

第7周

  • 密码协议如何应对网络环境中的延迟、丢包和不可靠性等挑战?
    • 正确答案
      重传机制: 当检测到数据丢失时,自动重传丢失的数据包。
      超时检测: 设定合理的超时时间,确保数据在一定时间内传输完毕。
      数据完整性校验: 使用校验码或散列值检测数据传输过程中的错误。
      冗余传输: 发送多个冗余数据包,提高数据到达的可靠性。
  • 密码协商中的前向安全性和后向安全性的异同点?
    • 正确答案
      前向安全性:
      定义: 确保未来的密钥不会因当前密钥泄露而受到影响。
      实现: 使用临时密钥对每次会话进行加密,即使当前密钥泄露,也无法解密过去的会话内容。
      后向安全性:
      定义: 确保过去的密钥不会因当前密钥泄露而受到影响。
      实现: 每次会话生成新的密钥,并丢弃旧密钥,防止旧密钥被利用。
      相同点:
      两者都是为了保护不同时间段的密钥安全,防止因单个密钥泄露而导致整体安全性下降。
  • Diffie-Hellman协议如何与数字签名结合使用以提高安全性?
    • 正确答案
      结合使用:
      密钥交换: 使用Diffie-Hellman协议进行安全的密钥交换。
      数字签名认证: 对Diffie-Hellman密钥交换过程中生成的公钥进行数字签名,确保公钥的真实性和完整性。
      防止中间人攻击: 数字签名确保只有合法的参与方能够生成有效的公钥,防止中间人攻击。

第10周

  • 如果加密使用的初始化向量丢失或被篡改,是否还有机会正确解密?
    • 正确答案
      解密失败: 如果IV丢失或被篡改,通常无法正确解密数据,因为IV直接影响加密和解密过程的正确性。
      验证机制: 实现数据完整性校验机制,确保IV的正确性,防止篡改。
  • 已知采用不同的密码工作模式产生的加密结果不同,那么是否能够采用两种及以上工作模式混用的方式加密数据流呢?安全性是否更高?
    • 正确答案
      混用可能性:
      复杂性增加: 混用不同的密码工作模式会增加加密和解密过程的复杂性。
      安全性:在设计得当的情况下,混用可以提高安全性。例如,可以先使用一种模式加密,再使用另一种模式加密,提高抵抗不同攻击的能力。
      可行性:需要确保不同工作模式之间的兼容性和独立性,以防止安全漏洞。

第11周

  • 如何撤销最近一次的提交但保留更改?
    • 正确答案
      git reset --soft HEAD~1
      撤销最近一次的提交,但保留更改在暂存区,可以重新提交或修改后再提交。
  • 如何恢复工作目录中某个文件到上一个提交的状态?
    • 正确答案
      git checkout HEAD --
      将工作目录中指定的文件恢复到上一个提交的状态。
  • 如何在测试代码中使用 CUnit 进行单元测试?
    • 正确答案
      编写测试用例:
      创建测试套件和测试函数,使用CUnit的API编写测试代码。
      运行测试:
      编译并运行测试代码,CUnit将显示测试结果,包括通过和失败的测试。
#include <CUnit/CUnit.h>
#include <CUnit/Basic.h>

void test_example() {
    CU_ASSERT(2 + 2 == 4);
}

int main() {
    CU_initialize_registry();
    CU_pSuite suite = CU_add_suite("Example Suite", 0, 0);
    CU_add_test(suite, "test of example", test_example);
    CU_basic_set_mode(CU_BRM_VERBOSE);
    CU_basic_run_tests();
    CU_cleanup_registry();
    return 0;
}

5 你们小组的谁对你帮助最大?请具体描述

  • 在代码编写方面,杨谨徽同学对我帮助最大。
    杨谨徽同学的代码编写能力在我们组内可以说是最强的,没有之一,他对于Python语言和Django框架都有很好的掌握。在制作公文传输系统的时候,因为我是第一次接触这种完整的项目,所以我向他请教了很多。
    我的Django框架的基础知识很多都是他教会的,包括但不限于框架如何构建是最合理的,如何设置合适的路由。有关PIN值加盐和密钥安全管理也是与他交流讨论过的。我遇到不懂的代码,询问ChatGPT无果之后,也是选择了向他请教,他以最简单的语言表述帮我理解代码,从而方便我的代码编写和修改。
    我记忆最深刻的一次是,在我编写用户登录的后端代码时,没有考虑到将登录信息传到session中去,导致界面一直在登录界面和主界面之间卡住,相当于界面跳转了,但是不能用登录的账户角色进行进一步的操作。我采用在后端代码中使用@login_required逻辑也没能成功解决问题,所以我迫不得已去问了杨谨徽同学,他详细的给我解释了问题的来源,提供了可行的解决方案,使我受益匪浅。
  • 在课程学习方面,袁艺同学对我帮助最大。
    袁艺同学和我在学习上,在学习习惯、学习风格、学习能力、学习思维等诸多方面,都很互补,所以当出现学习上的问题时,我们相互交流,经常会有惊喜的收获,让我豁然开朗。
    且她是我的室友,所以从物理距离上来讲,沟通交流起来非常的方便,可以经常就一个问题表述自己的观点,争的不亦乐乎。此外,我和她还同在一个大创项目组,这个大创项目和国密算法、龙脉KEY的使用关系密切,这和本课程的讲授内容高度一致,所以我和她可以随时随地就课程的学习展开讨论、各抒己见,还可以相互演示代码、示范操作。
posted @ 2024-06-04 22:48  20211405周睿雅  阅读(10)  评论(0编辑  收藏  举报