【理论原理】DYNA加密逻辑原理深度解析 自编cmd加密程序

    DYNA作为最流行的商业求解软件之一,各大企业都在用DYNA来求解各种工程问题,企业间也经常交流传递DYNA求解文件,为了不泄露商业机密和模型的可计算性,DYNA开放加密接口。在DYNA的官方技术答疑网站中有对加密逻辑进行详细的说明,链接如下:

https://ftp.lstc.com/anonymous/outgoing/support/FAQ/Instructions_encryption

    通过官方说明可以将加密逻辑表达为如下图

【理论原理】DYNA加密逻辑原理深度解析 自编cmd加密程序的图1

   上述加密逻辑图需要了解背景及关键字含义如下:

   (1)DYNA加密是基于openPGP加密协议,DYNA加密公钥在上述官网链接中可查,加密私钥隐藏在求解器中

   (2)对称加密算法,是指加密和解密使用相同的密钥

   (3)非对称加密算法,是指加密和解密使用不同的密钥

   上述加密逻辑图可以理解为以下步骤:

  (1)将求解文件分为master文件和include文件,随机生成AES密钥

  (2)基于openPGP加密协议,将include文件和AES密钥进行AES对称加密,生成AES加密文件

  (3)基于openPGP加密协议,将AES加密文件和DYNA加密公钥进行Elgamal非对称加密,生成Elgamal加密文件

   此时,求解文件加密完成,求解时

  (4)求解器使用DYNA加密私钥,将Elgamal加密文件解密,得到AES加密文件和AES密钥

  (5)求解器使用AES密钥,将AES加密文件解密,得到include文件和AES密钥

   上述加密逻辑简单易实现,行业内有很多二次开发的加密小软件,但如DYNA中国总代理商仿坤开发加密小软件,被加入许可证书限制使用权限,李某人尊重知识产权,但私以为如此简单的且公开的方法没必要层层设卡,强烈建议通过前文的DYNA官方加密说明链接,阅读理解后即可自行编程。

   业务繁忙的朋友,也可以通过简单理解上述加密逻辑图,按如下案例操作实现加密:

  (1)下载并安装Gpg4win开源免费加密软件(https://www.gpg4win.org/),下载时选择捐助0元,有条件的朋友也可以适当支持一下

  (2)下载并保存DYNA加密公钥,或将以下分割线内的DYNA公钥用文本保存命名为lstc_pgpkey.asc


-----BEGIN PGP PUBLIC KEY BLOCK-----

Version: GnuPG v2.0.19 (GNU/Linux)

mQGiBFM61ScRBACgqz7q7kytYuuRpa+1DTD9J3Kn8s3kMHO7zPtLu8bsb1L1I4UQ

CC6HRL2fMVRtBQZuy445eqsot5npcnzpQ6rcvsQZTVCqXH/gx5O5xs6/W8ktaJXn

hBrxGabk6IzlOXYvmQ2+jOATfQs29pt4+e/+oXFI9EfKBHao2dEgtOWS6wCg+9gi

9azFZOUIHV0EJDPFQJZrRFUD/11AG23e7964MN0HTWAWCIvPs8johwB7NOF6UjRR

xuqD/ZqiQ1hhmQzJR89Weg0TeFFCVP+yK2tgPOgsXry/r7WF/RnO9S/7yvtTWHr8

QPVxCur7vcKX/Lis6ByiyyDvihavBB6RgMYl5HkrEstTY/j3O09woxtQ4Pae5yZ2

woj0BACI87Lk6aO/9wAVXBDYyufqX9bea/lbMEuQZ7qzBO7xjSwchYeoLUbCK5sh

iGI+nT3+liqUZW8+KXd/6I+xsN+YXuS9olmeN5L391VF7ZnWcsOKLbr3tnA3TKJb

Q/txpFhI/2CM2u0VU6w6DAAGlxic5Gf1Cdc8/mA5KaNEuq24PrRDTGl2ZXJtb3Jl

IFNvZnR3YXJlIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24gKExTVEMpIDxzdXBwb3J0

QGxzdGMuY29tPohVBBMRAgAVAhsDAh4BAheABQJTOtVDAgsHAhYAAAoJECATgx5l

rsCu0P4An2f9h8YuWfW+mNY1gm29nIs+kbeZAJ44HMvNgfOVtqUxUCyTlCLjwR6O

CbkBDQRTOtUnEAQA4Q4D0F6l77N0e6XCIH49b7MHFyjkq3OdgHE4vylubEAXVeeX

FD4Vrojn3t/I1QqAUG4ipZZAlLVrSYruzQLYaLhjYP124Py/b6vRo0FcyVsLbazj

BxnGs+fFTrYspLaWfBK2dIrQ9ze9QSLhNous36W3em+fhx8hzGgcUUZRQOcAAwUD

/RkrdN+Mbim6H6MNnEKhoXlpogzriCUB+hpxfQSP+go6+Np2RGkQfTEu+W51vrFA

cW36cncp3OLpsvKzaQgTTT1rqb11Hoe/YpH3T9ngz4NX7a4OSDhHDKC1Q1BuzTEJ

3A3RXeAgRaMV8+hFm91g2KWZuMeqd+nSo2sb5EvpFhW9iEkEGBECAAkFAlM61ScC

GwwACgkQIBODHmWuwK7BaQCfUovuhS6oXuh+1sSqkGCxzHEGER8AniHYve/Kn6CL

SoAeXMxSC7F44Ood

=R0pG

-----END PGP PUBLIC KEY BLOCK-----


  (3)将以下代码用文本保存命名为Encrypt.bat

gpg --import lstc_pgpkey.asc
gpg -e -a --rfc2440 --textmode --cipher-algo AES --compress-algo 0 -r 0x65AEC0AE include

  (4)将待加密文件include,DYNA公钥文件lstc_pgpkey.asc,cmd程序Encrypt.bat放在同一目录下

  (5)双击运行Encrypt.bat,在提示指令中输入y,加密完成

  (6)在目录下可以看到生成了include.asc加密文件

登录后免费查看全文
立即登录
默认 最新
当前暂无评论,小编等你评论哦!
点赞 2 评论 收藏 2
关注