最近做了一个采集系统,采集工业现场一些仪表数据。并将这些数据存进二进制文件中,并作为后期数据分析数据源。
系统启动采集->停止采集生成一个完整的数据文件。系统采集过程中,可以暂停。暂停时,系统不往数据文件中写入数据。但是如果系统停电、再次启动时,需要加载之前的数据文件。流程图如下:
用户要求系统能够识别数据是否被篡改过。我的想法主要通过非对称加密算法实现如下:
系统启动运行的时候,读取私钥。然后系统开始采集时,创建数据文件。采集暂停、停止时对数据文件块进行签名(由于采集周期短,实时签名不合适),并将签名信息存储在数据文件头的某一块。
存在这样一个问题,如果用户恶意断电,由于此时数据可能还没有进行数据签名。当系统重新上电,并运行系统加载之前的数据文件时,如何验证此时的数据文件没有更改。
系统启动采集->停止采集生成一个完整的数据文件。系统采集过程中,可以暂停。暂停时,系统不往数据文件中写入数据。但是如果系统停电、再次启动时,需要加载之前的数据文件。流程图如下:
用户要求系统能够识别数据是否被篡改过。我的想法主要通过非对称加密算法实现如下:
系统启动运行的时候,读取私钥。然后系统开始采集时,创建数据文件。采集暂停、停止时对数据文件块进行签名(由于采集周期短,实时签名不合适),并将签名信息存储在数据文件头的某一块。
存在这样一个问题,如果用户恶意断电,由于此时数据可能还没有进行数据签名。当系统重新上电,并运行系统加载之前的数据文件时,如何验证此时的数据文件没有更改。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货