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.
Article PDF
Similar content being viewed by others
Avoid common mistakes on your manuscript.
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
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
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
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
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
Damaj I. (2006). Parallel Algorithms Development for Programmable Logic Devices. Adv. Eng. Softw. 37(9):561–582
Thompson S., Haskell (1999). The Craft of Functional Programming, 2nd Ed. Addison-Wesley, Reading, MA
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
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
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
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
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
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
Author information
Authors and Affiliations
Corresponding author
Rights 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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10766-007-0046-1