Рискну дать еще вариант. Длиннее, но без векторов.
Две прямые в трехмерном пространстве называются скрещивающимися, если они не лежат в одной плоскости и не параллельны.
Значит диагонали А1В и В1D - скрещивающиеся прямые (дано).
Угол между скрещивающимися прямыми – это угол между двумя пересекающимися прямыми, которые соответственно параллельны заданным скрещивающимся прямым.
Перенесем прямую В1D параллельно так, чтобы она проходила через точку А1. Прямые А1В и А1D2 (равная и параллельная В1D) теперь пересекающиеся и угол между ними ( угол D2А1В) - это и есть угол между В1D и А1B. Докажем, что он прямой.
A1B - диагональ грани квадрата и равна √2 (возьмем единичный квадрат).
В1D=А1D2 - диагональ куба и равна √3.
ВD2 - гипотенуза прямоугольного треугольника СВD2 с прямым углом С и катетами 1 и 2 (так как D2D=CD по построению). Значит ВD2=√(4+1)=√5.
Итак, мы имеем треугольник ВА1D2, в котором стороны равны √2, √3 и √5. Но если а²+b²=c², где a,b и с - стороны треугольника, то такой треугольник - прямоугольный. То есть Что и требовалось доказать.