s63海图文件采用Blowfish方式加密,在S63数据保护方案的体系里只有海图文件和海图更新文件需要经过Blowfish加密,文件夹中存在的txt格式和jpg格式的文件并未经过加密;另外,设备制造商OEM会为每一个数据客户端分配一个唯一的HWID以标识每一个数据终端,OEM用MKEY对HWID进行加密形成用户许可( User permit)。下面将主要涉及到 Blowfish分组加密算法的实例列举如下:
1)海图文件的加密每一幅海图文件都要经过单元密钥( Cell Key,CK)加密,数据服务商发布的同一幅海图虽然供不同的数据客户端使用,但加密海图所用的单元密钥都是相同的,不同之处在于数据服务商提供给数据客户端的许可文件 PERMIT。TXT中的单元权证中单元密钥的加密。
2)单元权证中单元密钥的加密为了便于电子海图的分发和制作,数据服务商使用相同的单元密钥对同一幅海图及其更新文件加密,但不同的海图使用不同的单元密钥。数据客户端要使用经过分组加密的海图必须获得解密的单元密钥,但数据服务商并不直接将单元密钥发送给数据客户端,而是将单元密钥用 Blowfish分组加密算法以HWID为Key 进行加密,数据客户端的HWID是唯一的并且数据客户端并不知道自己的HWID,这样数据客户端只能使用已购买权限的电子海图井且避免了海图未经授权的非法复制和传播 。
3)HWD的加密当数据客户端DC向数据服务商DS申请数据时霱要向其提供用户许可,用户许可是由设备制造商为数据客户端分配的,用户许可的主要组成部分是用 Blowfish 分组加密算法以数据服务商密钥对中的MKEY为KEY对HWID进行加密。具体产生方法是①用 Blowfish加密算法将MKEY作为密钥对HWID进行加密;②将加密后的结果转换为十六位制表示;
4)数据客户端海图文件的解密数据客户端,即ECDs终端不再从设备制造商获得海图数据,而是从政府或经政府授权的水道测量机构即数据服务商获得海图数据,但所获得的电子海图数据是经过 Blowfish加密的,因此数据客户端首先要解密电子海图文件。解密分两个步骤进行:一是以HWID为解密密钥解密数据服务商提供的单元权证从而获得解密电子海图数据的单元密钥,即CK;二是以单元密钥为解密密钥解密电子海图数据。这两个步骤由设备制造商制造的ECDS终端自行完成,因为HWID是以加密狗或嵌入软件内的形式出现在数据客户端,数据客户端只有用户许可User Permit是可知未加密的,但真正的HWD是什么却不知道。
5)数据服务商对用户许可的解密当数据客户端向数据服务商申请购买数据时需要提供用户许可,用户许可的前部分是以设备制造商的MKEY为密钥对HwID加密得来的,数据服务商需要解密得到HWID并以HWID为密钥对海图的单元密钥进行加密。
参考文章:http://www.sailxy.com/