Tarea: ¿Cómo escribir multiplicación propia de grandes números?

En mi proyecto, tengo que lidiar con la multiplicación de grandes números (mayor que java.long) que mire por mi cuenta.BigNumber clase comoint[]. Básicamente necesito implementar algo como esto:

    157 x
    121 y
   ----
    157 result1
   314  + result2
  157   + result3
 ------
 18997  finalResult

¿Pero como lo implemento?

Pensé en expandir el resultado 2,3 con ceros (3140, 15700) y agregarlos. Pero primero de alguna manera necesito navegar entre cada dígito de y y multiplicarlo por cada dígito de x.