【理論原理】DYNA加密邏輯原理深度解析 自編cmd加密程序
DYNA作為最流行的商業求解軟件之一,各大企業都在用DYNA來求解各種工程問題,企業間也經常交流傳遞DYNA求解文件,為了不泄露商業機密和模型的可計算性,DYNA開放加密接口。在DYNA的官方技術答疑網站中有對加密邏輯進行詳細的說明,鏈接如下:
https://ftp.lstc.com/anonymous/outgoing/support/FAQ/Instructions_encryption
通過官方說明可以將加密邏輯表達為如下圖
上述加密邏輯圖需要了解背景及關鍵字含義如下:
(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加密文件
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















