Skip to main content
Log in

Parallel Algorithms Development for Programmable Devices with Application from Cryptography

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Reconfigurable devices, such as Field Programmable Gate Arrays (FPGAs), have been witnessing a considerable increase in density. State-of-the-art FPGAs are complex hybrid devices that contain up to several millions of gates. Recently, research effort has been going into higher-level parallelization and hardware synthesis methodologies that can exploit such a programmable technology. In this paper, we explore the effectiveness of one such formal methodology in the design of parallel versions of the Serpent cryptographic algorithm. The suggested methodology adopts a functional programming notation for specifying algorithms and for reasoning about them. The specifications are realized through the use of a combination of function decomposition strategies, data refinement techniques, and off-the-shelf refinements based upon higher-order functions. The refinements are inspired by the operators of Communicating Sequential Processes and map easily to programs in Handel-C (a hardware description language). In the presented research, we obtain several parallel Serpent implementations with different performance characteristics. The developed designs are tested under Celoxica’s RC-1000 reconfigurable computer with its two million gates Virtex-E FPGA. Performance analysis and evaluation of these implementations are included.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Xilinx, Information available from, http://www.xilinx.com

  • Altera, Information available from, http://www.Altera.com

  • Celoxica, Information available from, http://www.celoxica.com

  • S. Stepney, CSP/FDR2 to Handel-C Translation, Tech. Rep. YCS-2002-357, Department of Computer Science, University of York (June 2003).

  • D. Edwards, S. Harris, and J. Forge, High performance hardware from java, Xilinx Whitepaper http://www.xilinx.com

  • Y. Li, T. Callahan, E. Darnell, R. Harr, U. Kurkure, and J. Stockwood, Hardware-software codesign of embedded reconfigurable architectures, in Proceedings of the 37th Design Automation Conference, Los Angeles, USA (2000).

  • N. Technology, Information available from, http://www.nimble.com

  • S. Network, Information available arom, http://www.systemc.org

  • Michaelson G., Scaife N., Bristow P., King P. (August 2001). Nested Algorithmic Skeletons from Higher Order Functions. Parallel Algorithms and Applications special issue on High Level Models and Languages for Parallel Processing 16(2–3):181–206

    MATH  Google Scholar 

  • A. E. Abdallah, Functional Process Modelling, Research Directions in Parallel Functional Programming, Springer, Berlin (1999), pp. 339–360.

  • Abdallah A.E. (1994). Derivation of Parallel Algorithms: From Functional Specifications to csp Processes. In: Moller B. (ed). Proceedings of Mathematics of Program Construction, Vol. 947 of Lecture Notes in Computer Science. Springer, Berlin, pp. 67–96

    Google Scholar 

  • A. E. Abdallah and J. Hawkins, Calculational Design of Special Purpose Parallel Algorithms, in Proceedings of 7th IEEE International Conference on Electronics, Circuits and Systems (IEEE/ICECS), IEEE Computer Society Press, Silver Spring, MD (2000), pp. 261–267.

  • A. E. Abdallah and J. Hawkins, Formal Behavioural Synthesis of Handel-c Parallel Hardware Implementation for Functional Specifications, in Proceedings of the 36th Annual Hawaii International Conference on System Sciences, IEEE Computer Society Press, Silver Spring, MD (2003), pp. 278–288.

  • Hoare C.A.R. (1985). Communicating Sequential Processes. Prentice-Hall, Englewood Cliffs, NJ

    MATH  Google Scholar 

  • Abdallah A.E. (1996). Synthesis of Massively Pipelined Algorithms for List Manipulation. In: Bouge L., Fraigniaud P., Mignotte A., Robert Y. (eds). Proceedings of the European Conference on Parallel Processing, EuroPar’96, LNCS 1024. Springer, Berlin , pp. 911–920

    Google Scholar 

  • J. Hawkins and A. Abdallah, Synthesis of a Highly Parallel JPEG Decoder Implementation from its Functional Specification, in Proceeding of IFIP Working Conference on Distributed and Parallel Embedded Systems, Kluwer, Dordrecht (2004).

  • A. E. Abdallah, G. Simiakakis, and T. Theoharis, Formal Development of a Reconfigurable Tool for Parallel dna Matching, in Proceedings of 7th IEEE International Conference on Electronics, Circuits and Systems (IEEE/ICECS), IEEE Computer Society Press, Silver Spring, MD (2000), pp. 268–272.

  • Damaj I. (2007). Higher-level Hardware Synthesis of the Kasumi Cryptographic Algorithm. J. Comput. Sci. Technol. 22(1):60–70

    Article  Google Scholar 

  • Damaj I. (2006). Parallel Algorithms Development for Programmable Logic Devices. Adv. Eng. Softw. 37(9):561–582

    Article  Google Scholar 

  • Thompson S., Haskell (1999). The Craft of Functional Programming, 2nd Ed. Addison-Wesley, Reading, MA

    Google Scholar 

  • D. J. Russel, Fad: A Functional Analysis and Design Methadology, Ph.D. thesis, The University of Kent at Canterbury, United Kingdom (August 2000).

  • I. Ltd., OCCAM 2 Reference Manual, Prentice-Hall International, Englewood Cliffs, NJ (1988).

  • J. Peng, S. Abdi, and D. Gajski, Automatic Model Refinement for Fast Architecture Exploration, in Proceedings of the The Asia-Pacific Design Automation Conference, Bangalore, India (2002), pp. 332–337.

  • J. Bowen, M. Fränzle, E. Olderog, and A. Ravn, Developing Correct Systems, in Proc. 5th Euromicro Workshop on Real-Time Systems, IEEE Computer Society Press, Silver Spring, MD (1993), pp. 176–187.

  • Bowen J., Hoare C.A.R., Langmaack H., Olderog E., Ravn A. (1996). A ProCoS II project final report: ESPRIT Basic Research Project 7071. Bull. Eur. Assoc. Theor. Compu. Sci. (EATCS) 59:76–99

    Google Scholar 

  • S. Abdi and D. Gajski, Provably Correct Architecture Refinement, Technical Report CECS0329, Center for Embedded Computer Systems at University of California Irvine, Irvine-USA (September 2003).

  • K. Claessen, Embedded Languages for Describing and Verifying Hardware, Ph.D. thesis, Chalmers Univesity of Technology and Göteborg University, Sweden (April 2001).

  • J. Launchbury, J. Lewis, and B. Cook, On Embedding a Microarchitectural Design Language within Haskell, in Proceedings of the 4th ACM SIGPLAN International Conference on Functional Programming, ACM Press, New york (1999), pp. 60–69.

  • J. Matthews, J. Launchbury, and B. Cook, Specifying Microprocessors in Hawk, in Proceedings of the International Conference on Computer Languages, IEEE, 1998, pp. 90–101.

  • O’Donnell J., Hydra (1988) Hardware Description in a Functional Language using Recursion Equations and High Order Combining Forms. In: Milne G.J. (ed). The Fusion of Hardware Design and Verification. North-Holland, Amsterdam, pp. 309–328

    Google Scholar 

  • Y. Li and M. Leeser, HML: An Innovative Hardware Design Language and its Translation to VHDL, in Proceedings of the Conference on Hardware Design Languages, Bangalore, India (1995).

  • D. Barton, Advanced Modeling Features of MHDL, in In International Conference on Electronic Hardware Description Languages, Las Vegas, Nevada (1995).

  • S. Johnson and B. Bose, DDD: A System for Mechanized Digital Design Derivation, Tech. Rep. 323, Indiana University, Indiana (1990).

  • R. Sharp, Higher-Level Hardware Synthesis, Ph.D. thesis, Robinson College University of Cambridge, Cambridge (November 2002).

  • M. Sheeran, muFP: A Language for VLSI Design, in Proc. ACM Symposium on LISP and Functional Programming, ACM Press, New york (1984), pp. 104–112.

  • G. Jones and M. Sheeran, Circuit Design in Ruby, in Proceedings of the Formal Methods for VLSI Design, North-Holland (1990), pp. 13–70.

  • T. Cheung and G. Hellestrand, Multi-level equivalence in design transformation, in Proceedings of International Conference on Computer Hardware Description Languages, Chiba Japan (1996), pp. 559–566.

  • I. Page and W. Luk, Compiling Occam into Field-programmable Gate Arrays, in W. Moore, W. Luk (eds.), FPGAs, Oxford Workshop on Field Programmable Logic and Applications, Abingdon EE&CS Books, 15 Harcourt Way, Abingdon OX14 1NV, UK, 1991, pp. 271–283.

  • Jifeng H., Page I., Bowen J. (1993) Towards a Provably Correct hardware implementation of Occam. In: Milne G., Pierre L. (eds). Correct Hardware Design and Verification Methods (CHARME’93), Vol. 683 of Lecture Notes in Computer Science. Springer, Berlin, pp. 214–225

    Google Scholar 

  • C. T. Library, CSP/FDR2 to Handel-C translation, http://www.celoxica.com/techlib/files/CEL-W0309221A18-133.htm

  • R. Anderson, E. Biham, and L. Knudsen, Serpent: A Proposal for the Advanced Encryption Standard, in Proceedings of the First Advanced Encryption Standard (AES) Conference, Ventura, CA (1998).

  • A. Elbirt and C. Paar, An FPGA Implementation and Performance Evaluation of the Serpent Block Cipher, in Proceedings of the 2000 ACM/SIGDA 8th International Symposium on Field Programmable Gate Arrays, ACM Press, New York, USA (2000), pp. 33–40.

  • P. Bora and T. Czajka, Implementation of the SERPENT Algorithm using ALTERA FPGA Devices, Public Comments on AES Candidate Algorithms, Round 2 (October 2000).

  • Yip A., Chetwynd W., Paar B. (2001) An FPGA-based Performance Evaluation of the AES Block Cipher Candidate Algorithm Finalists, IEEE Trans. Very Large Scale Integr. (VLSI) Syst. 9(4):545–557

    Article  Google Scholar 

  • Gaj K., Chodowiec P. (2001). Fast Implementation and Fair Comparison of the Final Candidates for Advanced Encryption Standard using field Programmable Gate Arrays, Lect. Notes Compu. Sci. 2020:84–100

    Article  MathSciNet  Google Scholar 

  • B. Gladman, Implementation Experience with Aes Candidate Algorithms, in Proceedings of the 2nd AES Candidate Conference, Rome, Italy (1999).

  • V. Journot, Evaluation of Serpent, one of the Aes Finalists on 8-bit Microcontrollers, in Proceedings of the 3rd AES Candidate Conference (2000).

  • R. Anderson, E. Biham, and L. Knudsen, Information available from, http://csrc.nist.gov/encryption/aes

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Issam W. Damaj.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Damaj, I.W. Parallel Algorithms Development for Programmable Devices with Application from Cryptography. Int J Parallel Prog 35, 529–572 (2007). https://doi.org/10.1007/s10766-007-0046-1

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10766-007-0046-1

Keywords

Navigation