Some methematicians make millions.  Others save them.

Sample Mathematician Tests

To measure your aptitude for our work we use a series of mathematics tests.

The first of these assesses your mathematical and computing ability. The test is deliberately challenging and many people only manage to complete a few questions - don’t panic, we actually expect this! It is more important to us that where you attempt an answer you are able to demonstrate the logic in your approach (rather than worry about completing every question).

In addition, another test measures your aptitude for analysing information security systems - on this test you are expected to attempt as many questions as possible.

Below are some sample questions from past mathematical and computing tests.

1) A 6-sided dice is thrown N times and the results are observed to form a monotonic sequence. What is the probability that every possible number occurs at least once in the sequence?

2) P is a given permutation on {0,1,..., N-1} We want to know the length M of the longest increasing subsequence of P(0), P(1)...P(N-1). Invent and describe an algorithm to determine M using 0(N**2) time and O (N) memory.

3) A polygon has vertices with integer coordinates (in 2 dimensions) and integer length edges. Show that the perimeter is an even integer.

4) You are given a list containing 999,996 randomly generated integers (uniform in [0, 232-1]  ) and 4 others, a, b, c, d, which lie in the same range and satisfy the relations: 

            ad-bc = 1,
            ad > (1/e -.00005)*264
            ad < (1/e+.00005)*264

Sketch a procedure to discover all possible a,b,c,d, (i) in about an hour’s computing, (ii) in a few seconds. Your computer can do 109 operations per second and has 109 bytes of memory.

 
Below is a sample question from a past information security test.

1) This question is about different methods for generating key material for use in cryptographic equipment.  A character of text in our message is represented by a byte (i.e. an 8-bit block of binary), so we treat our data as a stream of binary.

The HONESTY BOX cryptosystem uses a Random Number Generator (RNG) to generate random integers between 0 and 15. The data is encrypted as follows:

- The message to be encrypted is split into 32-bit blocks P1; P2; : : : ; Pn with P1 being the first 32 bits of the message, P2 being the second 32 bits, etc.
- 8 random numbers (r1; : : : ; r8) are produced from the RNG, multiplied together mod 2^32 and the result is treated as a 32-bit binary number Ki
- This process is repeated with each Ki to produce K1;K2; : : : ;Kn.
- The encrypted data Z is obtained by Zi = Pi  + Ki (where + is XOR, meaning that we add corresponding bits together, mod 2, e.g. 0101 + 1100 = 1001).

The random numbers ri for each 32-bit block are sent to the message recipient via a secure channel to enable them to decrypt the message.

Give three different security flaws in this system that could enable an attacker to read all/part of an encrypted message.