2020总结与2021展望
郝伟, 2020/12/31
理论研究主要涉及深度学习, 机器学习, 强化学习, 自然语言处理, 知识图谱 等,主要包括以下核心技术要点:
(以下链接均为原创内容,加粗表示推荐内容)
在工程实现层面主要有以下研究内容:
在通理论研究和实际的需求分析后,进行设计和并编写代码进行验证40余项,其中与公司产品直接相关的内容有23项,具体如下所示,由于代码比较多,只列出比较有代表性的几个验证代码和运行结果(直接点击表中的链接即可)。
在F项目中,提出算法,解决问题,优化模型,功能和性能模拟评估。
主要内容如下所示(以下项目均有代码,时间关系仅列表部分仅供参考)。
| ID | 日期 | 内容 | 语言 | 介绍 |
|---|---|---|---|---|
| 1 | 2020/04/11 | 多节点嵌套加密 | Java | 用于多节点的消息嵌套加密 |
| 2 | 2020/04/12 | 加密测试 | Java | 对称加密功能测试 |
| 3 | 2020/04/26 | 图像学习工具 | C# | 用于节点算法分析 |
| 4 | 2020/05/04 | DH加密算法模拟验证 | Java | 用于密钥交换 |
| 5 | 2020/05/22 | 使用图片隐藏加密信息。 | C# | 用于消息隐藏 |
| 6 | 2020/05/27 | 基于超奇偶性的高速对称加密算法 | Java/C# | 可以达到3GB/S的加密速度,30倍于标准的AES算法。 |
| 7 | 2020/05/29 | 基于三角函数测试查表性能 | Java | 1)查表法提高速度几百倍; 2)三角函数在2pi以内会计算更快,因为不用考虑求余计算。 |
| 8 | 2020/06/04 | 模拟简单的KAD算法 | Java | 模拟成功,用于组网算法 |
| 9 | 2020/06/07 | 节点路径搜索算法 | Java | 用于模拟组网算法 |
| 10 | 2020/06/07 | 字符串拼接测试速度 | Java | 用于提高字节加密的性能 |
| 11 | 2020/06/09 | 基于MD5的IP地址隐藏算法 | Java | 实现对IP隐藏的算法 |
| 12 | 2020/06/11 | 节点曝光度风险模拟 | Java | 可以使用公式计算资产的曝光度 |
| 13 | 2020/06/15 | 登陆验证算法验证 | Java | 节点登陆验证过程验证实验 |
| 14 | 2020/06/18 | Tomcat字节流测试 | Java | 使用Tomcat进行字节流的操作。 |
| 15 | 2020/06/23 | ECDS密钥交换验证 | Java | 测试ECDSA算法 |
| 16 | 2020/07/05 | 根据RSA算法的原理编写的算法。 | Java | 算法模拟验证 |
| 17 | 2020/07/20 | 使用Cmakefile编译第三方库 | C++ | 测试第三方库的调用编译测试 |
| 18 | 2020/08/21 | F项目框架第3版 | - | 系统整体架构设计 |
| 19 | 2020/08/27 | 多线程资源共享性能问题。 | C++ | 每秒可以做到千万次进程切换。 |
| 20 | 2020/09/15 | SSH免密钥登陆 | bash | 通过RSA密钥配置实现无密钥登陆服务器 |
| 21 | 2020/09/18 | 组网算法单机原型(C++实现) | C++ | 通过单机版C++代码演示组网算法 |
| 22 | 2020/10/12 | 一个线程会占用多少的内存?答:几百KB | C++ | 实验验证多线程程序中一个线程占用的内在大小 |
| 23 | 2020/10/13 | 双线程竞争资源产生的线程切换性能测试 | C++ | 验证双线程切换时的效率,结论是每秒百万次。 |
| 24 | 2020/10/15 | GaspBerry嵌入式开发板测试报告 | 多语言 | 实验验证在GaspBerry中,默认自带的JDK/Python/gcc的运行情况。 |
| 25 | 2020/10/20 | 双线程竞争资源产生的线程切换性能测试 | C++ | 验证双线程切换时的效率,结论是每秒百万次。 |
初步建立了一套能够用于资产与风险评估的算法,并且经过3次迭代优化,初步达到预期目标。未来计划对收集到的数据进行机器学习,通过算法实现对参数的优化调整。
主要是资产与漏洞评估算法
| ID | 日期 | 内容 | 语言 | 介绍 |
|---|---|---|---|---|
| 1 | 2020/04/14 | 资产与漏洞风险评估算法模块 | Java | 算法功能测试 |
| 2 | 2020/10/26 | 弱密码随机生成算法 | Java | 根据输入15个输入参数和生成个数,生成随机的弱密码。 |
通过基于强化学习的算法,实现对渗透过程的智能化控制,并能够动态响应控制变化。
| ID | 日期 | 内容 | 语言 | 介绍 |
|---|---|---|---|---|
| 1 | 2020/03/31 | 强化学习攻击演示 | Python | 基于强化学习的智能化测试 |
| 2 | 2020/06/10 | 强化学习攻击性能测试 | Python | 可以使用机器学习选择最优结果 |
其他一些相关的模拟演示
| ID | 日期 | 内容 | 语言 | 介绍 |
|---|---|---|---|---|
| 1 | 2020/12/03 | 两台机器间数据通信的几种方法 | Python | 调研机器横向穿透的方法。 |
| 2 | 2020/12/27 | 设备名称与版本提取方案设计 | Python | 基于正则的信息提取方法。 |
| 3 | 2020/12/28 | nmap抓取的数据的匹配方案设计 | Python | 基于距离计算的文本相似度计算方法。 |
以下文档是为了F项目而编写,并保存在合肥研发中心的内部服务器的Confluence上。
| ID | 名称 | 分类 | 作者 | 介绍 |
|---|---|---|---|---|
| 201001 | 系统联调测试方案设计 | 方案设计 | 郝伟 | 联调方案设计的三个阶段和各阶段测试设计及安排等相关内容。 |
| 201002 | F项目章程 | 项目管理 | 郝伟 | 项目章程,对项目各方面相关内容约定的基本文档。 |
| 201003 | tomcat硬件资源占用测试 | 测试报告 | 郝伟 | 对tomcat占用CPU和内存资源的情况进行测试报告。 |
| 201004 | 关于非链路通信的的设计方案 | 方案设计 | 郝伟 | 对非链路设计的设计的相关内容。 |
| 201005 | 关于监控中心信息采集的约定和设计 | 方案设计 | 郝伟 | 对监控中心信息采集的数据格式和方式等的方案设计。 |
| 201006 | 上下层通信协议 | 方案设计 | 郝伟 | 对上下层的通信命令进行的详细设计。 |
| 201007 | 组网算法(C++版) | 技术文档 | 郝伟 | 使用C++实现的单机版的组网算法的原型代码。 |
| 201008 | 自动化测试说明文档 | 方案设计 | 郝伟 | 从测试人员角度编写的对自动化测试的一些约定。 |
| 201009 | 一个线程会占用多少的内存?答:几百KB | 测试报告 | 郝伟 | 对Windows和Linux的线程性能尤其是内存占用情况进行的测试。 |
| 201010 | 使用别名简介ssh和scp操作 | 技术文档 | 郝伟 | 介绍如何使用别名进行SSH和SCP的操作。 |
| 201011 | SSH免密钥登陆 | 技术文档 | 郝伟 | 介绍在Linux系统下如何进行免密登陆。 |
| 201012 | 双线程竞争资源性能测试 | 测试报告 | 郝伟 | 使用C++测试双线程切换时的性能。 |
| 201013 | 网关接入注册节点认证流程 | 设计文档 | 郝伟,朱黎明 | 介绍开发人员、终端和网关三种认证的设计原理 |
| 201014 | CLion远程开发配置 | 技术文档 | 郝伟 | 以图文的形式介绍如何配置CLion的远程开发配置过程。 |
| 201015 | 项目整体设计框架 | 设计文档 | 郝伟 | 整个系统的框架性设计说明文档。 |
| 201016 | Confluence使用常见问题 | 技术文档 | 郝伟 | 介绍Confluence的一些使用中的常见问题。 |
| 201017 | 代码管理 | 项目管理 | 郝伟 | F项目中代码管理的一些基本要求。 |
| 201018 | 文档编写基本要求 | 技术文档 | 郝伟 | 介绍技术文章编写时,内容和格式上的一些基本要求。 |
| 201019 | 公司服务器和相关服务启动流程 | 项目管理 | 郝伟 | 介绍公司服务器管理流程。 |
| 201020 | 项目输出程序清单及说明 | 设计文档 | 郝伟 | 对整个项目输出的程序和使用方法进行相关说明。 |
| 201021 | 问题记录列表 | 项目管理 | 郝伟 | 记录项目设计和开发中遇到的一些问题。 |
| 201022 | 如何使用CMake导入第三方开源库 | 技术文档 | 郝伟 | 以zlib演示如何在项目中添加第三方开源库。 |
| 201023 | 各节点存储数据定义 | 设计文档 | 郝伟 | 定义各节点存储的数据内容和格式。 |
| 201024 | 代码评审记录 | 项目管理 | 郝伟 | 对代码质量进行评审并记录评审结果。 |
| 201025 | 使用CMake建立可配置交叉编译框架 | 技术文档 | 郝伟 | 设计了一种可配置的指定库或预定义变量的交叉编译框架。 |
| 201026 | 在CLion项目中设置多个main函数入口 | 技术文档 | 郝伟 | 在CLion项目中添加多个main,从而方便测试。 |
| 201027 | 嵌入式Linux调研问题汇总 | 调研报告 | 郝伟 | 对嵌入式Linux系统的一些问题进行的调研。 |
| 201028 | 公司C++代码规范 V1.0 | 项目管理 | 郝伟 | 对C++代码进行规范性约束。 |
| 201029 | 新员工入职必读 | 项目管理 | 郝伟,吴建峰 | 向新员式介绍了公司和项目开发相关事宜。 |
| 201030 | 使用函数指针数组代替switch语句 | 技术文档 | 郝伟 | 介绍如何将过长且格式类似的switch语句进行大幅简化。 |
| 201031 | 网关接入四种情况说明 | 设计文档 | 郝伟 | 介绍网关在接入时的四种情况。 |
| 201032 | GaspBerry嵌入式开发板测试报告 | 测试报告 | 郝伟 | 对GaspBerry嵌入式开发板进行简单的功能和性能测试。 |
| 201033 | 公司服务器数据备份管理办法 | 项目管理 | 郝伟 | 初步规定了一些数据备份管理办法。 |
| 201034 | Git版本控制模型 | 项目管理 | 郝伟 | 定义了Git版本控制的方法。 |
| 201035 | IP地址伪装设计 | 技术文档 | 郝伟 | 设计了一种用于将IP地址伪装成MD5的算法。 |
主要问题:方向是过于分散
改进计划:根据公司2021发展方向,精选几个方向进行主要钻研。
主要问题:与产品的结合程度不够高;
改进计划:所以以后要多去北京公司与马维士、李岩、刘加勇等人定期沟通,及时了解产品进展问题,及时将研究进展落实至产品中。
主要问题:在宏观层面给出设计以后,精细化程度有待提高,
改进计划:通过与项目管理人员沟通,对任务和安排进一步细化,进一步提高质量控制水平
主要问题:分享不足
改进计划:每月至少1场技术分享、经验分享和方法分享报告,以提高员工的技能水平。
主要问题:沟通程度不够充分
改进计划:从以下三方面的提高沟通效果
人工智能是非常广泛的一个领域,其理论研究具有三个难点:
所以自2019年底至今,经过一年的努力,基本达到了人工智能入门的程序,在自然语言处理、知识图谱和机器学习等方面,都有了一定的认识水平。
通过对F项目、灵洞和灵刃项目的核心模块的参与,显著地提高了工程技术能力,同时反过来,工程上的应用又让理论上的理解得到更加深化推进。
从子公司成立开始,本人与其他人沟通大大增加了,如整个合肥团队的组建过程,F项目的进展过程,在公司的管理等,从过去的纯学术转为一定的管理者的角色,所以与人的沟通能力得到了一定的提高。
通过F项目的历练,管理能力得到了进一步提高,主要包括:
具体包括以下三个方面内容:
更多请参考本人2021年发展规划。
以下内容都是在2020年几个项目中收获的。
根据以上的描述,理论到实现的过程是一个循序渐进不断优化的迭代过程。所以模型要不断打磨和优化,应该是这样的过程:
可以使用以下流程图来表示
根据不同的问题,n的值大小不同,比如有时候运气好,1次就成功了,也有极端的安全比如爱迪生在尝试了超过六千多次的实验后,终于发现了钨丝可以作为电灯材料。当然,不需要这么多次,利用计算机,只需要一定的时间编写了合适的算法,瞬间就可以进行千百万次的模拟计算,大大加快了这一过程。
根据5.2的模型,提出以下建议:
沈总建议:
1、多来北京与团队共同合作,来前务必明确工作任务;
2、要有非常明确的分工,尤其是项目的阶段性成果;
3、未来的研究方向一定要三个产品的落地为目标;
4、定期培训总结;
5、只使用真实数据测试;
加勇建议:
1、技术输出实现完全黑盒模式+文档说明+培训;
2020开局总体良好,在各方面基本实现0-1。2021继续努力,实现1-n的转变。
安徽华云网安信息技术有限公司,常用名称:合肥研发中心,华云安子公司
课题研究、技术调研、算法工程落地、实验验证等
其中
沈总建议:
1、人员50%,薪资200%,再招3人的团队;
2、人才精英策略,杰出的博士和硕士研究生;