{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,12]],"date-time":"2025-10-12T03:28:41Z","timestamp":1760239721911,"version":"build-2065373602"},"reference-count":35,"publisher":"MDPI AG","issue":"12","license":[{"start":{"date-parts":[[2020,12,9]],"date-time":"2020-12-09T00:00:00Z","timestamp":1607472000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Information"],"abstract":"<jats:p>The objective of the article is to reveal an approach to hiding the code of stored programs stored in the database. The essence of this approach is the complex use of the method of random permutation of code symbols related to a specific stored program, located in several rows of some attribute of the database system table, as well as the substitution method. Moreover, with the possible substitute of each character obtained after the permutation with another one randomly selected from the Unicode standard, a legitimate user with the appropriate privileges gets access to the source code of the stored program due to the ability to quickly perform the inverse to masking transformation and overwrite the program code into the database. All other users and attackers without knowledge of certain information can only read the codes of stored programs masked with format preserving. The proposed solution is more efficient than the existing methods of hiding the code of stored programs provided by the developers of some modern database management systems (DBMS), since an attacker will need much greater computational and time consumption to disclose the source code of stored programs.<\/jats:p>","DOI":"10.3390\/info11120576","type":"journal-article","created":{"date-parts":[[2020,12,10]],"date-time":"2020-12-10T00:45:03Z","timestamp":1607561103000},"page":"576","update-policy":"https:\/\/doi.org\/10.3390\/mdpi_crossmark_policy","source":"Crossref","is-referenced-by-count":3,"title":["Hiding the Source Code of Stored Database Programs"],"prefix":"10.3390","volume":"11","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-1977-7269","authenticated-orcid":false,"given":"Vitalii","family":"Yesin","sequence":"first","affiliation":[{"name":"Department of Security of Information Systems and Technologies, Faculty of Computer Science, V. Karazin National University of Kharkiv, 61022 Kharkiv, Ukraine"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-8846-332X","authenticated-orcid":false,"given":"Mikolaj","family":"Karpinski","sequence":"additional","affiliation":[{"name":"Department of Computer Science and Automatics, Faculty of Mechanical Engineering and Computer Science, University of Bielsko-Biala, 43-309 Bielsko-Biala, Poland"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Maryna","family":"Yesina","sequence":"additional","affiliation":[{"name":"Department of Security of Information Systems and Technologies, Faculty of Computer Science, V. Karazin National University of Kharkiv, 61022 Kharkiv, Ukraine"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Vladyslav","family":"Vilihura","sequence":"additional","affiliation":[{"name":"Department of Security of Information Systems and Technologies, Faculty of Computer Science, V. Karazin National University of Kharkiv, 61022 Kharkiv, Ukraine"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-2577-550X","authenticated-orcid":false,"given":"Kornel","family":"Warwas","sequence":"additional","affiliation":[{"name":"Department of Computer Science and Automatics, Faculty of Mechanical Engineering and Computer Science, University of Bielsko-Biala, 43-309 Bielsko-Biala, Poland"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"1968","published-online":{"date-parts":[[2020,12,9]]},"reference":[{"key":"ref_1","unstructured":"Date, C.J. (2004). An Introduction to Database Systems, Pearson Education Inc.. [8th ed.]."},{"key":"ref_2","unstructured":"Connolly, T.M., and Begg, C.E. (2015). Database Systems: A Practical Approach to Design, Implementation, and Management, Pearson Education Limited."},{"key":"ref_3","unstructured":"Groff, J., Weinberg, P., and Oppel, A. (2010). SQL. The Complete Reference, McGraw-Hill Inc.. [3rd ed.]."},{"key":"ref_4","unstructured":"Garcia-Molina, H., Ullman, J.D., and Widom, J. (2009). Database Systems. The Complete Book, Pearson Prentice Hall. [2th ed.]."},{"key":"ref_5","unstructured":"Microsoft (2020, October 27). Create Procedure (Transact-SQL). Available online: https:\/\/docs.microsoft.com\/en-us\/sql\/t-sql\/statements\/create-procedure-transact-sql?view=sql-server-ver15."},{"key":"ref_6","unstructured":"McLaughlin, M. (2014). Oracle Database 12c PL\/SQL Programming, McGraw-Hill Education."},{"key":"ref_7","unstructured":"Feuerstein, S., and Pribyl, B. (2014). Oracle PL\/SQL Programming, O\u2019Reilly Media. [6th ed.]."},{"key":"ref_8","unstructured":"Finnigan, P. (2020, October 27). How to Unwrap PL\/SQL. Available online: https:\/\/www.blackhat.com\/presentations\/bh-usa-06\/BH-US-06-Finnigan.pdf."},{"key":"ref_9","unstructured":"Scheffer, A. (2020, October 27). Unwrapping 10G Wrapped PL\/SQL. Available online: https:\/\/technology.amis.nl\/2009\/02\/03\/unwrapping-10g-wrapped-plsql\/."},{"key":"ref_10","unstructured":"Lambrechts, M. (2020, October 27). Unwrapping Wrapped PLSQL in 10g, 11g and 12c. Available online: http:\/\/marcel.vandewaters.nl\/oracle\/security\/unwrapping-wrapped-plsql-in-10g-and-11g."},{"key":"ref_11","unstructured":"White, P. (2020, October 27). The Internals of WITH ENCRYPTION. Available online: https:\/\/sqlperformance.com\/2016\/05\/sql-performance\/the-internals-of-with-encryption."},{"key":"ref_12","unstructured":"GitHub (2020, October 27). PL\/SQL Unwrapper for SQL Developer. Available online: https:\/\/github.com\/Trivadis\/plsql-unwrapper-sqldev."},{"key":"ref_13","unstructured":"Data Masking: What You Need to Know (2020, October 27). A Net 2000 Ltd. White Paper., Available online: http:\/\/www.datamasker.com\/DataMasking_WhatYouNeedToKnow.pdf."},{"key":"ref_14","unstructured":"Oracle (2020, October 27). Data Masking and Subsetting Guide. Available online: https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/12.2\/dmksb\/oracle-data-masking-and-subsetting-users-guide.pdf."},{"key":"ref_15","first-page":"2250","article-title":"Review of attacks on databases and database security techniques","volume":"2","author":"Kulkarni","year":"2012","journal-title":"Int. J. Emerg. Technol. Adv. Eng."},{"key":"ref_16","doi-asserted-by":"crossref","unstructured":"Santos, R.J., Bernardino, J., and Vieira, M. (2011, January 21\u201323). A Data masking technique for data warehouses. Proceedings of the 15th Symposium on International Database Engineering & Applications, IDEAS11, Lisbon, Portugal.","DOI":"10.1145\/2076623.2076632"},{"key":"ref_17","first-page":"449","article-title":"A Big Data Security using Data Masking Methods","volume":"7","author":"Archana","year":"2017","journal-title":"Indones. J. Electr. Eng. Comput. Sci."},{"key":"ref_18","unstructured":"Vishnu, B., Manjunath, T.N., and Hamsa, C. (2014, January 15\u201316). An Effective Data Warehouse Security Framework. Proceedings of the IJCA National Conference on Recent Advances in Information Technology, Solapur, India."},{"key":"ref_19","first-page":"68","article-title":"An Improved Data Masking Security Solution Using Modulus Based Technique (MOBAT) for Data Warehouse System","volume":"9","author":"Larsonk","year":"2020","journal-title":"Int. J. Sci. Eng. Appl."},{"key":"ref_20","doi-asserted-by":"crossref","first-page":"249","DOI":"10.1080\/00949655.2018.1545228","article-title":"HDDA: DataSifter: Statistical obfuscation of electronic health records and other sensitive datasets","volume":"89","author":"Marino","year":"2019","journal-title":"J. Stat. Comput. Simul."},{"key":"ref_21","unstructured":"Pfleeger, C.P., Pfleeger, S.L., and Margulies, J. (2015). Security in Computing, Pearson Education Inc.. [5th ed.]."},{"key":"ref_22","doi-asserted-by":"crossref","unstructured":"Bellare, M., Hoang, V.T., and Tessaro, S. (2016, January 24\u201328). Message-Recovery Attacks on Feistel-Based Format Preserving Encryption. Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security (CCS \u201916), Vienna, Austria.","DOI":"10.1145\/2976749.2978390"},{"key":"ref_23","unstructured":"Dworkin, M., and Recommendation for Block Cipher Modes of Operation Methods for Format-Preserving Encryption (2020, October 27). Draft NIST Special Publication 800-38G Revision 1, Available online: https:\/\/nvlpubs.nist.gov\/nistpubs\/SpecialPublications\/NIST.SP.800-38G.pdf."},{"key":"ref_24","unstructured":"Chapple, M., Stewart, J.M., and Gibson, D. (2018). CISSP\u00ae Certified Information Systems Security Professional Official Study Guide, Sybex, John Wiley & Sons Inc.. [8th ed.]."},{"key":"ref_25","doi-asserted-by":"crossref","first-page":"453","DOI":"10.47839\/ijc.18.4.1615","article-title":"Formalized representation for the data model with the universal basis of relations","volume":"18","author":"Yesin","year":"2019","journal-title":"Int. J. Comput."},{"key":"ref_26","doi-asserted-by":"crossref","first-page":"113","DOI":"10.30837\/rt.2019.3.198.09","article-title":"Some approach to data masking as means to counter the inference threat","volume":"198","author":"Yesin","year":"2019","journal-title":"Radiotekhnika"},{"key":"ref_27","unstructured":"Stallings, W. (2017). Cryptography and Network Security: Principles and Practice, Global Edition, Pearson Education Limited. [7th ed.]."},{"key":"ref_28","doi-asserted-by":"crossref","first-page":"420","DOI":"10.1145\/364520.364540","article-title":"Algorithm 235: Random permutation","volume":"7","author":"Durstenfeld","year":"1964","journal-title":"Commun. ACM"},{"key":"ref_29","unstructured":"Knuth, D.E. (1997). The Art of Computer Programming, Volume 2: Seminumerical Algorithms, Addison-Wesley. [3rd ed.]."},{"key":"ref_30","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/3009909","article-title":"Generating random permutations by coin tossing: Classical algorithms, new analysis, and modern implementation","volume":"13","author":"Bacher","year":"2017","journal-title":"ACM Trans. Algorithms"},{"key":"ref_31","doi-asserted-by":"crossref","first-page":"1","DOI":"10.18637\/jss.v008.i14","article-title":"Xorshift Rngs","volume":"8","author":"Marsaglia","year":"2003","journal-title":"J. Stat. Softw."},{"key":"ref_32","unstructured":"Press, W.H., Teukolsky, S.A., Vetterling, W.T., and Flannery, B.P. (2007). Numerical Recipes: The Art of Scientific Computing, Cambridge University Press. [3rd ed.]."},{"key":"ref_33","unstructured":"Mao, W. (2003). Modern Cryptography: Theory and Practice, Prentice Hall."},{"key":"ref_34","unstructured":"Press, W.H., Flannery, B.P., Teukolsky, S.A., and Vetterling, W.T. (1992). Numerical Recipes in C: The Art of Scientific Computing, Cambridge University Press. [2nd ed.]."},{"key":"ref_35","unstructured":"Oracle (2020, October 27). PL\/SQL Packages and Types Reference. DBMS_RANDOM. Available online: https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/18\/arpls\/database-pl-sql-packages-and-types-reference.pdf."}],"container-title":["Information"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mdpi.com\/2078-2489\/11\/12\/576\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,11]],"date-time":"2025-10-11T10:42:59Z","timestamp":1760179379000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.mdpi.com\/2078-2489\/11\/12\/576"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,12,9]]},"references-count":35,"journal-issue":{"issue":"12","published-online":{"date-parts":[[2020,12]]}},"alternative-id":["info11120576"],"URL":"https:\/\/doi.org\/10.3390\/info11120576","relation":{},"ISSN":["2078-2489"],"issn-type":[{"type":"electronic","value":"2078-2489"}],"subject":[],"published":{"date-parts":[[2020,12,9]]}}}