如何保护将在已部署的应用程序中读取/写入的文件

时间:2018-07-11 07:38:51

标签: matlab encryption

我正在构建一个Matlab应用程序,以作为已编译的可执行文件进行部署。

此应用程序将需要读取/写入库中的文件。 这些文件包含数据,我想防止使用此应用程序的任何人读取它们。在没有任何保护的情况下,这些文件将另存为mat文件,并可以加载到Matlab工作区中。

我试图寻找一些加密解决方案。我发现有人建议使用AES,但是这种方法似乎存在安全存储加密密钥的内在问题(我不知道为什么)。

鉴于我只是想避免应用程序的用户访问那些数据文件,这样做的最佳方法是什么?如果AES实际上是一个好的解决方案,那么在要编译的代码中写入加密密钥是否安全?

2 个答案:

答案 0 :(得分:0)

听起来您正在寻找的是功能加密。

  

在功能加密中,用户持有   主密钥msk可以生成功能密钥skf   对应于函数f;那么,任何具有密文Enc(x)的人   而功能键skf可以计算f(x),但除此之外一无所知   输入x。

请注意,Enc(x)是加密数据,f(x)是未加密数据的某些功能。

来源:https://eprint.iacr.org/2013/229.pdf

不幸的是,即使是功能性加密的最先进的实现,在实践中仍然很慢,并且不能轻易地推广到MATLAB程序中。

答案 1 :(得分:0)

编译应用程序时,MATLAB代码文件被加密;但没有发现,您发现的任何额外文件。

如果数据不是太大,请考虑将其保存在.m文件而不是.mat文件中。换句话说,编写一个简单的MATLAB函数来返回您的数据,并将其硬编码在文件中。由于这是一个代码文件,因此将在编译过程中对其进行加密。

您甚至可以使用内置函数matlab.io.saveVariablesToScript为您自动生成此文件。