Meri Leeworthy

Need for hard problems

When working with computer systems, different problems take different amounts of resources in order to be resolved. Depending on the resources required, problems are often categorised into various complexity classes. The two most common metrics for evaluating computational complexity are time and memory. While the distinction among the complexity classes is hard to ascertain, scientists generally agree on the degree of complexity associated with each class.

In this lesson, we will briefly outline some of the complexity classes and the impact of the problems within that classification. In later lessons within this module, we will explore some of the underlying hard problems that have been used to develop various cryptographic algorithms that we use today.

Complexity classes

The study of complexity classes is an open problem in theoretical computer science. For most of the known complexity classes, lower order classes share a subset of relationships with higher order classes. However, this is not known for all classes as some are still considered as open problems in computer science. The following are some of the most common complexity classes:

Having an understanding of these complexity classes is an important concept in computer science, specifically in cryptography.

I live and work on the land of the Wurundjeri people of the Kulin Nation. I pay respect to their elders past and present and acknowledge that sovereignty was never ceded. Always was, always will be Aboriginal land.

This site uses open source typefaces, including Sligoil by Ariel Martín Pérez, and Vercetti by Filippos Fragkogiannis